
:root{--bg:#f3eee7;--surface:#fffdf9;--surface-2:#f9f4ec;--text:#25211e;--muted:#847a71;--line:rgba(72,58,46,.10);--shadow:0 10px 30px rgba(85,65,45,.09);--accent:#24211f;--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px)}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Inter,ui-rounded,"SF Pro Rounded","SF Pro Display",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}body{overflow-x:hidden}button{font:inherit;color:inherit}button:focus-visible{outline:3px solid rgba(36,33,31,.18);outline-offset:3px}.hidden{display:none!important}
.app-shell{width:min(100%,540px);min-height:100dvh;margin:0 auto;padding:20px 16px calc(90px + var(--safe-bottom))}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px;padding:4px 2px 0}.eyebrow{font-size:calc(12px + var(--tp-text-extra,0px));letter-spacing:.14em;font-weight:800;color:var(--muted)}h1,h2,p{margin:0}h1{font-size:28px;line-height:1.02;letter-spacing:-.035em;margin-top:5px}h2{font-size:22px;letter-spacing:-.025em;margin-top:4px}.top-actions{display:flex;gap:8px;align-items:center}.coin-pill,.round-btn,.text-btn,.name-button{border:0;background:var(--surface);box-shadow:var(--shadow)}.coin-pill{height:44px;padding:0 14px;border-radius:999px;display:flex;align-items:center;gap:8px;font-size:calc(15px + var(--tp-text-extra,0px))}.round-btn{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-size:calc(17px + var(--tp-text-extra,0px))}.text-btn{border-radius:999px;padding:9px 12px;font-weight:700;color:var(--muted);box-shadow:none;background:var(--surface-2)}.card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:28px}main{display:grid;gap:14px}
.room{position:relative;overflow:hidden;height:408px;padding:18px;--wall1:#f7ddbd;--wall2:#f8e7d3;--floor1:#e3ccb1;--floor2:#d1b08f;background:linear-gradient(180deg,var(--wall1) 0%,var(--wall2) 53%,var(--floor1) 53%,var(--floor2) 100%)}
.room::after{content:"";position:absolute;left:0;right:0;top:53%;height:2px;background:rgba(85,60,35,.05)}
.room.night{color:white}.room.night::after{background:rgba(255,255,255,.05)}
.room.theme-warm{--wall1:#f7ddbd;--wall2:#f8e7d3}.room.theme-mint{--wall1:#d7eee6;--wall2:#e8f6f0}.room.theme-sky{--wall1:#d9e8ff;--wall2:#edf4ff}
.room.floor-wood{--floor1:#e3ccb1;--floor2:#d1b08f}.room.floor-rose{--floor1:#e3c4be;--floor2:#d6ada5}.room.floor-stone{--floor1:#d9d4cd;--floor2:#c7c0b8}
.room.night.theme-warm{--wall1:#2c3344;--wall2:#394154;--floor1:#6a5a50;--floor2:#564941}.room.night.theme-mint{--wall1:#233845;--wall2:#2f4c59;--floor1:#59625e;--floor2:#4b524f}.room.night.theme-sky{--wall1:#1f2f4d;--wall2:#2c3d60;--floor1:#64616f;--floor2:#55515e}
.room-window{position:absolute;right:24px;top:25px;width:94px;height:115px;border-radius:46px 46px 20px 20px;background:#bfe4ff;border:10px solid rgba(255,255,255,.66);box-shadow:inset 0 0 0 2px rgba(70,90,100,.06);z-index:2}.room.night .room-window{background:#1f2b47;border-color:rgba(255,255,255,.2)}.sky-orb{position:absolute;inset:0;display:grid;place-items:center;font-size:34px;z-index:2}.stars{position:absolute;left:15px;right:15px;bottom:12px;font-size:calc(14px + var(--tp-text-extra,0px));letter-spacing:8px;opacity:0;transition:.3s;text-align:center}.room.night .stars{opacity:.9}.wall-art{position:absolute;left:24px;top:30px;width:58px;height:58px;border-radius:18px;background:rgba(255,255,255,.45);display:grid;place-items:center;font-size:28px;box-shadow:0 10px 20px rgba(55,35,20,.08);z-index:2}.room.theme-mint .wall-art{background:rgba(255,255,255,.58)}.room.theme-sky .wall-art{background:rgba(255,255,255,.62)}
.light-glow{position:absolute;left:var(--glow-x,50%);top:var(--glow-y,50%);width:var(--glow-size,120px);height:var(--glow-size,120px);transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(255,224,161,.72) 0%,rgba(255,224,161,.36) 32%,rgba(255,224,161,.12) 56%,rgba(255,224,161,0) 78%);z-index:2;pointer-events:none}
.room-meta{position:absolute;left:18px;right:18px;top:18px;display:flex;align-items:center;justify-content:space-between;font-size:calc(13px + var(--tp-text-extra,0px));font-weight:800;z-index:10}.room-meta span{padding:8px 10px;border-radius:999px;background:rgba(255,255,255,.58);backdrop-filter:blur(12px)}.room.night .room-meta span{background:rgba(255,255,255,.12)}
.room-shelf{position:absolute;left:26px;top:108px;width:118px;height:14px;border-radius:10px;background:#a97e5a;box-shadow:0 4px 0 rgba(70,40,20,.12);display:flex;justify-content:space-evenly;align-items:flex-end;padding-bottom:8px;z-index:3}.room-shelf span{font-size:calc(18px + var(--tp-text-extra,0px));transform:translateY(-10px)}
.room-dresser{position:absolute;left:22px;bottom:56px;width:104px;height:98px;z-index:3}.dresser-top{height:12px;background:#b68862;border-radius:14px 14px 6px 6px;box-shadow:0 5px 0 rgba(80,48,30,.12)}.dresser-body{margin-top:4px;height:76px;border-radius:10px;background:linear-gradient(180deg,#c59670,#ab7a57);padding:8px;display:grid;grid-template-columns:1fr 1fr;gap:8px}.dresser-body span{display:block;border-radius:8px;background:rgba(255,255,255,.14);position:relative}.dresser-body span::after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:12px;height:3px;border-radius:999px;background:rgba(255,255,255,.75)}
.room-lamp{position:absolute;right:46px;bottom:66px;width:48px;height:120px;z-index:3}.lamp-shade{position:absolute;top:0;left:3px;width:42px;height:30px;background:#e3bb75;clip-path:polygon(18% 0,82% 0,100% 100%,0 100%);border-radius:5px}.lamp-stick{position:absolute;top:28px;left:22px;width:5px;height:72px;background:#7e6653}.lamp-base{position:absolute;bottom:0;left:9px;width:31px;height:9px;border-radius:50%;background:#7e6653}.room.night .lamp-shade{filter:drop-shadow(0 0 14px #f4cd7e)}
.room-plant{position:absolute;right:12px;bottom:42px;font-size:52px;z-index:4;filter:drop-shadow(0 7px 4px rgba(40,30,20,.10))}.room-rug{position:absolute;left:50%;bottom:20px;transform:translateX(-50%);width:246px;height:72px;border-radius:50%;background:#c98f78;opacity:.92;z-index:1;box-shadow:inset 0 8px rgba(255,255,255,.12)}.room.theme-mint .room-rug{background:#95c7bb}.room.theme-sky .room-rug{background:#8fb0d4}
.room-bed{position:absolute;left:50%;bottom:54px;transform:translateX(-50%);width:182px;height:106px;z-index:4}.bed-back{position:absolute;left:12px;right:12px;top:0;height:24px;border-radius:20px 20px 8px 8px;background:#bb8f69}.bed-matress{position:absolute;left:0;right:0;top:18px;height:72px;border-radius:24px;background:#f4ede2;box-shadow:0 12px 0 rgba(114,80,50,.10)}.bed-pillows{position:absolute;left:22px;top:28px;display:flex;gap:12px}.bed-pillows span{display:block;width:36px;height:20px;border-radius:10px;background:#fff9f3}.bed-blanket{position:absolute;left:54px;right:14px;top:46px;height:34px;border-radius:18px;background:#b9c7c5}.bed-deco{position:absolute;right:12px;top:44px;font-size:calc(19px + var(--tp-text-extra,0px));opacity:.85}
.room.bed-basic .bed-back{position:absolute;left:12px;right:12px;top:0;height:24px;border-radius:20px 20px 8px 8px;background:#bb8f69}.room.bed-basic .bed-blanket{position:absolute;left:54px;right:14px;top:46px;height:34px;border-radius:18px;background:#b9c7c5}.room.bed-basic .bed-deco::before{content:""}
.room.bed-deluxe .bed-back{position:absolute;left:12px;right:12px;top:0;height:24px;border-radius:20px 20px 8px 8px;background:#bb8f69}.room.bed-deluxe .bed-matress{position:absolute;left:0;right:0;top:18px;height:72px;border-radius:24px;background:#f4ede2;box-shadow:0 12px 0 rgba(114,80,50,.10)}.room.bed-deluxe .bed-blanket{position:absolute;left:54px;right:14px;top:46px;height:34px;border-radius:18px;background:#b9c7c5}.room.bed-deluxe .bed-deco{position:absolute;right:12px;top:44px;font-size:calc(19px + var(--tp-text-extra,0px));opacity:.85}
.room.bed-fluffy .bed-back{position:absolute;left:12px;right:12px;top:0;height:24px;border-radius:20px 20px 8px 8px;background:#bb8f69}.room.bed-fluffy .bed-matress{position:absolute;left:0;right:0;top:18px;height:72px;border-radius:24px;background:#f4ede2;box-shadow:0 12px 0 rgba(114,80,50,.10)}.room.bed-fluffy .bed-blanket{position:absolute;left:54px;right:14px;top:46px;height:34px;border-radius:18px;background:#b9c7c5}.room.bed-fluffy .bed-deco{position:absolute;right:12px;top:44px;font-size:calc(19px + var(--tp-text-extra,0px));opacity:.85}
.toy-floor{position:absolute;right:120px;bottom:34px;font-size:28px;z-index:4;transform:rotate(-18deg)}
.pet-zone{position:absolute;left:50%;top:52%;transform:translate(-50%,-50%);width:240px;height:235px;display:flex;align-items:center;justify-content:center;z-index:5}.pet{position:relative;width:150px;height:168px;border:0;background:transparent;filter:drop-shadow(0 12px 10px rgba(80,50,30,.16));transform-origin:center bottom;animation:idle 2.3s ease-in-out infinite;z-index:3}.pet *{position:absolute;display:block}.head{left:26px;top:14px;width:98px;height:91px;border-radius:48% 48% 44% 44%;background:#d7a467;z-index:6}.body{left:42px;top:87px;width:68px;height:65px;border-radius:48% 48% 43% 43%;background:#c99559;z-index:4}.belly{left:16px;top:14px;width:36px;height:42px;border-radius:50%;background:#ead2ad}.ear{top:10px;width:38px;height:61px;background:#986944;border-radius:60% 48% 60% 45%;z-index:3}.ear-left{left:16px;transform:rotate(22deg)}.ear-right{right:16px;transform:scaleX(-1) rotate(22deg)}.face-eye{top:37px;width:9px;height:12px;background:#2f261f;border-radius:50%;z-index:8}.eye-left{left:27px}.eye-right{right:27px}.muzzle{left:27px;top:51px;width:44px;height:32px;border-radius:50%;background:#ecd0a2;z-index:7}.nose{left:15px;top:5px;width:15px;height:11px;background:#2b231e;border-radius:50%}.mouth{left:17px;top:17px;width:12px;height:7px;border-bottom:3px solid #4c382b;border-radius:0 0 12px 12px}.leg{top:137px;width:30px;height:26px;background:#c99559;border-radius:10px 10px 14px 14px;z-index:3}.leg-left{left:43px}.leg-right{right:43px}.tail{right:24px;top:103px;width:45px;height:18px;border-radius:18px;background:#b77e4e;transform:rotate(-35deg);transform-origin:left center;z-index:2;animation:wag .8s ease-in-out infinite alternate}.shadow{position:absolute;bottom:29px;width:114px;height:23px;border-radius:50%;background:rgba(70,45,25,.12);filter:blur(3px)}.room.night .shadow{background:rgba(0,0,0,.25)}.sleep-z{right:-4px;top:17px;color:#fff;font-size:23px;font-weight:900;letter-spacing:4px;text-shadow:0 2px 5px rgba(0,0,0,.2);animation:floatZ 2s infinite}.sick-mark{right:8px;top:29px;width:24px;height:24px;border-radius:50%;background:#e86d6d;color:white;font-weight:950;line-height:24px;text-align:center;z-index:12}.pet.sleeping{animation:sleep 3s ease-in-out infinite}.pet.sleeping .face-eye{height:3px;top:42px;border-radius:999px}.pet.happy{animation:happy .55s ease-in-out 2}.pet.sad{animation:sad 2s ease-in-out infinite}.pet.sad .mouth{border-bottom:0;border-top:3px solid #4c382b;border-radius:12px 12px 0 0;top:23px}.pet.dirty .body::after{content:"";position:absolute;right:4px;top:18px;width:13px;height:13px;border-radius:50%;background:#8b744f;box-shadow:-30px 18px 0 2px #8b744f}.speech{position:absolute;top:3px;left:50%;transform:translateX(-50%);background:white;color:#2b2520;padding:10px 13px;border-radius:16px;font-size:calc(14px + var(--tp-text-extra,0px));font-weight:800;white-space:nowrap;box-shadow:var(--shadow);z-index:15}.speech::after{content:"";position:absolute;left:50%;bottom:-6px;width:12px;height:12px;background:white;transform:translateX(-50%) rotate(45deg)}.mess{position:absolute;font-size:30px;animation:pop .25s ease-out;z-index:8}.poop{right:19px;bottom:37px}.pee{left:22px;bottom:38px;font-size:25px;filter:saturate(.7)}.pet-name-wrap{position:absolute;left:0;right:0;bottom:13px;text-align:center;z-index:10}.name-button{display:inline-flex;align-items:center;gap:7px;border-radius:999px;padding:8px 13px;background:rgba(255,255,255,.70);backdrop-filter:blur(12px);font-size:calc(17px + var(--tp-text-extra,0px));font-weight:850;box-shadow:none}.room.night .name-button{background:rgba(255,255,255,.12);color:#fff}.edit-mark{font-size:calc(13px + var(--tp-text-extra,0px));opacity:.45}.age-text{font-size:calc(13px + var(--tp-text-extra,0px));margin-top:5px;color:rgba(55,45,35,.62);font-weight:750}.room.night .age-text{color:rgba(255,255,255,.62)}
.needs{padding:18px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px}.needs-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.need{background:var(--surface-2);border:1px solid rgba(90,70,50,.06);border-radius:20px;padding:13px}.need-top{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:9px}.need-title{display:flex;align-items:center;gap:7px;font-weight:800;font-size:calc(14px + var(--tp-text-extra,0px))}.need-value{font-size:calc(13px + var(--tp-text-extra,0px));font-weight:850;color:var(--muted)}.bar{height:8px;background:rgba(80,65,50,.08);border-radius:999px;overflow:hidden}.bar>span{display:block;height:100%;border-radius:999px;background:var(--accent);transition:width .4s ease}.need.warn .bar>span{background:#b66b41}.need.bad .bar>span{background:#9b4a4a}.quick-card{padding:18px}.quick-icon{font-size:34px}.primary-btn,.danger-btn{border:0;width:100%;height:52px;border-radius:18px;font-weight:850}.primary-btn{background:var(--accent);color:white;box-shadow:0 10px 22px rgba(35,30,25,.14)}.danger-btn{margin-top:16px;background:#f4e7e5;color:#9b4a4a}
.dock{position:fixed;left:50%;bottom:0;transform:translateX(-50%);width:min(100%,540px);min-height:82px;padding:10px 10px calc(10px + var(--safe-bottom));display:grid;grid-template-columns:repeat(5,1fr);gap:5px;background:rgba(255,253,249,.96);border:1px solid rgba(80,60,40,.10);border-bottom:0;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-radius:24px 24px 0 0;box-shadow:0 -10px 28px rgba(70,50,30,.12);z-index:20}.dock-item{border:0;background:transparent;border-radius:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--muted)}.dock-item>span{font-size:21px;line-height:1}.dock-item small{font-size:calc(11.5px + var(--tp-text-extra,0px));font-weight:750}.dock-item.active{background:#282421;color:white}
.sheet-backdrop{position:fixed;inset:0;background:rgba(35,28,22,.25);backdrop-filter:blur(2px);z-index:30}.bottom-sheet{position:fixed;left:50%;bottom:0;transform:translateX(-50%);width:min(100%,540px);max-height:80dvh;overflow:auto;background:var(--surface);z-index:31;padding:9px 18px calc(22px + var(--safe-bottom));border-radius:30px 30px 0 0;box-shadow:0 -18px 50px rgba(50,35,25,.16)}.sheet-handle{width:42px;height:5px;border-radius:999px;background:#d9d2ca;margin:0 auto 15px}.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:16px}.sheet-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.action-card{border:1px solid var(--line);background:var(--surface-2);border-radius:20px;padding:15px;text-align:left;min-height:113px;position:relative}.action-card .icon{font-size:29px;display:block;margin-bottom:12px}.action-card strong{display:block;font-size:calc(14px + var(--tp-text-extra,0px));margin-bottom:4px}.action-card small{display:block;color:var(--muted);font-weight:650;line-height:1.25}.action-card .cost,.action-card .owned{position:absolute;right:12px;top:12px;font-size:calc(12px + var(--tp-text-extra,0px));font-weight:850;background:white;padding:5px 7px;border-radius:999px}.action-card .owned{background:#e8f0e8;color:#4d7456}.action-card.disabled{opacity:.45}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stat{background:var(--surface-2);border-radius:18px;padding:14px}.stat strong{display:block;font-size:24px;letter-spacing:-.04em}.stat small{color:var(--muted);font-weight:700}.inventory-list{display:grid;gap:10px}.inventory-row{display:flex;align-items:center;gap:13px;padding:13px;background:var(--surface-2);border-radius:18px}.inventory-icon{font-size:30px;width:42px;text-align:center}.inventory-info{flex:1;min-width:0}.inventory-info strong{display:block;font-size:calc(14px + var(--tp-text-extra,0px))}.inventory-info small{display:block;margin-top:3px;color:var(--muted);font-weight:650}.durability{height:6px;background:rgba(70,60,50,.08);border-radius:999px;overflow:hidden;margin-top:7px}.durability span{display:block;height:100%;background:#6b7a67;border-radius:999px}.inventory-action{border:0;background:white;border-radius:12px;padding:9px 10px;font-weight:800;font-size:calc(13px + var(--tp-text-extra,0px));box-shadow:0 4px 14px rgba(80,60,40,.08)}.toast{position:fixed;left:50%;bottom:100px;transform:translateX(-50%);background:#25211e;color:white;border-radius:999px;padding:11px 16px;font-size:calc(14px + var(--tp-text-extra,0px));font-weight:800;z-index:50;box-shadow:var(--shadow);white-space:nowrap;max-width:calc(100% - 30px);overflow:hidden;text-overflow:ellipsis}
@keyframes idle{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-5px) rotate(-1deg)}}@keyframes sleep{0%,100%{transform:translateY(3px) scale(.98) rotate(-2deg)}50%{transform:translateY(0) scale(1) rotate(2deg)}}@keyframes happy{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-17px) scale(1.05)}}@keyframes sad{0%,100%{transform:translateY(0)}50%{transform:translateY(2px) rotate(-2deg)}}@keyframes pop{from{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}@keyframes wag{from{transform:rotate(-55deg)}to{transform:rotate(-15deg)}}@keyframes floatZ{0%{transform:translate(0,7px);opacity:.1}50%{opacity:1}100%{transform:translate(8px,-15px);opacity:0}}
@media(min-width:760px){body{padding:18px 0}.app-shell{min-height:calc(100dvh - 36px)}}

.room-lamp.hidden,.room-plant.hidden,.room-rug.hidden,.room-shelf.hidden,.room-dresser.hidden,.toy-floor.hidden{display:none!important}
.room-bed::after{content:"";position:absolute;left:18px;right:18px;bottom:-2px;height:12px;border-radius:50%;background:rgba(65,45,30,.10);filter:blur(4px);z-index:-1}
.room-dresser::after{content:"";position:absolute;left:10px;right:10px;bottom:-4px;height:10px;border-radius:50%;background:rgba(65,45,30,.10);filter:blur(4px)}
.room-shelf::after{content:"";position:absolute;left:6px;right:6px;bottom:-3px;height:4px;border-radius:999px;background:rgba(65,45,30,.12)}
.room-lamp::after{content:"";position:absolute;left:6px;right:6px;bottom:-3px;height:8px;border-radius:50%;background:rgba(65,45,30,.10);filter:blur(3px)}

.room.theme-peach{--wall1:#f8d8cd;--wall2:#fbe9e2}.room.theme-night{--wall1:#2b2941;--wall2:#3d3a59}.room.floor-cream{--floor1:#e9ddcf;--floor2:#d9c7b5}.room.night.theme-peach{--wall1:#42343b;--wall2:#514049}.room.night.theme-night{--wall1:#171a2c;--wall2:#232943}
.arrange-badge{border:0;padding:8px 11px;border-radius:999px;background:#25211e!important;color:#fff;font-size:calc(12px + var(--tp-text-extra,0px));font-weight:850;box-shadow:none!important;cursor:pointer}
.room.arranging .room-object:not(.hidden){outline:2px dashed rgba(255,255,255,.85);outline-offset:5px;cursor:grab;touch-action:none;filter:drop-shadow(0 8px 12px rgba(0,0,0,.18))}.room.arranging .room-object:active{cursor:grabbing;scale:1.03}
.room-bowl{position:absolute;left:79%;top:80%;font-size:32px;z-index:5;filter:drop-shadow(0 6px 5px rgba(60,40,20,.15))}.room-stool{position:absolute;left:21%;top:75%;width:54px;height:48px;z-index:3}.room-stool span{position:absolute;left:6px;right:6px;top:0;height:18px;border-radius:10px;background:#c09269;box-shadow:inset 0 -4px rgba(90,55,30,.08)}.room-stool::before,.room-stool::after{content:"";position:absolute;top:15px;width:8px;height:32px;border-radius:0 0 6px 6px;background:#9d704f}.room-stool::before{left:12px;transform:rotate(5deg)}.room-stool::after{right:12px;transform:rotate(-5deg)}
.room.pet-in-bed .pet{animation:sleep 3s ease-in-out infinite;transform:rotate(-7deg)}.room.pet-in-bed .tail{animation:none}.room.pet-in-bed .shadow{opacity:.22}.pet-zone{transition:left .65s cubic-bezier(.2,.75,.25,1),top .65s cubic-bezier(.2,.75,.25,1),transform .45s ease}


/* Aggiornamenti PWA */
.update-banner{position:fixed;left:50%;top:max(14px,env(safe-area-inset-top,0px));transform:translateX(-50%);width:min(calc(100% - 24px),510px);z-index:80;background:rgba(255,253,249,.96);border:1px solid rgba(72,58,46,.12);box-shadow:0 18px 55px rgba(55,40,25,.20);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-radius:24px;padding:14px;display:grid;grid-template-columns:42px 1fr;gap:11px;animation:updateIn .28s ease-out}
.update-icon{width:42px;height:42px;border-radius:14px;background:#f2eadf;display:grid;place-items:center;font-size:21px}
.update-copy{min-width:0;display:flex;flex-direction:column;gap:2px;padding-top:1px}.update-copy small{font-size:calc(10.5px + var(--tp-text-extra,0px));letter-spacing:.13em;font-weight:900;color:var(--muted)}.update-copy strong{font-size:calc(14px + var(--tp-text-extra,0px));line-height:1.2}.update-copy span{font-size:calc(12px + var(--tp-text-extra,0px));line-height:1.3;color:var(--muted);font-weight:650;margin-top:2px}
.update-actions{grid-column:1/-1;display:grid;grid-template-columns:.7fr 1.3fr;gap:8px;margin-top:2px}.update-actions button{height:40px;border:0;border-radius:14px;font-weight:850;font-size:calc(13px + var(--tp-text-extra,0px))}.update-later{background:var(--surface-2);color:var(--muted)}.update-now{background:#282421;color:#fff}.update-now:disabled{opacity:.55}
@keyframes updateIn{from{opacity:0;transform:translate(-50%,-10px) scale(.98)}to{opacity:1;transform:translate(-50%,0) scale(1)}}

/* Interazioni touch: niente selezione/copia durante il gioco */
html,body,.app-shell,.app-shell *{
  -webkit-user-select:none!important;
  user-select:none!important;
  -webkit-touch-callout:none!important;
}
img,svg,.app-shell *{
  -webkit-user-drag:none!important;
}
.room.arranging,.room.arranging *{
  touch-action:none!important;
  overscroll-behavior:contain;
}
.room.arranging .room-object:not(.hidden){
  -webkit-user-select:none!important;
  user-select:none!important;
  -webkit-touch-callout:none!important;
  -webkit-user-drag:none!important;
}


/* TinyPal 6.2 — strumenti modalità Arredo */
.arrange-toolbar{position:absolute;left:12px;right:12px;bottom:12px;z-index:25;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 11px;border-radius:18px;background:rgba(31,29,27,.90);color:#fff;box-shadow:0 14px 34px rgba(30,24,20,.24);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);touch-action:none!important}
.arrange-selected{min-width:0;display:flex;flex-direction:column;gap:1px}.arrange-selected small{font-size:calc(9.5px + var(--tp-text-extra,0px));letter-spacing:.12em;font-weight:900;opacity:.58}.arrange-selected strong{font-size:calc(13px + var(--tp-text-extra,0px));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.arrange-tools{display:flex;gap:5px}.arrange-tools button{width:34px;height:34px;border:0;border-radius:11px;background:rgba(255,255,255,.12);color:#fff;font-size:calc(17px + var(--tp-text-extra,0px));font-weight:900;display:grid;place-items:center;touch-action:manipulation}.arrange-tools button:disabled{opacity:.25}.arrange-tools button:active{transform:scale(.94);background:rgba(255,255,255,.2)}
.room.arranging .pet-name-wrap{opacity:.18;pointer-events:none}.room.arranging .pet-zone{pointer-events:none;opacity:.42}.room.arranging .room-meta>span{opacity:.35}.room.arranging .room-object:not(.hidden){outline:2px dashed rgba(255,255,255,.72);outline-offset:5px}.room.arranging .room-object.selected-object:not(.hidden){outline:3px solid #fff;outline-offset:6px;filter:drop-shadow(0 10px 16px rgba(0,0,0,.30));cursor:grabbing}.room.arranging .room-object.selected-object:not(.hidden)::before{pointer-events:none}


/* TinyPal 6.3 — Catalogo arredamento */
.room-object.hidden{display:none!important}
.catalog-filters{display:flex;gap:7px;overflow-x:auto;padding:0 1px 13px;margin-top:-4px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.catalog-filters::-webkit-scrollbar{display:none}.catalog-chip{flex:0 0 auto;height:36px;border:0;border-radius:999px;padding:0 12px;background:var(--surface-2);color:var(--muted);font-size:calc(12px + var(--tp-text-extra,0px));font-weight:850;display:flex;align-items:center;gap:6px;white-space:nowrap}.catalog-chip.active{background:#282421;color:white}.catalog-chip span{font-size:calc(14px + var(--tp-text-extra,0px))}
.room-nightstand{position:absolute;left:29%;top:73%;width:62px;height:58px;z-index:3}.nightstand-top{position:absolute;left:0;right:0;top:0;height:12px;border-radius:11px 11px 5px 5px;background:#c59a72;box-shadow:0 4px rgba(75,47,25,.10)}.nightstand-drawer{position:absolute;left:6px;right:6px;top:15px;height:29px;border-radius:7px;background:#b68862}.nightstand-drawer::after{content:"";position:absolute;left:50%;top:10px;transform:translateX(-50%);width:13px;height:3px;border-radius:999px;background:rgba(255,255,255,.72)}.nightstand-leg{position:absolute;bottom:0;width:7px;height:17px;border-radius:0 0 5px 5px;background:#9b6e4e}.nightstand-leg.left{left:10px}.nightstand-leg.right{right:10px}
.room-clock{position:absolute;left:22%;top:25%;width:48px;height:48px;border-radius:50%;background:#fff8ee;border:6px solid #b98b66;box-shadow:0 7px 14px rgba(55,35,20,.10);z-index:3;color:#78604d;font-size:calc(9px + var(--tp-text-extra,0px));font-weight:900;text-align:center;padding-top:3px}.room-clock i,.room-clock b{position:absolute;left:50%;top:50%;transform-origin:1px 1px;width:2px;border-radius:999px;background:#6e5a4a}.room-clock i{height:13px;transform:translate(-1px,-1px) rotate(35deg)}.room-clock b{height:10px;transform:translate(-1px,-1px) rotate(125deg)}
.room-basket{position:absolute;right:18px;bottom:55px;width:72px;height:48px;border-radius:9px 9px 20px 20px;background:repeating-linear-gradient(90deg,#c39a6a 0 7px,#b2875b 7px 13px);border:3px solid rgba(105,72,43,.18);z-index:4;display:flex;align-items:flex-start;justify-content:center;gap:0;padding-top:0}.room-basket span{font-size:22px;transform:translateY(-14px) rotate(-9deg)}.room-basket span+span{transform:translateY(-12px) rotate(11deg)}
.room-cushion{position:absolute;left:62%;top:79%;width:54px;height:40px;border-radius:18px 20px 17px 22px;background:#dfa6b8;box-shadow:inset 0 -6px rgba(100,60,80,.08),0 8px 9px rgba(60,40,30,.10);display:grid;place-items:center;color:rgba(255,255,255,.78);font-size:calc(14px + var(--tp-text-extra,0px));z-index:5}
.room-floorlamp{position:absolute;right:20px;top:38%;width:54px;height:154px;z-index:3}.floorlamp-shade{position:absolute;top:0;left:3px;width:48px;height:34px;border-radius:12px 12px 18px 18px;background:#efe4cf;clip-path:polygon(13% 0,87% 0,100% 100%,0 100%)}.floorlamp-stick{position:absolute;top:30px;left:25px;width:5px;height:105px;border-radius:999px;background:#8b7665}.floorlamp-base{position:absolute;bottom:0;left:8px;width:38px;height:10px;border-radius:50%;background:#8b7665}.room.night .room-floorlamp .floorlamp-shade{filter:drop-shadow(0 0 13px rgba(255,224,161,.65))}
/* Varianti colore arredi */
.room-bed.tone-sage .bed-blanket{background:#a9c4b4}.room-bed.tone-rose .bed-blanket{background:#dfb3c4}.room-bed.tone-sky .bed-blanket{background:#a9c6df}.room-bed.tone-cream .bed-blanket{background:#dccbad}
.room-rug.tone-clay{background:#c98f78!important}.room-rug.tone-sage{background:#95b8a6!important}.room-rug.tone-sky{background:#8fb0d4!important}.room-rug.tone-lavender{background:#b6a3ca!important}
.room-shelf.tone-walnut{background:#8f6247}.room-shelf.tone-oak{background:#c89f76}.room-shelf.tone-cream{background:#d8c6af}.room-shelf.tone-sage{background:#8da493}
.room-dresser.tone-walnut .dresser-top,.room-dresser.tone-walnut .dresser-body{background:#8f6247}.room-dresser.tone-oak .dresser-top,.room-dresser.tone-oak .dresser-body{background:#c89f76}.room-dresser.tone-cream .dresser-top,.room-dresser.tone-cream .dresser-body{background:#d8c6af}.room-dresser.tone-sage .dresser-top,.room-dresser.tone-sage .dresser-body{background:#8da493}
.room-stool.tone-walnut span,.room-stool.tone-walnut::before,.room-stool.tone-walnut::after{background:#8f6247}.room-stool.tone-oak span,.room-stool.tone-oak::before,.room-stool.tone-oak::after{background:#c89f76}.room-stool.tone-cream span,.room-stool.tone-cream::before,.room-stool.tone-cream::after{background:#d8c6af}.room-stool.tone-sage span,.room-stool.tone-sage::before,.room-stool.tone-sage::after{background:#8da493}
.room-nightstand.tone-walnut .nightstand-top,.room-nightstand.tone-walnut .nightstand-drawer,.room-nightstand.tone-walnut .nightstand-leg{background:#8f6247}.room-nightstand.tone-oak .nightstand-top,.room-nightstand.tone-oak .nightstand-drawer,.room-nightstand.tone-oak .nightstand-leg{background:#c89f76}.room-nightstand.tone-cream .nightstand-top,.room-nightstand.tone-cream .nightstand-drawer,.room-nightstand.tone-cream .nightstand-leg{background:#d8c6af}.room-nightstand.tone-sage .nightstand-top,.room-nightstand.tone-sage .nightstand-drawer,.room-nightstand.tone-sage .nightstand-leg{background:#8da493}
.room-lamp.tone-honey .lamp-shade{background:#e3bb75}.room-lamp.tone-rose .lamp-shade{background:#d8a0ad}.room-lamp.tone-mint .lamp-shade{background:#9fc4b6}.room-floorlamp.tone-cream .floorlamp-shade{background:#efe4cf}.room-floorlamp.tone-honey .floorlamp-shade{background:#e1bd79}.room-floorlamp.tone-mint .floorlamp-shade{background:#a7c8ba}
.room-basket.tone-tan{background:repeating-linear-gradient(90deg,#c39a6a 0 7px,#b2875b 7px 13px)}.room-basket.tone-rose{background:repeating-linear-gradient(90deg,#d3a2aa 0 7px,#be8994 7px 13px)}.room-basket.tone-sage{background:repeating-linear-gradient(90deg,#9db5a4 0 7px,#839d8c 7px 13px)}
.room-cushion.tone-rose{background:#dfa6b8}.room-cushion.tone-sky{background:#9fbed8}.room-cushion.tone-cream{background:#dfceb5}.room-cushion.tone-sage{background:#9eb8a5}
.room-clock.tone-cream{background:#fff8ee;border-color:#b98b66}.room-clock.tone-walnut{background:#d7b996;border-color:#7f553b}.room-clock.tone-sky{background:#e2eff8;border-color:#799db9}
.room-bowl.tone-terracotta{filter:drop-shadow(0 6px 5px rgba(60,40,20,.15)) hue-rotate(0deg)}.room-bowl.tone-sage{filter:drop-shadow(0 6px 5px rgba(60,40,20,.15)) hue-rotate(75deg)}.room-bowl.tone-sky{filter:drop-shadow(0 6px 5px rgba(60,40,20,.15)) hue-rotate(160deg)}


/* TinyPal 6.4 — routine e mobili interattivi */
.routine-card{padding:16px 17px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px}.routine-main{display:flex;align-items:center;gap:12px;min-width:0}.routine-icon{width:48px;height:48px;flex:0 0 48px;border-radius:17px;background:var(--surface-2);display:grid;place-items:center;font-size:24px}.routine-copy{min-width:0}.routine-copy h2{font-size:calc(17px + var(--tp-text-extra,0px));margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.routine-copy p{margin-top:4px;font-size:calc(12px + var(--tp-text-extra,0px));line-height:1.35;color:var(--muted);font-weight:650;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.routine-action{border:0;height:40px;padding:0 12px;border-radius:14px;background:#282421;color:#fff;font-size:calc(12px + var(--tp-text-extra,0px));font-weight:850;white-space:nowrap}.routine-action:active{transform:scale(.96)}
.room:not(.arranging) .room-bed,.room:not(.arranging) .room-bowl,.room:not(.arranging) .room-lamp,.room:not(.arranging) .room-floorlamp,.room:not(.arranging) .room-cushion,.room:not(.arranging) .room-basket,.room:not(.arranging) .toy-floor,.room:not(.arranging) .room-clock,.room:not(.arranging) .room-window{cursor:pointer}.room:not(.arranging) .room-bed:active,.room:not(.arranging) .room-bowl:active,.room:not(.arranging) .room-lamp:active,.room:not(.arranging) .room-floorlamp:active,.room:not(.arranging) .room-cushion:active,.room:not(.arranging) .room-basket:active,.room:not(.arranging) .toy-floor:active{filter:brightness(.96)}
.room-lamp.is-off .lamp-shade,.room-floorlamp.is-off .floorlamp-shade{filter:none!important;opacity:.58}.room-lamp.is-off,.room-floorlamp.is-off{opacity:.72}.room-object.interaction-pulse{animation:objectPulse .62s ease-out}.room-window.interaction-pulse{animation:objectPulse .62s ease-out}@keyframes objectPulse{0%{filter:brightness(1)}45%{filter:brightness(1.12) drop-shadow(0 0 12px rgba(255,255,255,.45))}100%{filter:brightness(1)}}
.pet-zone.routine-moving{transition:left .55s cubic-bezier(.2,.8,.2,1),top .55s cubic-bezier(.2,.8,.2,1),transform .55s cubic-bezier(.2,.8,.2,1)!important}.room:not(.pet-in-bed) .pet-zone.activity-near-object{transform:translate(-50%,-50%) scale(.88)}.pet-zone.activity-window .pet{animation:lookAround 2.5s ease-in-out infinite}.pet-zone.activity-bowl .head{transform:rotate(7deg) translateY(3px)}.pet-zone.activity-toy .tail{animation-duration:.34s}.pet-zone.activity-cushion .pet{animation:happy .8s ease-in-out infinite}.pet-zone.activity-explore .pet{animation:explore 2.8s ease-in-out infinite}@keyframes lookAround{0%,100%{transform:rotate(-2deg)}50%{transform:rotate(3deg)}}@keyframes explore{0%,100%{transform:translateX(-4px) translateY(0)}50%{transform:translateX(5px) translateY(-3px)}}
.room-object:not(.hidden)[data-interactive="true"]::after{pointer-events:none}.room:not(.arranging) .room-object[data-interactive="true"]{touch-action:manipulation}
@media(max-width:390px){.routine-card{grid-template-columns:1fr}.routine-action{width:100%}.routine-copy h2{white-space:normal}.routine-main{align-items:flex-start}}


/* TinyPal 6.5 — crescita e personalità */
.growth-card{padding:17px}.growth-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}.growth-head h2{font-size:calc(18px + var(--tp-text-extra,0px))}.growth-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.growth-stat{min-width:0;background:var(--surface-2);border-radius:17px;padding:11px 9px;text-align:center}.growth-stat>span{display:block;font-size:calc(20px + var(--tp-text-extra,0px));margin-bottom:5px}.growth-stat strong{display:block;font-size:calc(14px + var(--tp-text-extra,0px));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.growth-stat small{display:block;margin-top:3px;color:var(--muted);font-size:calc(10.5px + var(--tp-text-extra,0px));font-weight:750}.growth-progress{margin-top:12px}.growth-progress-copy{display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:calc(11.5px + var(--tp-text-extra,0px));font-weight:800;color:var(--muted)}.growth-progress-copy strong{color:var(--text);font-size:calc(12px + var(--tp-text-extra,0px))}.growth-bar{height:8px;margin-top:7px;border-radius:999px;background:rgba(70,55,45,.08);overflow:hidden}.growth-bar span{display:block;width:0;height:100%;border-radius:999px;background:linear-gradient(90deg,#9eb9a5,#c3a6b8);transition:width .4s ease}.daily-event{margin-top:12px;padding:10px 12px;border-radius:16px;background:#fff6dd;display:flex;align-items:center;gap:9px}.daily-event>span{font-size:calc(19px + var(--tp-text-extra,0px))}.daily-event p{font-size:calc(11.5px + var(--tp-text-extra,0px));line-height:1.35;color:#776852;font-weight:700}
.pet.stage-puppy{scale:.92}.pet.stage-young{scale:1}.pet.stage-adult{scale:1.08}.pet.stage-adult .body{height:70px;top:84px}.pet.stage-adult .tail{width:49px}.pet.stage-puppy .ear{transform-origin:top center}.pet.stage-puppy .ear-left{transform:rotate(28deg)}.pet.stage-puppy .ear-right{transform:scaleX(-1) rotate(28deg)}
.profile-hero{display:flex;align-items:center;gap:13px;background:var(--surface-2);border-radius:21px;padding:14px;margin-bottom:14px}.profile-stage{width:58px;height:58px;flex:0 0 58px;border-radius:20px;background:#fff;display:grid;place-items:center;font-size:31px;box-shadow:0 5px 16px rgba(60,45,35,.07)}.profile-hero h3{margin:3px 0 4px;font-size:calc(20px + var(--tp-text-extra,0px))}.profile-hero p{font-size:calc(12px + var(--tp-text-extra,0px));line-height:1.4;color:var(--muted);font-weight:650}.personality-list{display:grid;gap:10px}.personality-row{padding:11px 12px;border-radius:16px;background:var(--surface-2)}.personality-label{display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:6px;font-size:calc(12px + var(--tp-text-extra,0px))}.personality-label span{font-size:calc(17px + var(--tp-text-extra,0px))}.personality-label strong{font-size:calc(13px + var(--tp-text-extra,0px))}.personality-label em{font-style:normal;color:var(--muted);font-weight:850}.personality-bar{height:7px;margin-top:8px;border-radius:999px;background:rgba(70,55,45,.08);overflow:hidden}.personality-bar span{display:block;height:100%;border-radius:999px;background:#8fa998}.profile-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:13px}.profile-metrics>div{background:var(--surface-2);border-radius:16px;padding:11px 8px;text-align:center}.profile-metrics span{display:block;font-size:calc(20px + var(--tp-text-extra,0px))}.profile-metrics strong{display:block;margin-top:4px;font-size:calc(14px + var(--tp-text-extra,0px))}.profile-metrics small{display:block;margin-top:2px;color:var(--muted);font-size:calc(10.5px + var(--tp-text-extra,0px));font-weight:750}.profile-event{margin-top:13px;background:#fff6dd;border-radius:18px;padding:13px}.profile-event p{margin-top:5px;font-size:calc(12px + var(--tp-text-extra,0px));line-height:1.45;color:#71634f;font-weight:700}@media(max-width:360px){.growth-grid{grid-template-columns:1fr}.growth-stat{display:grid;grid-template-columns:26px 1fr auto;align-items:center;text-align:left;gap:6px}.growth-stat>span{margin:0}.growth-stat small{margin:0}.profile-metrics{grid-template-columns:1fr}}


/* v6.6 — obiettivi e traguardi */
.missions-card{padding:18px}.missions-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}.missions-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:14px}.missions-summary>div{background:var(--surface-2);border-radius:17px;padding:11px 8px;text-align:center}.missions-summary span{display:block;font-size:calc(19px + var(--tp-text-extra,0px));margin-bottom:3px}.missions-summary strong{display:block;font-size:calc(19px + var(--tp-text-extra,0px));letter-spacing:-.03em}.missions-summary small{display:block;color:var(--muted);font-size:calc(11.5px + var(--tp-text-extra,0px));font-weight:750;margin-top:2px}.mission-list{display:grid;gap:9px}.mission-row{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:10px;padding:11px;background:var(--surface-2);border:1px solid rgba(80,60,40,.05);border-radius:17px}.mission-row.done{background:#eef5ed}.mission-row.claimed{opacity:.72}.mission-icon{width:38px;height:38px;border-radius:13px;background:white;display:grid;place-items:center;font-size:calc(20px + var(--tp-text-extra,0px));box-shadow:0 4px 12px rgba(70,50,30,.06)}.mission-copy{min-width:0}.mission-copy strong{display:block;font-size:calc(14px + var(--tp-text-extra,0px))}.mission-copy small{display:block;color:var(--muted);font-weight:650;font-size:calc(12px + var(--tp-text-extra,0px));margin-top:3px}.mission-progress{height:6px;background:rgba(70,55,45,.08);border-radius:999px;overflow:hidden;margin-top:7px}.mission-progress span{display:block;height:100%;background:#6f8065;border-radius:999px}.mission-claim{border:0;background:#282421;color:white;border-radius:12px;padding:8px 9px;font-size:calc(12px + var(--tp-text-extra,0px));font-weight:850;white-space:nowrap}.mission-claim:disabled{background:#ddd6cf;color:#8b8178}.mission-bonus{margin-top:11px;padding:10px 12px;background:#f7f0e5;border-radius:14px;color:#74675c;font-size:calc(12px + var(--tp-text-extra,0px));font-weight:750;text-align:center}.mission-bonus.complete{background:#edf5e9;color:#557050}
.progress-hero{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:18px}.progress-hero>div{background:var(--surface-2);border-radius:20px;padding:15px}.progress-hero span{font-size:25px}.progress-hero strong{display:block;margin-top:8px;font-size:calc(17px + var(--tp-text-extra,0px))}.progress-hero small{display:block;color:var(--muted);font-weight:700;margin-top:3px}.progress-section{margin-top:18px}.progress-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.progress-section-head>strong{font-size:calc(13px + var(--tp-text-extra,0px));color:var(--muted)}.daily-goals-full{display:grid;gap:9px}.achievement-list{display:grid;gap:9px}.achievement-row{display:flex;align-items:center;gap:12px;padding:12px;background:var(--surface-2);border-radius:17px}.achievement-row.locked{opacity:.48}.achievement-row .achievement-icon{width:42px;height:42px;border-radius:14px;background:white;display:grid;place-items:center;font-size:22px;box-shadow:0 4px 12px rgba(70,50,30,.06)}.achievement-row .achievement-copy{flex:1;min-width:0}.achievement-row strong{display:block;font-size:calc(14px + var(--tp-text-extra,0px))}.achievement-row small{display:block;color:var(--muted);font-weight:650;font-size:calc(12px + var(--tp-text-extra,0px));margin-top:3px}.achievement-reward{font-size:calc(12px + var(--tp-text-extra,0px));font-weight:850;background:white;border-radius:999px;padding:6px 8px;white-space:nowrap}.achievement-row.unlocked{background:#eef5ed}.achievement-row.unlocked .achievement-reward{background:#dfeeda;color:#50704e}


/* v6.7 - salute, sintomi e malattie */
.health-card{padding:18px}.health-card-head{display:flex;align-items:center;gap:12px}.health-status-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:17px;background:#edf4ea;font-size:25px;flex:0 0 auto}.health-card-copy{flex:1;min-width:0}.health-card-copy h2{font-size:calc(19px + var(--tp-text-extra,0px));margin-top:3px}.health-card-copy p{margin-top:5px;color:var(--muted);font-size:calc(13px + var(--tp-text-extra,0px));font-weight:650;line-height:1.35}.health-card.sick{border-color:rgba(168,91,79,.18);background:linear-gradient(180deg,#fffdf9,#fff8f4)}.health-card.sick .health-status-icon{background:#f7e8e3}.health-card.warning .health-status-icon{background:#f8efdc}.health-recovery{margin-top:15px}.health-recovery-copy{display:flex;align-items:center;justify-content:space-between;font-size:calc(12px + var(--tp-text-extra,0px));font-weight:800;color:var(--muted);margin-bottom:7px}.health-recovery-copy strong{color:var(--text)}.health-recovery-bar{height:9px;border-radius:999px;background:rgba(70,55,45,.08);overflow:hidden}.health-recovery-bar span{display:block;height:100%;border-radius:999px;background:#7b9275;transition:width .35s ease}.health-card.sick .health-recovery-bar span{background:#b56d5c}.health-risk{margin-top:13px;display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:15px;background:var(--surface-2)}.health-risk span{font-size:calc(17px + var(--tp-text-extra,0px))}.health-risk p{margin:0;color:var(--muted);font-size:calc(13px + var(--tp-text-extra,0px));font-weight:750}
.health-sheet-hero{display:flex;align-items:center;gap:14px;padding:16px;border-radius:22px;background:var(--surface-2)}.health-sheet-icon{width:58px;height:58px;border-radius:19px;display:grid;place-items:center;background:#edf4ea;font-size:31px;flex:0 0 auto}.health-sheet-hero.is-sick .health-sheet-icon{background:#f6e4df}.health-sheet-hero h3{margin:4px 0 4px;font-size:calc(20px + var(--tp-text-extra,0px));letter-spacing:-.02em}.health-sheet-hero p{margin:0;color:var(--muted);font-size:calc(13px + var(--tp-text-extra,0px));font-weight:650;line-height:1.35}.health-severity{display:inline-block;font-size:calc(11.5px + var(--tp-text-extra,0px));font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#55705b;background:#e5efe6;padding:5px 8px;border-radius:999px}.health-sheet-hero.is-sick .health-severity{color:#945143;background:#f4ddd7}.health-sheet-progress{margin:16px 2px}.health-sheet-progress>div:first-child{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px}.health-sheet-progress span{font-size:calc(11.5px + var(--tp-text-extra,0px));font-weight:900;letter-spacing:.12em;color:var(--muted)}.health-sheet-progress strong{font-size:calc(13px + var(--tp-text-extra,0px))}.health-section,.health-history-wrap{margin-top:18px}.health-section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.health-section-head>strong{font-size:calc(12px + var(--tp-text-extra,0px));color:var(--muted)}.symptom-list,.care-tips,.health-history{display:grid;gap:8px}.symptom-item,.care-tip,.health-history-item{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:16px;background:var(--surface-2);font-size:calc(13px + var(--tp-text-extra,0px));font-weight:700;color:#514a44}.symptom-item span,.care-tip span,.health-history-item>span{font-size:calc(19px + var(--tp-text-extra,0px));width:25px;text-align:center}.health-history-item div{flex:1}.health-history-item strong{display:block;font-size:calc(13px + var(--tp-text-extra,0px))}.health-history-item small{display:block;margin-top:2px;color:var(--muted);font-size:calc(11.5px + var(--tp-text-extra,0px))}.health-empty{padding:13px;border-radius:16px;background:var(--surface-2);color:var(--muted);font-size:calc(13px + var(--tp-text-extra,0px));font-weight:700}.health-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.health-action{border:1px solid var(--line);background:var(--surface-2);border-radius:19px;padding:13px;text-align:left;min-height:94px}.health-action>span{font-size:24px;display:block;margin-bottom:8px}.health-action strong{display:block;font-size:calc(14px + var(--tp-text-extra,0px))}.health-action small{display:block;margin-top:4px;color:var(--muted);font-size:calc(11.5px + var(--tp-text-extra,0px));font-weight:650;line-height:1.2}.health-action.primary{background:#292522;color:#fff;border-color:#292522}.health-action.primary small{color:rgba(255,255,255,.68)}.health-action:disabled{opacity:.45}.pet.sick{filter:drop-shadow(0 12px 10px rgba(80,50,30,.16)) saturate(.82)}.pet.sick .tail{animation-duration:1.6s}.pet.sick .face-eye{height:8px}.sick-mark{font-size:calc(15px + var(--tp-text-extra,0px))!important;line-height:24px!important}.room.illness-flu .pet{animation-duration:3s}.room.illness-tummy .pet .body{transform:scale(.97)}


/* v6.8 · Centro monete */
.coin-center-hero{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}.coin-center-hero>div{background:var(--surface-2);border-radius:20px;padding:15px}.coin-center-hero span{font-size:25px}.coin-center-hero strong{display:block;margin-top:7px;font-size:22px;letter-spacing:-.03em}.coin-center-hero small{display:block;margin-top:3px;color:var(--muted);font-size:calc(11.5px + var(--tp-text-extra,0px));font-weight:750}.earnings-list{display:grid;gap:9px}.earning-row{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:11px;padding:12px;background:var(--surface-2);border:1px solid rgba(80,60,40,.05);border-radius:18px}.earning-row.ready{background:#eef5ed}.earning-row.locked{opacity:.72}.earning-icon{width:44px;height:44px;border-radius:15px;background:white;display:grid;place-items:center;font-size:23px;box-shadow:0 4px 12px rgba(70,50,30,.06)}.earning-copy{min-width:0}.earning-copy strong{display:block;font-size:calc(14px + var(--tp-text-extra,0px))}.earning-copy small{display:block;margin-top:3px;color:var(--muted);font-size:calc(11.5px + var(--tp-text-extra,0px));font-weight:650;line-height:1.35}.earning-action{border:0;background:#282421;color:#fff;border-radius:12px;padding:9px 10px;font-size:calc(12px + var(--tp-text-extra,0px));font-weight:850;white-space:nowrap}.earning-action:disabled{background:#ddd6cf;color:#8b8178}.earnings-more{margin-top:14px;padding:13px 14px;border-radius:17px;background:#fff6dd}.earnings-more p{margin:5px 0 0;color:#746755;font-size:calc(12px + var(--tp-text-extra,0px));font-weight:700;line-height:1.4}


/* v6.9 · Sala giochi */
.arcade-open{margin-top:12px;width:100%;border:0;background:#282421;color:#fff;border-radius:17px;padding:12px 13px;display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:10px;text-align:left}.arcade-open>span{width:38px;height:38px;border-radius:13px;background:rgba(255,255,255,.12);display:grid;place-items:center;font-size:21px}.arcade-open strong{display:block;font-size:calc(14px + var(--tp-text-extra,0px))}.arcade-open small{display:block;margin-top:2px;color:rgba(255,255,255,.68);font-size:calc(10.5px + var(--tp-text-extra,0px));line-height:1.3}.arcade-open b{font-size:calc(11.5px + var(--tp-text-extra,0px));background:#fff;color:#282421;border-radius:999px;padding:7px 9px}
.arcade-sheet{touch-action:manipulation}.arcade-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}.arcade-summary>div{background:var(--surface-2);border-radius:17px;padding:12px;text-align:center}.arcade-summary span{font-size:21px}.arcade-summary strong{display:block;margin-top:5px;font-size:calc(18px + var(--tp-text-extra,0px))}.arcade-summary small{display:block;margin-top:2px;color:var(--muted);font-size:calc(10.5px + var(--tp-text-extra,0px));font-weight:750}
.arcade-menu{display:grid;gap:10px}.arcade-game-card{width:100%;border:1px solid rgba(80,60,40,.06);background:var(--surface-2);border-radius:20px;padding:13px;display:grid;grid-template-columns:50px 1fr;gap:12px;text-align:left;align-items:center}.arcade-game-card:disabled{opacity:.55}.arcade-game-icon{width:50px;height:50px;border-radius:17px;background:white;display:grid;place-items:center;font-size:26px;box-shadow:0 4px 13px rgba(70,50,30,.06)}.arcade-game-card strong{display:block;font-size:calc(14px + var(--tp-text-extra,0px))}.arcade-game-card small{display:block;margin-top:3px;color:var(--muted);font-size:calc(11.5px + var(--tp-text-extra,0px));font-weight:650;line-height:1.35}.arcade-game-card em{display:inline-block;margin-top:7px;padding:5px 7px;border-radius:999px;background:#e8f0e8;color:#52705a;font-size:calc(10.5px + var(--tp-text-extra,0px));font-style:normal;font-weight:850}.arcade-game-card:disabled em{background:#e7e1da;color:#837970}
.arcade-play-head{display:flex;align-items:center;gap:12px;margin-bottom:10px}.arcade-back{border:0;background:var(--surface-2);border-radius:999px;padding:8px 10px;font-weight:800;font-size:calc(12px + var(--tp-text-extra,0px))}.arcade-play-head>div strong{display:block;font-size:calc(15px + var(--tp-text-extra,0px))}.arcade-play-head>div small{display:block;margin-top:2px;color:var(--muted);font-size:calc(11.5px + var(--tp-text-extra,0px));font-weight:650}.arcade-hud{display:flex;justify-content:space-between;margin-bottom:8px;padding:0 4px;color:var(--muted);font-size:calc(11.5px + var(--tp-text-extra,0px));font-weight:750}.arcade-hud strong{color:var(--text);font-size:calc(13px + var(--tp-text-extra,0px))}
.arcade-stage{height:260px;border-radius:24px;background:linear-gradient(180deg,#f8efe3,#eee1d0);position:relative;overflow:hidden;border:1px solid rgba(80,60,40,.08);touch-action:none;user-select:none;-webkit-user-select:none}.arcade-message{position:absolute;inset:0;display:grid;place-items:center;padding:25px;text-align:center;font-size:calc(16px + var(--tp-text-extra,0px));font-weight:850;color:#6d6259;pointer-events:none}.paw-target{position:absolute;width:64px;height:64px;border:0;border-radius:22px;background:#fff;box-shadow:0 8px 20px rgba(80,55,35,.14);font-size:31px;display:grid;place-items:center;touch-action:none;animation:pawPop .16s ease-out}.bowl-choices{position:absolute;left:14px;right:14px;top:50%;transform:translateY(-50%);display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.bowl-choices button{height:92px;border:0;border-radius:20px;background:#fff;box-shadow:0 8px 20px rgba(80,55,35,.10);font-size:44px;transition:transform .15s}.bowl-choices button:active{transform:scale(.94)}.bowl-choices button.reveal{background:#fff6d8}.reflex-button{position:absolute;inset:20px;border:0;border-radius:22px;background:#d8cfc5;color:#756c64;font-weight:950;font-size:22px;letter-spacing:.04em}.reflex-button.ready{background:#cfe8cf;color:#2e6034;box-shadow:inset 0 0 0 4px rgba(70,125,75,.12)}.reflex-button.early{background:#f2d6d2;color:#8a4540}
.arcade-result{margin-top:10px;background:#fff6dd;border-radius:18px;padding:13px;text-align:center}.arcade-result>span{font-size:28px}.arcade-result strong{display:block;margin-top:4px;font-size:calc(15px + var(--tp-text-extra,0px))}.arcade-result p{margin:3px 0 10px;color:#77674e;font-size:calc(12px + var(--tp-text-extra,0px));font-weight:700}.arcade-result button{border:0;background:#282421;color:white;border-radius:13px;padding:9px 12px;font-size:calc(12px + var(--tp-text-extra,0px));font-weight:850}.arcade-stage.win{animation:stageWin .4s ease-out}
@keyframes pawPop{from{transform:scale(.55);opacity:.4}to{transform:scale(1);opacity:1}}@keyframes stageWin{0%,100%{transform:scale(1)}50%{transform:scale(1.015)}}


/* Cura in tempo reale e notifiche — v7.0 */
.notification-top-btn{position:relative}.notification-badge{position:absolute;right:-3px;top:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#b94e4e;color:#fff;border:2px solid var(--surface);font-size:calc(11.5px + var(--tp-text-extra,0px));line-height:14px;font-weight:950;text-align:center;box-shadow:0 3px 8px rgba(120,45,45,.2)}
.notification-hero{display:flex;align-items:center;gap:14px;padding:16px;border-radius:22px;background:linear-gradient(135deg,#f5efe7,#fbf8f2);border:1px solid var(--line);margin-bottom:12px}.notification-hero.enabled{background:linear-gradient(135deg,#edf5ee,#f8fbf7)}.notification-hero.denied{background:linear-gradient(135deg,#f7ecea,#fff8f7)}.notification-hero-icon{width:54px;height:54px;border-radius:18px;background:#fff;display:grid;place-items:center;font-size:27px;box-shadow:0 8px 20px rgba(80,60,40,.08);flex:0 0 auto}.notification-hero h3{margin:3px 0 4px;font-size:calc(18px + var(--tp-text-extra,0px))}.notification-hero p{margin:0;color:var(--muted);font-size:calc(14px + var(--tp-text-extra,0px));line-height:1.35}.notification-enable{margin-bottom:14px}.notification-settings{display:grid;gap:9px}.notification-toggle{display:flex;align-items:center;gap:12px;padding:13px 14px;border-radius:18px;background:var(--surface-2);cursor:pointer}.notification-toggle>span{display:block;flex:1}.notification-toggle strong{display:block;font-size:calc(14px + var(--tp-text-extra,0px))}.notification-toggle small{display:block;margin-top:3px;color:var(--muted);font-size:calc(12px + var(--tp-text-extra,0px));font-weight:650}.notification-toggle input{position:absolute;opacity:0;pointer-events:none}.notification-toggle i{position:relative;display:block;width:46px;height:28px;border-radius:999px;background:#d8d0c7;transition:.2s;flex:0 0 auto}.notification-toggle i::after{content:"";position:absolute;left:3px;top:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(50,35,25,.18);transition:.2s}.notification-toggle input:checked+i{background:#5f7765}.notification-toggle input:checked+i::after{transform:translateX(18px)}
.notification-live-row{display:flex;align-items:center;gap:12px;margin-top:14px;padding:13px 14px;border:1px solid var(--line);border-radius:18px}.notification-live-row>span{font-size:24px}.notification-live-row strong{display:block;font-size:calc(14px + var(--tp-text-extra,0px))}.notification-live-row small{display:block;margin-top:3px;color:var(--muted);font-size:calc(12px + var(--tp-text-extra,0px));font-weight:650}.notification-history-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0 9px}.notification-history{display:grid;gap:8px}.notification-history-item{display:flex;gap:11px;align-items:flex-start;padding:12px 13px;border-radius:17px;background:var(--surface-2)}.notification-history-item>span{font-size:22px;line-height:1.1}.notification-history-item div{min-width:0;flex:1}.notification-history-item strong{display:block;font-size:calc(14px + var(--tp-text-extra,0px))}.notification-history-item p{margin:3px 0 0;color:var(--muted);font-size:calc(12px + var(--tp-text-extra,0px));line-height:1.35}.notification-history-item time{display:block;margin-top:5px;color:#a19890;font-size:calc(11.5px + var(--tp-text-extra,0px));font-weight:700}.notification-history-empty{padding:18px;text-align:center;color:var(--muted);font-size:calc(13px + var(--tp-text-extra,0px));background:var(--surface-2);border-radius:18px}.notification-footnote{margin:14px 2px 2px;color:var(--muted);font-size:calc(11.5px + var(--tp-text-extra,0px));line-height:1.45;text-align:center}.care-attention{animation:carePulse 1.8s ease-in-out infinite}@keyframes carePulse{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
\n\n/* v7.1 — Obiettivi stile Steam */\n.achievements-sheet{max-height:88dvh}\n.achievement-steam-hero{display:grid;grid-template-columns:118px 1fr;gap:12px;align-items:stretch;margin-bottom:15px}\n.achievement-completion-ring{--completion:0deg;aspect-ratio:1;border-radius:28px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:conic-gradient(#6f8065 var(--completion),rgba(95,80,65,.09) 0);position:relative;overflow:hidden}\n.achievement-completion-ring::after{content:"";position:absolute;inset:9px;border-radius:22px;background:var(--surface)}\n.achievement-completion-ring strong,.achievement-completion-ring small{position:relative;z-index:1}.achievement-completion-ring strong{font-size:27px;letter-spacing:-.05em}.achievement-completion-ring small{margin-top:3px;color:var(--muted);font-size:calc(11.5px + var(--tp-text-extra,0px));font-weight:800}\n.achievement-hero-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.achievement-hero-stats>div{background:var(--surface-2);border-radius:19px;padding:11px 8px;text-align:center;display:flex;flex-direction:column;justify-content:center}.achievement-hero-stats span{font-size:calc(20px + var(--tp-text-extra,0px))}.achievement-hero-stats strong{font-size:calc(17px + var(--tp-text-extra,0px));margin-top:5px}.achievement-hero-stats small{font-size:calc(10.5px + var(--tp-text-extra,0px));color:var(--muted);font-weight:800;margin-top:3px}\n.achievement-filters{display:flex;gap:7px;overflow-x:auto;padding:1px 0 12px;scrollbar-width:none}.achievement-filters::-webkit-scrollbar{display:none}.achievement-filter{border:0;background:var(--surface-2);border-radius:999px;padding:9px 12px;font-size:calc(12px + var(--tp-text-extra,0px));font-weight:800;white-space:nowrap;color:var(--muted)}.achievement-filter.active{background:#282421;color:#fff}\n.achievement-gallery{display:grid;gap:10px}.steam-achievement-card{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:12px;align-items:center;padding:13px;border-radius:20px;background:#f7f4ef;border:1px solid rgba(70,55,45,.08);position:relative;overflow:hidden}.steam-achievement-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#b5aca4}.steam-achievement-card.unlocked{background:#f4f8f1}.steam-achievement-card.locked{opacity:.82}\n.steam-achievement-icon{width:58px;height:58px;border-radius:16px;background:#fff;display:grid;place-items:center;font-size:29px;box-shadow:0 6px 18px rgba(65,50,35,.08)}.steam-achievement-card.locked .steam-achievement-icon{filter:grayscale(.75);background:#eeeae5}\n.steam-achievement-main{min-width:0}.steam-achievement-title{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.steam-achievement-title>strong{font-size:calc(14px + var(--tp-text-extra,0px))}.steam-achievement-main p{font-size:calc(12px + var(--tp-text-extra,0px));line-height:1.35;color:var(--muted);font-weight:650;margin:4px 0 0}.rarity-badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 7px;font-size:calc(10.5px + var(--tp-text-extra,0px));font-weight:900;background:#e9e5df;color:#746b64}.achievement-card-progress{margin-top:8px}.achievement-card-progress>div:first-child{display:flex;justify-content:space-between;font-size:calc(10.5px + var(--tp-text-extra,0px));font-weight:800;color:var(--muted)}.achievement-card-bar{height:5px;border-radius:999px;background:rgba(70,55,45,.08);overflow:hidden;margin-top:4px}.achievement-card-bar span{display:block;height:100%;border-radius:999px;background:#788872}.achievement-unlock-date,.achievement-secret-note{font-size:calc(10.5px + var(--tp-text-extra,0px));font-weight:800;color:#6f8065;margin-top:7px}.achievement-secret-note{color:var(--muted)}\n.steam-achievement-reward{text-align:center;min-width:45px}.steam-achievement-reward strong{display:block;font-size:calc(14px + var(--tp-text-extra,0px))}.steam-achievement-reward small{font-size:calc(13px + var(--tp-text-extra,0px))}.steam-achievement-reward em{display:block;font-style:normal;color:var(--muted);font-size:calc(10.5px + var(--tp-text-extra,0px));font-weight:800;margin-top:4px}\n.rarity-uncommon{--rarity:#718f74}.rarity-rare{--rarity:#6687ad}.rarity-epic{--rarity:#9672ab}.rarity-legendary{--rarity:#b18549}.steam-achievement-card.rarity-uncommon::before,.steam-achievement-card.rarity-rare::before,.steam-achievement-card.rarity-epic::before,.steam-achievement-card.rarity-legendary::before{background:var(--rarity)}.rarity-badge.rarity-uncommon,.rarity-badge.rarity-rare,.rarity-badge.rarity-epic,.rarity-badge.rarity-legendary{color:var(--rarity);background:color-mix(in srgb,var(--rarity) 12%,white)}\n.achievement-footnote{font-size:calc(11.5px + var(--tp-text-extra,0px));color:var(--muted);font-weight:650;line-height:1.4;margin:14px 3px 3px}\n.achievement-popup{position:fixed;left:50%;top:max(14px,env(safe-area-inset-top,0px));transform:translateX(-50%);width:min(calc(100% - 24px),500px);z-index:80;background:rgba(32,31,29,.96);color:#fff;border-radius:19px;padding:12px 14px;display:grid;grid-template-columns:48px 1fr;gap:12px;align-items:center;box-shadow:0 18px 45px rgba(20,15,10,.28);backdrop-filter:blur(18px);animation:achievementDrop .32s cubic-bezier(.2,.9,.2,1)}.achievement-popup-icon{width:48px;height:48px;border-radius:14px;background:rgba(255,255,255,.10);display:grid;place-items:center;font-size:25px}.achievement-popup-copy small{display:block;font-size:calc(10.5px + var(--tp-text-extra,0px));letter-spacing:.14em;font-weight:900;color:#c9d7bc}.achievement-popup-copy strong{display:block;font-size:calc(14px + var(--tp-text-extra,0px));margin-top:3px}.achievement-popup-copy span{display:block;font-size:calc(11.5px + var(--tp-text-extra,0px));margin-top:3px;color:rgba(255,255,255,.65);font-weight:700}@keyframes achievementDrop{from{opacity:0;transform:translate(-50%,-16px) scale(.97)}to{opacity:1;transform:translate(-50%,0) scale(1)}}\n@media(max-width:390px){.achievement-steam-hero{grid-template-columns:98px 1fr}.achievement-hero-stats{grid-template-columns:1fr}.achievement-hero-stats>div{display:grid;grid-template-columns:22px 1fr;align-items:center;text-align:left;padding:7px 9px}.achievement-hero-stats span{grid-row:1/3}.achievement-hero-stats strong{margin:0}.steam-achievement-card{grid-template-columns:50px minmax(0,1fr)}.steam-achievement-icon{width:50px;height:50px}.steam-achievement-reward{grid-column:2;text-align:left;display:flex;gap:4px;align-items:center}.steam-achievement-reward em{margin:0 0 0 4px}}\n

/* v7.2 — Uovo, schiusa, specie e colori */
.egg-pet{position:relative;width:150px;height:178px;border:0;background:transparent;z-index:5;filter:drop-shadow(0 14px 10px rgba(72,48,32,.16));animation:eggBreathe 2.5s ease-in-out infinite}.egg-shell{position:absolute;left:31px;top:13px;width:88px;height:126px;border-radius:52% 52% 47% 47% / 60% 60% 42% 42%;background:linear-gradient(145deg,#fff9ed,#ead7b6);box-shadow:inset -12px -14px 0 rgba(160,110,65,.08),inset 7px 8px 0 rgba(255,255,255,.55);overflow:hidden}.egg-shell i,.egg-shell b,.egg-shell em{position:absolute;display:block;border-radius:50%;background:#d9b781;opacity:.7}.egg-shell i{width:19px;height:26px;left:18px;top:42px;transform:rotate(-24deg)}.egg-shell b{width:14px;height:18px;right:17px;top:28px}.egg-shell em{width:22px;height:15px;right:22px;bottom:26px;transform:rotate(18deg)}.egg-sparkle{position:absolute;right:10px;top:27px;font-size:25px;color:#fff1a8;text-shadow:0 0 12px rgba(255,231,125,.8);animation:eggSpark 1.8s ease-in-out infinite}.egg-pet.ready{animation:eggReady .55s ease-in-out infinite}.egg-pet.ready .egg-shell{box-shadow:0 0 30px rgba(255,226,141,.48),inset -12px -14px 0 rgba(160,110,65,.08),inset 7px 8px 0 rgba(255,255,255,.55)}
.room.egg-in-bed .pet-zone{width:220px;height:184px;z-index:6}
.room.egg-in-bed .pet-zone.egg-anchored{transform:translate(-50%,-50%)!important}
.room.egg-in-bed .egg-pet{transform:translateY(4px) scale(.96);transform-origin:center bottom}
.room.egg-in-bed .shadow,.room.egg-in-bed .mess,.room.egg-in-bed .speech{display:none!important}
.egg-card{padding:18px}.egg-card-head{display:flex;align-items:center;gap:12px}.egg-card-icon{width:48px;height:48px;border-radius:17px;background:#f4ead7;display:grid;place-items:center;font-size:27px}.egg-card-copy{flex:1;min-width:0}.egg-card-copy h2{font-size:calc(19px + var(--tp-text-extra,0px));margin-top:3px}.egg-card-copy p{margin-top:5px;color:var(--muted);font-size:calc(13px + var(--tp-text-extra,0px));font-weight:650;line-height:1.35}.egg-percent{font-size:calc(20px + var(--tp-text-extra,0px));letter-spacing:-.04em}.egg-main-progress{height:11px;border-radius:999px;background:rgba(75,60,45,.08);overflow:hidden;margin-top:16px}.egg-main-progress span{display:block;height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,#d2a45f,#e4c784);transition:width .4s ease}.egg-care-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:13px}.egg-care-grid div{background:var(--surface-2);border-radius:16px;padding:10px 5px;text-align:center}.egg-care-grid span{display:block;font-size:calc(19px + var(--tp-text-extra,0px))}.egg-care-grid strong{display:block;font-size:calc(15px + var(--tp-text-extra,0px));margin-top:3px}.egg-care-grid small{display:block;color:var(--muted);font-size:calc(10.5px + var(--tp-text-extra,0px));font-weight:750;margin-top:2px}.egg-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:13px}.egg-actions button{border:1px solid var(--line);background:#fffaf4;border-radius:16px;min-height:64px;padding:8px 4px}.egg-actions span{display:block;font-size:21px}.egg-actions strong{display:block;font-size:calc(11.5px + var(--tp-text-extra,0px));margin-top:4px}.egg-actions button.cooldown{opacity:.45}.egg-hatch-button{margin-top:14px;background:linear-gradient(135deg,#c8924f,#e0bc78)}.egg-hint{margin-top:11px;text-align:center;color:var(--muted);font-size:calc(12px + var(--tp-text-extra,0px));font-weight:700}
.pet{--fur:#d7a467;--body-fur:#c99559;--ear-fur:#986944;--tail-fur:#b77e4e;--belly-fur:#ead2ad}.pet .head{background:var(--fur)}.pet .body,.pet .leg{background:var(--body-fur)}.pet .ear{background:var(--ear-fur)}.pet .tail{background:var(--tail-fur)}.pet .belly{background:var(--belly-fur)}
.pet.fur-caramel{--fur:#d7a467;--body-fur:#c99559;--ear-fur:#986944;--tail-fur:#b77e4e;--belly-fur:#ead2ad}.pet.fur-cream{--fur:#ead8b9;--body-fur:#ddc59e;--ear-fur:#c6aa83;--tail-fur:#ceb38c;--belly-fur:#f6ebd7}.pet.fur-snow{--fur:#f3f0ea;--body-fur:#e6e2db;--ear-fur:#d4cec5;--tail-fur:#ded8d0;--belly-fur:#fffdfa}.pet.fur-gray{--fur:#aaa8a7;--body-fur:#92908f;--ear-fur:#767473;--tail-fur:#878584;--belly-fur:#d8d5d2}.pet.fur-rust{--fur:#d9824b;--body-fur:#c56d39;--ear-fur:#8e4b2d;--tail-fur:#b95d31;--belly-fur:#f0c496}.pet.fur-chocolate{--fur:#8c6248;--body-fur:#74503c;--ear-fur:#573a2c;--tail-fur:#674532;--belly-fur:#d5b08d}
.pet.species-cat .ear{top:2px;width:34px;height:48px;border-radius:6px;clip-path:polygon(50% 0,100% 100%,0 100%)}.pet.species-cat .ear-left{left:20px;transform:rotate(-10deg)}.pet.species-cat .ear-right{right:20px;transform:rotate(10deg)}.pet.species-cat .tail{right:12px;top:96px;width:55px;height:14px;border-radius:999px;transform:rotate(-48deg)}.pet.species-cat .muzzle{width:40px;left:29px}
.pet.species-rabbit .ear{top:-28px;width:27px;height:83px;border-radius:50% 50% 42% 42%}.pet.species-rabbit .ear-left{left:33px;transform:rotate(-8deg)}.pet.species-rabbit .ear-right{right:33px;transform:rotate(8deg)}.pet.species-rabbit .head{top:22px}.pet.species-rabbit .tail{right:19px;top:115px;width:25px;height:25px;border-radius:50%;transform:none}.pet.species-rabbit .muzzle{background:var(--belly-fur)}
.pet.species-fox .ear{top:-1px;width:38px;height:53px;border-radius:4px;clip-path:polygon(50% 0,100% 100%,0 100%)}.pet.species-fox .ear-left{left:17px;transform:rotate(-8deg)}.pet.species-fox .ear-right{right:17px;transform:rotate(8deg)}.pet.species-fox .muzzle{height:37px;border-radius:45% 45% 62% 62%}.pet.species-fox .tail{right:-3px;top:97px;width:68px;height:25px;border-radius:65% 35% 65% 35%;transform:rotate(-31deg)}
.pet.species-bear .ear{top:7px;width:33px;height:33px;border-radius:50%}.pet.species-bear .ear-left{left:18px;transform:none}.pet.species-bear .ear-right{right:18px;transform:none}.pet.species-bear .head{width:104px;left:23px}.pet.species-bear .tail{right:27px;top:119px;width:20px;height:20px;border-radius:50%;transform:none}.pet.species-bear .muzzle{width:48px;left:28px}
.pet.species-dog{}
@keyframes eggBreathe{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-5px) rotate(1deg)}}@keyframes eggSpark{0%,100%{opacity:.3;transform:scale(.8) rotate(0)}50%{opacity:1;transform:scale(1.15) rotate(20deg)}}@keyframes eggReady{0%,100%{transform:translateX(0) rotate(-2deg)}25%{transform:translateX(-4px) rotate(-5deg)}75%{transform:translateX(4px) rotate(5deg)}}

/* Cucina & ingredienti v7.3 */
.action-card .cost{max-width:62%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.action-card:has(.cost){transition:transform .15s ease,opacity .15s ease}
.action-card:active{transform:scale(.985)}
@media(max-width:390px){.sheet-grid{grid-template-columns:1fr}.action-card{min-height:98px}}


/* v7.4 — stazione ciotole persistenti */
.room-bowl{width:104px;height:56px;font-size:inherit;display:flex;align-items:flex-end;justify-content:center;gap:7px;filter:drop-shadow(0 7px 5px rgba(60,40,20,.16));--bowl-color:#b86f50;--bowl-dark:#8f5139;--food-fill:#d7a45b;--water-fill:#76bde7}
.room-bowl.tone-terracotta{--bowl-color:#b86f50;--bowl-dark:#8f5139;filter:drop-shadow(0 7px 5px rgba(60,40,20,.16))}
.room-bowl.tone-sage{--bowl-color:#8ea58c;--bowl-dark:#6e826d;filter:drop-shadow(0 7px 5px rgba(60,40,20,.16))}
.room-bowl.tone-sky{--bowl-color:#83a9c8;--bowl-dark:#6487a5;filter:drop-shadow(0 7px 5px rgba(60,40,20,.16))}
.pet-bowl{position:relative;width:46px;height:31px;border-radius:8px 8px 18px 18px;background:linear-gradient(180deg,var(--bowl-color),var(--bowl-dark));box-shadow:inset 0 5px 0 rgba(255,255,255,.15),inset 0 -5px 0 rgba(70,40,25,.08);overflow:hidden}
.pet-bowl::before{content:"";position:absolute;left:3px;right:3px;top:2px;height:12px;border-radius:50%;background:rgba(54,35,25,.22);box-shadow:inset 0 2px 3px rgba(30,20,15,.22)}
.bowl-content{position:absolute;left:4px;right:4px;top:0;height:18px;display:grid;place-items:center;font-size:calc(17px + var(--tp-text-extra,0px));line-height:1;z-index:2;transform:scale(.88)}
.bowl-level{position:absolute;left:5px;right:5px;bottom:4px;height:4px;border-radius:999px;background:rgba(255,255,255,.18);overflow:hidden;z-index:3}
.bowl-level i{display:block;height:100%;width:0;border-radius:999px;transition:width .55s ease}
.pet-bowl-food .bowl-level i{background:var(--food-fill)}.pet-bowl-water .bowl-level i{background:var(--water-fill)}
.room-bowl.spoiled .pet-bowl-food{filter:saturate(.55)}.room-bowl.spoiled .pet-bowl-food::after{content:"!";position:absolute;right:1px;top:0;width:13px;height:13px;border-radius:50%;background:#9a564d;color:#fff;font-size:calc(10.5px + var(--tp-text-extra,0px));font-weight:950;display:grid;place-items:center;z-index:5}
.room-bowl.bowl-active{animation:bowlNudge .9s ease-in-out infinite alternate}
@keyframes bowlNudge{from{transform:translateY(0)}to{transform:translateY(-2px)}}
.room.arranging .room-bowl{touch-action:none}


/* v7.5 — oggetti più curati e meno emoji */
.wall-art{display:flex!important;align-items:center;justify-content:center;overflow:hidden;border:1px solid rgba(126,98,70,.10);background:linear-gradient(180deg,#fffaf3,#f2e4cf)!important}
.wall-art span{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:radial-gradient(circle at 30% 30%,#ffffff,#f4e3c7 70%);box-shadow:inset 0 0 0 1px rgba(150,118,87,.14);color:#987350;font-size:calc(20px + var(--tp-text-extra,0px));font-weight:900}
.room-window::before{content:"";position:absolute;left:14px;right:14px;bottom:-12px;height:10px;border-radius:999px;background:#e8d6c1;box-shadow:0 2px 0 rgba(120,92,70,.08)}
.room-shelf{height:16px!important;padding:0 10px 10px!important;align-items:flex-end!important;justify-content:flex-start!important;gap:6px;background:linear-gradient(180deg,#b98a63,#a47653)!important;border-radius:12px!important;box-shadow:0 4px 0 rgba(70,40,20,.14)!important}
.room-shelf .shelf-book{align-self:flex-end;width:10px;border-radius:3px 3px 1px 1px;box-shadow:inset 0 -2px rgba(0,0,0,.08)}
.room-shelf .shelf-book.tall{height:30px;background:linear-gradient(180deg,#7f9bb5,#5e7890)}
.room-shelf .shelf-book.mid{height:25px;background:linear-gradient(180deg,#d39a76,#b87856)}
.room-shelf .shelf-book.short{height:21px;background:linear-gradient(180deg,#8baa83,#688365)}
.room-shelf .shelf-frame{align-self:flex-end;width:22px;height:20px;border-radius:4px;background:linear-gradient(180deg,#efdfc9,#dcc1a1);border:2px solid #a87b56;position:relative}
.room-shelf .shelf-frame::after{content:"";position:absolute;inset:4px;border-radius:2px;background:linear-gradient(180deg,#d7e5ef,#f8f2eb)}
.room-shelf .shelf-box{align-self:flex-end;width:16px;height:16px;border-radius:4px;background:linear-gradient(180deg,#e6c983,#c9a85f)}
.room-plant{width:78px;height:92px!important;right:6px!important;bottom:36px!important;filter:drop-shadow(0 8px 4px rgba(40,30,20,.12))!important;font-size:inherit!important}
.room-plant .plant-pot{position:absolute;left:20px;bottom:0;width:38px;height:26px;border-radius:0 0 16px 16px;background:linear-gradient(180deg,#c79a72,#9a6f4f);box-shadow:inset 0 4px rgba(255,255,255,.18)}
.room-plant .plant-pot::before{content:"";position:absolute;left:-2px;right:-2px;top:-7px;height:10px;border-radius:999px;background:#b68460}
.room-plant .plant-leaf{position:absolute;bottom:18px;width:18px;height:42px;border-radius:18px 18px 2px 18px;background:linear-gradient(180deg,#88b878,#4e8c5d);transform-origin:bottom center;box-shadow:inset -2px -2px rgba(255,255,255,.12)}
.room-plant .leaf-1{left:18px;transform:rotate(-26deg)}
.room-plant .leaf-2{left:30px;height:50px;transform:rotate(-8deg)}
.room-plant .leaf-3{left:42px;height:48px;transform:rotate(14deg)}
.room-plant .leaf-4{left:52px;height:39px;transform:rotate(30deg)}
.room-basket{width:78px;height:54px!important;font-size:inherit!important}
.room-basket .basket-shell{position:absolute;left:8px;right:8px;bottom:0;height:32px;border-radius:10px 10px 18px 18px;background:linear-gradient(180deg,#b68558,#9a6d47);box-shadow:inset 0 0 0 2px rgba(255,255,255,.08)}
.room-basket .basket-shell::before{content:"";position:absolute;left:6px;right:6px;top:8px;bottom:8px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.07) 0 4px,rgba(90,55,30,.10) 4px 8px);border-radius:8px}
.room-basket .basket-shell::after{content:"";position:absolute;left:14px;right:14px;top:-10px;height:14px;border:4px solid #aa7a52;border-bottom:none;border-radius:20px 20px 0 0}
.room-basket .basket-toy{position:absolute;bottom:18px}
.room-basket .basket-ball{left:15px;width:18px;height:18px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#f7cf65,#d79a3f 70%);box-shadow:inset 0 0 0 2px rgba(255,255,255,.18)}
.room-basket .basket-ball::before,.room-basket .basket-ball::after{content:"";position:absolute;background:#fff4d2;border-radius:999px;opacity:.75}.room-basket .basket-ball::before{left:7px;top:1px;bottom:1px;width:2px}.room-basket .basket-ball::after{left:1px;right:1px;top:8px;height:2px}
.room-basket .basket-bear{left:39px;width:20px;height:18px;border-radius:10px 10px 8px 8px;background:linear-gradient(180deg,#c99862,#a97949)}
.room-basket .basket-bear::before,.room-basket .basket-bear::after{content:"";position:absolute;top:-5px;width:8px;height:8px;border-radius:50%;background:#b98757}.room-basket .basket-bear::before{left:1px}.room-basket .basket-bear::after{right:1px}
.room-basket .basket-bear{box-shadow:inset 0 -2px rgba(0,0,0,.08)}
.room-cushion{width:66px;height:50px!important;font-size:inherit!important;background:none!important;border-radius:0!important}
.room-cushion .cushion-core{position:absolute;inset:7px 5px 2px 5px;border-radius:50% 50% 48% 48%;background:linear-gradient(180deg,#efd1ba,#dba98c);box-shadow:inset 0 6px rgba(255,255,255,.22),0 6px 10px rgba(80,55,35,.10)}
.room-cushion .cushion-core::before{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:8px;height:8px;border-radius:50%;background:rgba(140,92,66,.26)}
.room-cushion .cushion-stitch{position:absolute;inset:14px 16px 12px 16px;border:2px dashed rgba(155,108,77,.38);border-radius:50%}
.room-clock{width:56px!important;height:56px!important;border-radius:50%!important;background:radial-gradient(circle at 35% 30%,#fffefc,#ece4d8)!important;border:3px solid #a47c56;box-shadow:0 8px 12px rgba(70,50,30,.08)!important}.room-clock span{display:none}.room-clock::before{content:"";position:absolute;inset:8px;border-radius:50%;border:1px solid rgba(140,105,76,.16)}.room-clock i,.room-clock b{background:#7f5e41!important;border-radius:999px;transform-origin:bottom center}.room-clock i{width:3px!important;height:14px!important;left:50%!important;top:14px!important;transform:translateX(-50%) rotate(40deg)!important}.room-clock b{width:2px!important;height:18px!important;left:50%!important;top:10px!important;transform:translateX(-50%) rotate(-30deg)!important}.room-clock::after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:6px;height:6px;border-radius:50%;background:#8a6648}
.room-nightstand{box-shadow:0 10px 14px rgba(70,50,30,.10)}
.room-floorlamp,.room-lamp{filter:drop-shadow(0 7px 5px rgba(60,40,20,.14))}
.toy-floor{width:34px;height:34px;font-size:inherit!important;transform:rotate(-18deg);background:none!important}
.toy-floor.toy-ball-shape{border-radius:50%;background:radial-gradient(circle at 32% 28%,#f5d66b,#d79f43 72%);box-shadow:0 6px 9px rgba(70,45,20,.16), inset 0 0 0 2px rgba(255,255,255,.20)}
.toy-floor.toy-ball-shape::before,.toy-floor.toy-ball-shape::after{content:"";position:absolute;background:#fff5cf;border-radius:999px;opacity:.8}.toy-floor.toy-ball-shape::before{left:15px;top:2px;bottom:2px;width:3px}.toy-floor.toy-ball-shape::after{left:2px;right:2px;top:15px;height:3px}
.toy-floor.toy-bear-shape{width:34px;height:30px;border-radius:16px 16px 13px 13px;background:linear-gradient(180deg,#c89966,#a97849);box-shadow:0 6px 10px rgba(70,45,20,.16), inset 0 -2px rgba(0,0,0,.08)}
.toy-floor.toy-bear-shape::before,.toy-floor.toy-bear-shape::after{content:"";position:absolute;top:-6px;width:12px;height:12px;border-radius:50%;background:#b78658}.toy-floor.toy-bear-shape::before{left:2px}.toy-floor.toy-bear-shape::after{right:2px}
.room-bowl .bowl-content{font-size:calc(13px + var(--tp-text-extra,0px));letter-spacing:.02em;color:rgba(255,255,255,.92);text-shadow:0 1px 2px rgba(0,0,0,.18)}
.room-bowl .pet-bowl-food .bowl-content{font-weight:800}
.room-bowl .pet-bowl-water .bowl-content{font-size:calc(13px + var(--tp-text-extra,0px))}
.room-bed .bed-deco{font-size:calc(15px + var(--tp-text-extra,0px))!important}
.room-bed .bed-pillows span{box-shadow:inset 0 3px rgba(255,255,255,.20)}
.room.arranging .room-object{outline-offset:2px}


/* v7.6 — Cameretta illustrata */
.room{
  height:430px!important;
  border-radius:30px!important;
  border:1px solid rgba(94,72,52,.12)!important;
  box-shadow:0 18px 45px rgba(73,53,34,.14)!important;
  isolation:isolate;
  background:linear-gradient(180deg,var(--wall1) 0%,var(--wall2) 56%,var(--floor1) 56%,var(--floor2) 100%)!important;
}
.room-wall-texture{position:absolute;inset:0 0 44% 0;z-index:0;pointer-events:none;background:radial-gradient(circle at 18% 22%,rgba(255,255,255,.18) 0 1px,transparent 1.5px),radial-gradient(circle at 76% 35%,rgba(95,70,50,.035) 0 1px,transparent 1.5px);background-size:22px 22px,28px 28px;opacity:.7}
.room-baseboard{position:absolute;left:0;right:0;top:55.1%;height:12px;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.72),rgba(222,204,184,.92));box-shadow:0 3px 0 rgba(92,66,45,.09),inset 0 1px rgba(255,255,255,.8)}
.room-floor-lines{position:absolute;left:-15%;right:-15%;bottom:-16px;height:48%;z-index:0;pointer-events:none;opacity:.36;background:repeating-linear-gradient(90deg,transparent 0 71px,rgba(94,66,44,.15) 72px 74px),repeating-linear-gradient(180deg,transparent 0 39px,rgba(255,255,255,.13) 40px 42px);transform:perspective(320px) rotateX(54deg);transform-origin:bottom center}
.room.floor-stone .room-floor-lines{background:repeating-linear-gradient(90deg,transparent 0 88px,rgba(76,71,66,.13) 89px 91px),repeating-linear-gradient(180deg,transparent 0 48px,rgba(255,255,255,.16) 49px 51px)}
.room.night .room-wall-texture{opacity:.25}.room.night .room-baseboard{background:linear-gradient(180deg,rgba(255,255,255,.13),rgba(29,27,31,.28));box-shadow:0 3px 0 rgba(0,0,0,.18)}

.room-window{right:28px!important;top:34px!important;width:116px!important;height:132px!important;border-radius:18px!important;border:8px solid #efe2d2!important;background:linear-gradient(180deg,#9ed5f3,#dff3ff)!important;box-shadow:0 12px 24px rgba(66,47,30,.12),inset 0 0 0 2px rgba(80,110,125,.05)!important;overflow:visible!important}
.room.night .room-window{background:linear-gradient(180deg,#25324d,#354869)!important;border-color:#cfc5bb!important}
.window-cross{position:absolute;z-index:5;background:rgba(246,236,224,.92);box-shadow:0 1px 2px rgba(80,60,45,.10)}
.cross-v{left:50%;top:0;bottom:0;width:5px;transform:translateX(-50%)}.cross-h{left:0;right:0;top:52%;height:5px;transform:translateY(-50%)}
.window-sill{position:absolute;left:-14px;right:-14px;bottom:-13px;height:14px;border-radius:8px;background:linear-gradient(180deg,#f2e7da,#d9c7b5);box-shadow:0 6px 8px rgba(65,47,34,.10);z-index:6}
.window-curtain{position:absolute;top:-15px;width:28px;height:125px;z-index:7;background:linear-gradient(90deg,#d9b39b,#c99678 55%,#b97e62);box-shadow:inset -5px 0 rgba(255,255,255,.10),0 5px 12px rgba(80,55,38,.08)}
.curtain-left{left:-22px;border-radius:18px 5px 22px 16px;transform:rotate(3deg)}.curtain-right{right:-22px;border-radius:5px 18px 16px 22px;transform:scaleX(-1) rotate(3deg)}
.room.theme-mint .window-curtain{background:linear-gradient(90deg,#a8c9be,#87b2a5 55%,#6f9d90)}.room.theme-sky .window-curtain{background:linear-gradient(90deg,#aebfda,#8da7cd 55%,#758eb4)}.room.theme-peach .window-curtain{background:linear-gradient(90deg,#e2b6ae,#ca948c 55%,#b87973)}
.sky-orb{font-size:0!important;z-index:2!important}.sky-orb::before{content:"";position:absolute;left:20px;top:17px;width:28px;height:28px;border-radius:50%;background:#f6ca62;box-shadow:0 0 0 7px rgba(246,202,98,.10),0 0 18px rgba(246,202,98,.25)}
.room.night .sky-orb::before{width:27px;height:27px;background:#e9e2c9;box-shadow:inset -8px 1px 0 #25324d,0 0 14px rgba(235,229,203,.18)}
.stars{font-size:0!important;opacity:0!important}.room.night .stars{opacity:1!important}.room.night .stars::before,.room.night .stars::after{content:"";position:absolute;width:3px;height:3px;border-radius:50%;background:#fff;box-shadow:28px 14px 0 #fff,54px 5px 0 rgba(255,255,255,.75),69px 28px 0 rgba(255,255,255,.85),15px 49px 0 rgba(255,255,255,.65)}.room.night .stars::before{left:12px;top:10px}.room.night .stars::after{left:31px;top:32px;transform:scale(.7)}

.wall-art{left:30px!important;top:38px!important;width:72px!important;height:64px!important;border-radius:8px!important;border:7px solid #a47753!important;background:#f4e5cf!important;box-shadow:0 9px 15px rgba(70,48,31,.12)!important}.wall-art::before{content:"";position:absolute;inset:3px;border:1px solid rgba(155,112,77,.14);border-radius:3px}.wall-art span{width:42px!important;height:34px!important;border-radius:5px!important;background:linear-gradient(180deg,#f9efe2,#ead6bc)!important;box-shadow:none!important;color:#a67e5a!important;font-size:calc(17px + var(--tp-text-extra,0px))!important}

/* Cuccia ridisegnata come vero lettino per animale */
.room-bed{width:190px!important;height:100px!important;bottom:54px!important;filter:drop-shadow(0 11px 9px rgba(62,43,27,.14))}
.room-bed .bed-back{left:8px!important;right:8px!important;top:5px!important;height:58px!important;border-radius:52px 52px 20px 20px!important;background:linear-gradient(180deg,#c99a72,#a97954)!important;box-shadow:inset 0 6px rgba(255,255,255,.10)!important}
.room-bed .bed-matress{left:10px!important;right:10px!important;top:43px!important;height:48px!important;border-radius:50%!important;background:linear-gradient(180deg,#f8efe4,#ead8c4)!important;box-shadow:inset 0 -6px rgba(125,88,57,.08),0 4px 0 rgba(107,74,49,.12)!important}
.room-bed .bed-pillows{display:none!important}
.room-bed .bed-blanket{left:56px!important;right:22px!important;top:55px!important;height:28px!important;border-radius:50% 45% 50% 45%!important;background:linear-gradient(180deg,#aec2be,#88a9a2)!important;box-shadow:inset 0 4px rgba(255,255,255,.16)}
.room-bed .bed-deco{font-size:0!important;right:31px!important;top:62px!important;width:14px;height:14px;border-radius:50%;background:rgba(255,255,255,.28)}
.room-bed .bed-deco::before{content:"";position:absolute;left:5px;top:-5px;width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,.38);box-shadow:-6px 3px 0 rgba(255,255,255,.34),6px 3px 0 rgba(255,255,255,.34)}
.room.bed-deluxe .bed-back{background:linear-gradient(180deg,#b88050,#8d5f3f)!important}.room.bed-deluxe .bed-blanket{background:linear-gradient(180deg,#ddb680,#c4945c)!important}.room.bed-fluffy .bed-back{background:linear-gradient(180deg,#d8b5d2,#b88eaf)!important}.room.bed-fluffy .bed-matress{background:linear-gradient(180deg,#fff7fc,#f1dce9)!important}.room.bed-fluffy .bed-blanket{background:linear-gradient(180deg,#e4bed8,#ca9dbe)!important}

/* Mobili con volume, bordi e materiali più coerenti */
.room-dresser{width:112px!important;height:102px!important}.dresser-top{height:14px!important;border-radius:8px 8px 4px 4px!important;background:linear-gradient(180deg,#c79a72,#ac7c59)!important}.dresser-body{height:82px!important;margin-top:2px!important;border-radius:5px 5px 10px 10px!important;background:linear-gradient(90deg,#b88360,#c69872 48%,#ac7957)!important;border:1px solid rgba(90,57,35,.10);box-shadow:inset 6px 0 rgba(255,255,255,.05)}.dresser-body span{background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(80,50,30,.05))!important;border:1px solid rgba(83,52,31,.11)}.dresser-body span::after{width:14px!important;height:4px!important;background:#d9c1a7!important;box-shadow:0 1px rgba(80,50,30,.18)}
.room-nightstand{width:68px!important;height:62px!important;filter:drop-shadow(0 8px 7px rgba(66,45,30,.12))}.nightstand-top{height:13px!important;background:linear-gradient(180deg,#c99e78,#ad7f5e)!important}.nightstand-drawer{top:14px!important;height:32px!important;background:linear-gradient(180deg,#b98967,#a87656)!important;border:1px solid rgba(80,50,30,.09)}
.room-stool span{background:linear-gradient(180deg,#c89a71,#ab7b57)!important;border:1px solid rgba(80,50,30,.08)}.room-stool::before,.room-stool::after{background:linear-gradient(180deg,#a87551,#8b5f43)!important}
.room-rug{height:78px!important;width:260px!important;background:radial-gradient(ellipse at center,rgba(255,255,255,.12),transparent 55%),linear-gradient(180deg,#c88d76,#b87762)!important;border:5px solid rgba(255,255,255,.11);box-shadow:inset 0 0 0 2px rgba(107,69,49,.08),0 7px 12px rgba(68,46,30,.08)!important}.room.theme-mint .room-rug{background:radial-gradient(ellipse at center,rgba(255,255,255,.15),transparent 55%),linear-gradient(180deg,#8ebdb2,#6fa296)!important}.room.theme-sky .room-rug{background:radial-gradient(ellipse at center,rgba(255,255,255,.15),transparent 55%),linear-gradient(180deg,#89a9d0,#6e8eb7)!important}

/* Lampade */
.room-lamp,.room-floorlamp{filter:drop-shadow(0 9px 7px rgba(62,42,27,.12))!important}.lamp-shade,.floorlamp-shade{background:linear-gradient(180deg,#efd39a,#d9b66f)!important;border:1px solid rgba(119,86,48,.12);box-shadow:inset 0 4px rgba(255,255,255,.14)}.lamp-stick,.floorlamp-stick{background:linear-gradient(90deg,#6f5b4d,#9a816d 50%,#665244)!important}.lamp-base,.floorlamp-base{background:linear-gradient(180deg,#8c7460,#665344)!important;box-shadow:0 3px 4px rgba(55,38,25,.14)}

/* Ciotole: meno simboli, più materiale */
.room-bowl{filter:drop-shadow(0 8px 6px rgba(60,40,20,.16))!important}.pet-bowl{border:1px solid rgba(80,45,27,.12);box-shadow:inset 0 5px 0 rgba(255,255,255,.18),inset 0 -5px 0 rgba(70,40,25,.10),0 2px 0 rgba(94,54,34,.08)!important}.bowl-content{font-size:0!important}.pet-bowl-food .bowl-content::before{content:"";position:absolute;left:7px;right:7px;top:6px;height:10px;border-radius:50%;background:radial-gradient(circle at 20% 50%,#d6a25a 0 3px,transparent 3.5px),radial-gradient(circle at 48% 38%,#c58d43 0 3px,transparent 3.5px),radial-gradient(circle at 75% 58%,#e0b16a 0 3px,transparent 3.5px),#9b693b;opacity:.9}.pet-bowl-water .bowl-content::before{content:"";position:absolute;left:6px;right:6px;top:6px;height:10px;border-radius:50%;background:linear-gradient(180deg,#9cd8f0,#55b1dc);box-shadow:inset 0 2px rgba(255,255,255,.45)}
.room-bowl.spoiled .pet-bowl-food .bowl-content::before{filter:saturate(.35) hue-rotate(35deg);opacity:.65}

/* Ombre ambiente più coerenti */
.room-object{transition:filter .2s ease}.room:not(.arranging) .room-object:not(.hidden){filter:drop-shadow(0 8px 7px rgba(55,38,25,.12))}.room:not(.arranging) .room-rug{filter:none!important}.room:not(.arranging) .room-clock{filter:drop-shadow(0 7px 7px rgba(55,38,25,.11))}
.room.night::before{content:"";position:absolute;inset:0;z-index:9;pointer-events:none;background:linear-gradient(180deg,rgba(10,15,30,.10),rgba(14,17,29,.02) 55%,rgba(14,13,18,.11));mix-blend-mode:multiply}.room.night .room-meta,.room.night .pet-zone,.room.night .pet-name-wrap,.room.night .arrange-toolbar{z-index:12}

@media(max-width:390px){.room{height:414px!important}.room-window{right:20px!important;transform:scale(.90);transform-origin:top right}.wall-art{left:22px!important}.room-bed{transform:translateX(-50%) scale(.94)!important}.room.pet-in-bed .pet-zone{top:65%!important}}


/* =========================================================
   TinyPal 7.7 — OGGETTI PREMIUM
   Restyle coerente: materiali, bordi, cuciture, ferramenta,
   ombre di contatto e volume senza immagini/emoji decorative.
   ========================================================= */

/* Materiali comuni */
.room{--wood-hi:#cf9f78;--wood-mid:#b98460;--wood-lo:#8d6043;--metal-hi:#b6a596;--metal-lo:#66574d;--fabric-hi:#f4dfd0;--fabric-mid:#dfbca7;--fabric-lo:#bb876f}
.room-object:not(.room-rug){transform-style:preserve-3d}
.room-object:not(.hidden)::before,.room-object:not(.hidden)::after{pointer-events:none}

/* CUCCIA: bordo imbottito, cuciture e frontale più credibile */
.room-bed{width:202px!important;height:110px!important}
.room-bed .bed-back{left:5px!important;right:5px!important;top:2px!important;height:72px!important;border-radius:58px 58px 25px 25px!important;background:linear-gradient(145deg,#d0a27e 0%,#b9835e 54%,#936443 100%)!important;border:1px solid rgba(100,63,39,.14);box-shadow:inset 0 7px 0 rgba(255,255,255,.10),inset 0 -8px 0 rgba(78,49,31,.08),0 4px 0 rgba(81,52,33,.08)!important}
.room-bed .bed-back::before{content:"";position:absolute;inset:9px 13px 15px;border-radius:48px 48px 18px 18px;border:2px solid rgba(255,255,255,.12);border-bottom-color:rgba(80,50,30,.10)}
.room-bed .bed-back::after{content:"";position:absolute;left:18px;right:18px;top:15px;height:1px;background:rgba(255,255,255,.25);box-shadow:0 30px 0 rgba(80,50,30,.06)}
.room-bed .bed-matress{left:14px!important;right:14px!important;top:50px!important;height:49px!important;border-radius:50%!important;background:radial-gradient(ellipse at 50% 28%,#fff8ef 0%,#f1dfcb 58%,#ddc4aa 100%)!important;border:1px solid rgba(119,87,59,.10);box-shadow:inset 0 -8px 10px rgba(117,83,55,.10),inset 0 5px 8px rgba(255,255,255,.50),0 5px 0 rgba(84,55,35,.10)!important}
.room-bed .bed-matress::after{content:"";position:absolute;left:28px;right:28px;top:15px;height:1px;border-top:2px dashed rgba(141,104,75,.15);border-radius:50%}
.room-bed .bed-blanket{left:62px!important;right:25px!important;top:62px!important;height:30px!important;border-radius:48% 46% 50% 44%!important;background:linear-gradient(145deg,#b8ceca 0%,#8fb1aa 62%,#789d95 100%)!important;border:1px solid rgba(75,106,99,.10);box-shadow:inset 0 5px 0 rgba(255,255,255,.15),0 3px 4px rgba(66,49,36,.08)!important}
.room-bed .bed-blanket::after{content:"";position:absolute;left:13px;right:13px;bottom:6px;height:1px;border-top:1px dashed rgba(255,255,255,.34)}
.room-bed::before{content:"";position:absolute;left:16px;right:16px;bottom:7px;height:20px;border-radius:0 0 24px 24px;background:linear-gradient(180deg,#9e6d4a,#81553a);z-index:-1;box-shadow:inset 0 3px rgba(255,255,255,.05)}
.room-bed::after{left:24px!important;right:24px!important;bottom:-4px!important;height:13px!important;background:rgba(54,36,23,.16)!important;filter:blur(5px)!important}
.room.bed-deluxe .bed-back{background:linear-gradient(145deg,#ba8252,#9a673f 58%,#70472f)!important}.room.bed-deluxe .bed-matress{background:radial-gradient(ellipse at 50% 28%,#fffaf2,#f2dfc7 64%,#d8b992)!important}.room.bed-deluxe .bed-blanket{background:linear-gradient(145deg,#e3bf8c,#c8955f 68%,#ad7546)!important}
.room.bed-fluffy .bed-back{background:linear-gradient(145deg,#ddbfd7,#bd91b1 60%,#9d718f)!important}.room.bed-fluffy .bed-matress{background:radial-gradient(ellipse at 50% 25%,#fffafd,#f4e0ec 64%,#dec0d3)!important}.room.bed-fluffy .bed-blanket{background:linear-gradient(145deg,#eccce0,#cf9fbd 65%,#b47b9f)!important}

/* COMÒ: top sporgente, cassetti reali, pomelli metallici e piedini */
.room-dresser{width:118px!important;height:110px!important;filter:drop-shadow(0 10px 8px rgba(56,38,25,.16))!important}
.dresser-top{position:absolute!important;left:-4px;right:-4px;top:0;height:15px!important;border-radius:8px 8px 4px 4px!important;background:linear-gradient(180deg,#d7ad88 0%,#b98460 55%,#976846 100%)!important;border:1px solid rgba(88,55,34,.12);box-shadow:inset 0 3px rgba(255,255,255,.16),0 2px 2px rgba(70,45,29,.08)!important}
.dresser-body{position:absolute!important;left:4px;right:4px;top:16px;height:86px!important;margin:0!important;padding:8px!important;border-radius:5px 5px 9px 9px!important;background:linear-gradient(90deg,#a86f4d 0%,#c28f6a 20%,#b27c58 72%,#956443 100%)!important;border:1px solid rgba(78,49,30,.14);box-shadow:inset 7px 0 rgba(255,255,255,.05),inset -7px 0 rgba(62,38,24,.05)!important}
.dresser-body span{border-radius:4px!important;background:linear-gradient(180deg,#c79875,#b27f5c)!important;border:1px solid rgba(83,52,31,.15)!important;box-shadow:inset 0 2px rgba(255,255,255,.10),0 1px 1px rgba(72,43,25,.06)}
.dresser-body span::before{content:"";position:absolute;left:5px;right:5px;top:5px;height:1px;background:rgba(255,255,255,.12)}
.dresser-body span::after{width:13px!important;height:5px!important;border-radius:999px!important;background:linear-gradient(180deg,#d8c8b8,#9e8977)!important;border:1px solid rgba(77,64,54,.15);box-shadow:0 1px 1px rgba(59,43,32,.20)!important}
.room-dresser::before{content:"";position:absolute;left:14px;right:14px;bottom:0;height:10px;background:linear-gradient(90deg,transparent 0 7%,#86593d 7% 17%,transparent 17% 83%,#86593d 83% 93%,transparent 93%);z-index:-1}

/* COMODINO */
.room-nightstand{width:72px!important;height:70px!important}
.nightstand-top{position:absolute!important;left:-3px;right:-3px;top:0;height:14px!important;border-radius:7px 7px 3px 3px!important;background:linear-gradient(180deg,#d3a683,#b7805d 62%,#996848)!important;border:1px solid rgba(88,55,34,.11);box-shadow:inset 0 3px rgba(255,255,255,.14)}
.nightstand-drawer{position:absolute!important;left:4px;right:4px;top:15px!important;height:34px!important;border-radius:3px 3px 7px 7px;background:linear-gradient(180deg,#c39270,#ab7655)!important;border:1px solid rgba(81,50,31,.12)!important;box-shadow:inset 0 3px rgba(255,255,255,.08)}
.nightstand-drawer::before{content:"";position:absolute;left:50%;top:12px;transform:translateX(-50%);width:13px;height:5px;border-radius:999px;background:linear-gradient(180deg,#dac9b8,#9d8978);border:1px solid rgba(70,58,48,.14)}
.nightstand-leg{top:48px!important;width:8px!important;height:18px!important;background:linear-gradient(180deg,#946242,#71482f)!important;border-radius:0 0 4px 4px!important}.nightstand-leg.left{left:11px!important}.nightstand-leg.right{right:11px!important}

/* SGABELLO: seduta imbottita + traversa */
.room-stool{width:60px!important;height:55px!important}
.room-stool span{left:5px!important;right:5px!important;top:0!important;height:20px!important;border-radius:12px 12px 8px 8px!important;background:linear-gradient(180deg,#d6aa86,#b9825f)!important;border:1px solid rgba(92,58,36,.11);box-shadow:inset 0 4px rgba(255,255,255,.14),0 2px 2px rgba(65,42,27,.06)!important}
.room-stool span::after{content:"";position:absolute;left:8px;right:8px;bottom:4px;border-bottom:1px dashed rgba(105,68,45,.20)}
.room-stool::before,.room-stool::after{top:18px!important;width:9px!important;height:34px!important;background:linear-gradient(180deg,#a87350,#805337)!important;box-shadow:inset 2px 0 rgba(255,255,255,.06)}
.room-stool{background:linear-gradient(90deg,transparent 15%,transparent 15%)}

/* MENSOLA: tavola più spessa, staffe e oggetti con volume */
.room-shelf{height:18px!important;border-radius:7px!important;background:linear-gradient(180deg,#c69770,#a97450 66%,#85583d)!important;box-shadow:inset 0 3px rgba(255,255,255,.12),0 5px 4px rgba(59,39,25,.12)!important}
.room-shelf::before{content:"";position:absolute;left:15px;right:15px;bottom:-13px;height:13px;background:linear-gradient(90deg,#7e563d 0 7px,transparent 7px calc(100% - 7px),#7e563d calc(100% - 7px));clip-path:polygon(0 0,100% 0,88% 100%,12% 100%);opacity:.9}
.room-shelf .shelf-book{border:1px solid rgba(56,47,38,.10);box-shadow:inset 2px 0 rgba(255,255,255,.12),1px 1px 1px rgba(50,35,25,.06)}
.room-shelf .shelf-frame{box-shadow:0 2px 2px rgba(58,39,25,.10),inset 0 0 0 1px rgba(255,255,255,.15)}
.room-shelf .shelf-box{box-shadow:inset 0 3px rgba(255,255,255,.12),0 1px 2px rgba(55,36,23,.08)}

/* PIANTA: più foglie, venature e vaso ceramico */
.room-plant{width:84px!important;height:100px!important}
.room-plant .plant-pot{left:20px!important;bottom:0!important;width:44px!important;height:29px!important;border-radius:4px 4px 18px 18px!important;background:linear-gradient(100deg,#d4a57d,#b47b57 58%,#925d40)!important;border:1px solid rgba(93,59,38,.10);box-shadow:inset 0 5px rgba(255,255,255,.15),0 3px 2px rgba(56,37,24,.07)!important}
.room-plant .plant-pot::before{left:-3px!important;right:-3px!important;top:-8px!important;height:11px!important;background:linear-gradient(180deg,#c79670,#a96f4f)!important;border:1px solid rgba(85,54,36,.08)}
.room-plant .plant-pot::after{content:"";position:absolute;left:8px;right:8px;top:2px;height:5px;border-radius:50%;background:rgba(83,54,35,.24)}
.room-plant .plant-leaf{width:20px!important;border-radius:60% 40% 60% 40%!important;background:linear-gradient(100deg,#91bd7e 0%,#5b9562 48%,#39754d 100%)!important;border:1px solid rgba(47,103,66,.10);box-shadow:inset -3px -2px rgba(255,255,255,.08)!important}
.room-plant .plant-leaf::after{content:"";position:absolute;left:49%;top:5px;bottom:5px;width:1px;background:rgba(231,255,229,.28);transform:rotate(-5deg)}
.room-plant .leaf-1{left:13px!important;height:45px!important;transform:rotate(-33deg)!important}.room-plant .leaf-2{left:28px!important;height:57px!important;transform:rotate(-12deg)!important}.room-plant .leaf-3{left:43px!important;height:56px!important;transform:rotate(12deg)!important}.room-plant .leaf-4{left:58px!important;height:43px!important;transform:rotate(34deg)!important}
.room-plant::before{content:"";position:absolute;left:35px;bottom:23px;width:4px;height:38px;border-radius:999px;background:#4f7750;transform:rotate(-4deg);z-index:-1}

/* CESTA GIOCHI: intreccio più leggibile */
.room-basket{width:84px!important;height:59px!important}
.room-basket .basket-shell{left:6px!important;right:6px!important;height:36px!important;border-radius:9px 9px 19px 19px!important;background:linear-gradient(180deg,#c18d5c,#a16e46 68%,#865838)!important;border:1px solid rgba(85,54,34,.12);box-shadow:inset 0 4px rgba(255,255,255,.08),0 3px 3px rgba(54,36,23,.08)!important}
.room-basket .basket-shell::before{left:5px!important;right:5px!important;top:7px!important;bottom:6px!important;background:repeating-linear-gradient(90deg,rgba(255,255,255,.09) 0 3px,rgba(73,43,25,.10) 3px 7px),repeating-linear-gradient(0deg,transparent 0 6px,rgba(70,42,25,.13) 6px 8px)!important}
.room-basket .basket-shell::after{left:15px!important;right:15px!important;top:-11px!important;height:15px!important;border-width:4px!important;border-color:#9c6c47!important}
.room-basket .basket-ball{width:20px!important;height:20px!important;bottom:21px!important;box-shadow:0 2px 2px rgba(55,36,22,.12),inset 0 0 0 2px rgba(255,255,255,.18)!important}
.room-basket .basket-bear{width:22px!important;height:20px!important;bottom:20px!important;border:1px solid rgba(80,50,30,.10)}
.room-basket .basket-bear::before,.room-basket .basket-bear::after{top:-6px!important;width:9px!important;height:9px!important}

/* CUSCINO: bordo, pieghe e bottone */
.room-cushion{width:72px!important;height:55px!important}
.room-cushion .cushion-core{inset:5px 3px 2px!important;border-radius:48% 52% 46% 54%!important;background:radial-gradient(circle at 35% 30%,#f4d7c5,#dcaa8f 58%,#bd8066)!important;border:1px solid rgba(130,83,60,.10);box-shadow:inset 0 7px rgba(255,255,255,.16),inset 0 -6px rgba(117,76,56,.06),0 6px 9px rgba(67,44,29,.12)!important}
.room-cushion .cushion-core::before{width:9px!important;height:9px!important;background:linear-gradient(180deg,#c79477,#9f6b51)!important;border:1px solid rgba(92,57,42,.10);box-shadow:inset 0 2px rgba(255,255,255,.13)}
.room-cushion .cushion-core::after{content:"";position:absolute;left:8px;right:8px;top:8px;height:8px;border-top:1px solid rgba(255,255,255,.20);border-radius:50%}
.room-cushion .cushion-stitch{inset:11px 11px 8px!important;border:1px dashed rgba(124,79,59,.32)!important}

/* LAMPADE: paralume con cucitura, piccolo bulbo e base più pesante */
.room-lamp{width:54px!important;height:124px!important}.lamp-shade{left:2px!important;width:50px!important;height:34px!important;border-radius:8px 8px 13px 13px!important;clip-path:polygon(14% 0,86% 0,100% 100%,0 100%)!important;background:linear-gradient(110deg,#f2d99f 0%,#e2c077 54%,#cda35a 100%)!important;box-shadow:inset 0 5px rgba(255,255,255,.16),inset -5px 0 rgba(112,76,34,.05)!important}.lamp-shade::after{content:"";position:absolute;left:7px;right:7px;bottom:5px;border-bottom:1px dashed rgba(124,84,42,.22)}
.lamp-stick{left:25px!important;top:31px!important;width:5px!important;height:72px!important}.lamp-base{left:7px!important;width:40px!important;height:11px!important;border-radius:50%!important}
.room-lamp::before{content:"";position:absolute;left:23px;top:28px;width:9px;height:8px;border-radius:50%;background:radial-gradient(circle,#ffe9a7 0%,#e5bf61 65%,#a97931 100%);z-index:-1}
.room-floorlamp{width:60px!important;height:160px!important}.floorlamp-shade{left:3px!important;width:54px!important;height:38px!important;border-radius:10px 10px 16px 16px!important;background:linear-gradient(110deg,#f2dfb2,#d9bd79 58%,#c19d59)!important;box-shadow:inset 0 5px rgba(255,255,255,.15)!important}.floorlamp-shade::after{content:"";position:absolute;left:8px;right:8px;bottom:6px;border-bottom:1px dashed rgba(120,83,42,.20)}.floorlamp-stick{left:28px!important;top:34px!important;height:107px!important}.floorlamp-base{left:8px!important;width:44px!important;height:12px!important}
.room-floorlamp::before{content:"";position:absolute;left:25px;top:31px;width:10px;height:9px;border-radius:50%;background:radial-gradient(circle,#fff0b7,#e2bc62 65%,#a97832);z-index:-1}
.room-lamp.is-off::before,.room-floorlamp.is-off::before{opacity:.25}.room.night .room-lamp:not(.is-off)::before,.room.night .room-floorlamp:not(.is-off)::before{box-shadow:0 0 10px 4px rgba(255,221,145,.35)}

/* TAPPETO: bordino tessile + trama discreta */
.room-rug{width:266px!important;height:82px!important;border:0!important;background:radial-gradient(ellipse at center,rgba(255,255,255,.16),transparent 58%),repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0 3px,rgba(0,0,0,.018) 3px 6px),linear-gradient(180deg,#ca9078,#af715e)!important;box-shadow:inset 0 0 0 5px rgba(255,255,255,.08),inset 0 0 0 7px rgba(105,64,48,.07),0 7px 12px rgba(66,45,30,.08)!important}
.room-rug::before{content:"";position:absolute;inset:10px 17px;border:1px dashed rgba(255,255,255,.16);border-radius:50%}
.room-rug::after{content:"";position:absolute;left:22px;right:22px;bottom:-5px;height:6px;background:repeating-linear-gradient(90deg,rgba(121,74,57,.48) 0 2px,transparent 2px 6px);border-radius:50%;opacity:.45}
.room.theme-mint .room-rug{background:radial-gradient(ellipse at center,rgba(255,255,255,.16),transparent 58%),repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0 3px,rgba(0,0,0,.018) 3px 6px),linear-gradient(180deg,#91c1b6,#6c9e92)!important}.room.theme-sky .room-rug{background:radial-gradient(ellipse at center,rgba(255,255,255,.16),transparent 58%),repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0 3px,rgba(0,0,0,.018) 3px 6px),linear-gradient(180deg,#91add0,#6d8eb7)!important}

/* CIOTOLE: ceramica smaltata, bordo e contenuto più naturale */
.room-bowl{width:112px!important;height:60px!important;gap:9px!important}
.pet-bowl{width:49px!important;height:33px!important;border-radius:9px 9px 19px 19px!important;background:linear-gradient(110deg,var(--bowl-color) 0%,color-mix(in srgb,var(--bowl-color) 78%,white) 45%,var(--bowl-dark) 100%)!important;border:1px solid rgba(75,45,28,.14)!important;box-shadow:inset 0 6px rgba(255,255,255,.17),inset 0 -6px rgba(68,39,24,.08),0 3px 2px rgba(63,40,25,.08)!important}
.pet-bowl::before{left:4px!important;right:4px!important;top:2px!important;height:13px!important;background:radial-gradient(ellipse at center,rgba(63,39,25,.32),rgba(47,30,20,.20))!important;border:1px solid rgba(255,255,255,.10);box-shadow:inset 0 2px 4px rgba(30,20,15,.24)!important}
.pet-bowl::after{content:"";position:absolute;left:17px;right:17px;bottom:7px;height:4px;border-radius:999px;background:rgba(255,255,255,.18);box-shadow:0 1px rgba(65,38,23,.08)}
.pet-bowl-food .bowl-content::before{left:8px!important;right:8px!important;top:5px!important;height:11px!important;background:radial-gradient(circle at 14% 52%,#d6a05a 0 3px,transparent 3.4px),radial-gradient(circle at 35% 36%,#b97f3c 0 3.4px,transparent 3.8px),radial-gradient(circle at 58% 58%,#e2b36b 0 3px,transparent 3.4px),radial-gradient(circle at 82% 38%,#c28a48 0 3.2px,transparent 3.6px),#8e5f36!important;box-shadow:inset 0 2px rgba(255,255,255,.10)}
.pet-bowl-water .bowl-content::before{left:7px!important;right:7px!important;top:5px!important;height:11px!important;background:radial-gradient(ellipse at 45% 20%,rgba(255,255,255,.65),transparent 42%),linear-gradient(180deg,#a8dff3,#55b7df)!important;box-shadow:inset 0 2px rgba(255,255,255,.40)}

/* OROLOGIO: cornice, tacche e lancette più pulite */
.room-clock{width:60px!important;height:60px!important;border:4px solid #a17855!important;background:radial-gradient(circle at 40% 35%,#fffdf9 0%,#f0e7dc 75%,#ded1c3 100%)!important;box-shadow:inset 0 0 0 2px rgba(128,94,67,.08),0 8px 12px rgba(61,42,27,.11)!important}
.room-clock::before{inset:8px!important;border:0!important;background:repeating-conic-gradient(from 0deg,rgba(113,82,60,.60) 0 1deg,transparent 1deg 30deg);-webkit-mask:radial-gradient(circle,transparent 0 18px,#000 18px 20px,transparent 20px);mask:radial-gradient(circle,transparent 0 18px,#000 18px 20px,transparent 20px)}
.room-clock i{height:15px!important;top:14px!important;background:#6e513b!important}.room-clock b{height:19px!important;top:10px!important;background:#9b6749!important}.room-clock::after{width:7px!important;height:7px!important;background:linear-gradient(180deg,#a77a58,#6e4d37)!important;border:1px solid rgba(75,48,31,.15)}

/* GIOCATTOLI A TERRA: più volume */
.toy-floor.toy-ball-shape{width:38px!important;height:38px!important;background:radial-gradient(circle at 30% 24%,#ffe487 0%,#e7b34f 48%,#c68334 100%)!important;border:1px solid rgba(125,78,31,.12);box-shadow:0 7px 8px rgba(59,39,23,.17),inset 0 0 0 2px rgba(255,255,255,.18)!important}.toy-floor.toy-ball-shape::before{left:17px!important}.toy-floor.toy-ball-shape::after{top:17px!important}
.toy-floor.toy-bear-shape{width:39px!important;height:34px!important;background:linear-gradient(145deg,#cf9d68,#ae7748 62%,#8c5c38)!important;border:1px solid rgba(95,59,35,.12);box-shadow:0 7px 9px rgba(60,39,23,.17),inset 0 4px rgba(255,255,255,.10),inset 0 -3px rgba(70,43,25,.08)!important}.toy-floor.toy-bear-shape::before,.toy-floor.toy-bear-shape::after{width:13px!important;height:13px!important;background:linear-gradient(145deg,#bf8956,#985f38)!important}
.toy-floor.toy-bear-shape{position:absolute}.toy-floor.toy-bear-shape{--eye:#3f2a1f}.toy-floor.toy-bear-shape{background-image:radial-gradient(circle at 38% 42%,var(--eye) 0 1.5px,transparent 2px),radial-gradient(circle at 62% 42%,var(--eye) 0 1.5px,transparent 2px),radial-gradient(circle at 50% 60%,#5c3826 0 2px,transparent 2.5px),linear-gradient(145deg,#cf9d68,#ae7748 62%,#8c5c38)!important}

/* Migliore ombra di contatto: niente effetto “fluttuante” */
.room:not(.arranging) .room-dresser,.room:not(.arranging) .room-nightstand,.room:not(.arranging) .room-stool,.room:not(.arranging) .room-basket,.room:not(.arranging) .room-plant,.room:not(.arranging) .room-lamp,.room:not(.arranging) .room-floorlamp,.room:not(.arranging) .room-bowl{filter:drop-shadow(0 8px 5px rgba(55,37,23,.14))!important}
.room.night .room-object:not(.hidden){filter:drop-shadow(0 9px 7px rgba(10,12,18,.22))}

/* Su schermi stretti, mantieni proporzioni senza coprire il cucciolo */
@media(max-width:390px){.room-bed{width:192px!important}.room-dresser{transform-origin:center bottom}.room-bowl{transform-origin:center bottom}}


/* v7.8 — stanza viva e comfort */
.room-comfort-card{padding:18px}.room-comfort-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}.room-comfort-body{display:grid;grid-template-columns:84px 1fr;gap:14px;align-items:center}.room-comfort-score{width:84px;height:70px;border-radius:22px;background:linear-gradient(180deg,#f4efe7,#ebe2d6);display:flex;align-items:baseline;justify-content:center;padding-top:17px;box-shadow:inset 0 1px rgba(255,255,255,.65)}.room-comfort-score strong{font-size:28px;letter-spacing:-.05em}.room-comfort-score span{font-size:calc(11.5px + var(--tp-text-extra,0px));font-weight:850;color:var(--muted);margin-left:2px}.room-comfort-info{min-width:0}.room-comfort-bar{height:9px;border-radius:999px;background:rgba(70,55,45,.08);overflow:hidden}.room-comfort-bar span{display:block;width:0;height:100%;border-radius:999px;background:linear-gradient(90deg,#8aa17e,#b8a271);transition:width .4s ease}.room-comfort-info p{margin:8px 1px 0;color:var(--muted);font-size:calc(12px + var(--tp-text-extra,0px));line-height:1.4;font-weight:650}.room-object.interaction-ready{filter:brightness(1.03)}

.room:not(.arranging) .room-plant,.room:not(.arranging) .room-shelf,.room:not(.arranging) .room-dresser,.room:not(.arranging) .room-nightstand,.room:not(.arranging) .room-stool,.room:not(.arranging) .room-rug{cursor:pointer}
.room:not(.arranging) .room-plant:active,.room:not(.arranging) .room-shelf:active,.room:not(.arranging) .room-dresser:active,.room:not(.arranging) .room-nightstand:active,.room:not(.arranging) .room-stool:active,.room:not(.arranging) .room-rug:active{filter:brightness(.97)}


/* v7.9 — Casa & Igiene */
.house-care-card{padding:18px}.house-care-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}.house-care-body{display:grid;grid-template-columns:84px 1fr;gap:14px;align-items:center}.house-care-score{width:84px;height:72px;border-radius:22px;background:linear-gradient(180deg,#eef4ef,#e1ebe3);display:flex;align-items:baseline;justify-content:center;padding-top:18px;box-shadow:inset 0 1px rgba(255,255,255,.72)}.house-care-score strong{font-size:28px;letter-spacing:-.05em}.house-care-score span{font-size:calc(11.5px + var(--tp-text-extra,0px));font-weight:850;color:var(--muted);margin-left:2px}.house-care-info{min-width:0}.house-care-bar{height:9px;border-radius:999px;background:rgba(70,55,45,.08);overflow:hidden}.house-care-bar span{display:block;width:100%;height:100%;border-radius:999px;background:linear-gradient(90deg,#7fa08a,#a6bea4);transition:width .4s ease}.house-care-mini{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:8px}.house-care-mini span{font-size:calc(10.5px + var(--tp-text-extra,0px));font-weight:750;color:var(--muted);padding:6px 5px;border-radius:10px;background:var(--surface-2);text-align:center}.house-care-mini strong{display:block;color:var(--text);font-size:calc(11.5px + var(--tp-text-extra,0px));margin-top:2px}.house-care-info p{margin:8px 1px 0;color:var(--muted);font-size:calc(12px + var(--tp-text-extra,0px));line-height:1.4;font-weight:650}
.room-dust{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:.6}.room-dust i{position:absolute;width:15px;height:8px;border-radius:50%;background:rgba(114,93,75,.18);filter:blur(.4px)}.room-dust i:nth-child(1){left:16%;bottom:12%}.room-dust i:nth-child(2){left:36%;bottom:8%;width:10px}.room-dust i:nth-child(3){right:20%;bottom:17%;width:18px}.room-dust i:nth-child(4){right:7%;bottom:8%;width:11px}
.room-bowl.needs-wash .pet-bowl{filter:saturate(.75) brightness(.94)}.room-bowl.needs-wash::after{content:"";position:absolute;left:17px;right:17px;bottom:3px;height:5px;border-radius:50%;background:rgba(108,78,55,.18);filter:blur(2px)}
.room-bed.needs-wash .bed-matress,.room-bed.needs-wash .bed-pillows span{filter:saturate(.72) brightness(.94)}.room-bed.needs-wash .bed-blanket{filter:saturate(.68) brightness(.92)}
@media(max-width:390px){.house-care-body{grid-template-columns:72px 1fr}.house-care-score{width:72px;height:66px}.house-care-mini{grid-template-columns:1fr}.house-care-mini span{display:flex;justify-content:space-between;align-items:center}.house-care-mini strong{display:inline;margin:0}}


/* v8.0 — tappetino igienico e routine autonoma */
.room-pad{
  position:absolute;left:34px;bottom:34px;width:94px;height:58px;z-index:2;
  filter:drop-shadow(0 7px 6px rgba(61,44,31,.12));
}
.room-pad .pad-rim{
  position:absolute;inset:0;border-radius:15px;
  background:linear-gradient(180deg,#e7ded4,#cfc3b7);
  box-shadow:inset 0 2px rgba(255,255,255,.55),inset 0 -2px rgba(79,60,44,.08);
}
.room-pad .pad-surface{
  position:absolute;inset:6px;border-radius:11px;
  background:
    repeating-linear-gradient(0deg,rgba(122,137,137,.07) 0 1px,transparent 1px 8px),
    repeating-linear-gradient(90deg,rgba(122,137,137,.06) 0 1px,transparent 1px 10px),
    linear-gradient(180deg,#f7f8f6,#eef1ee);
  border:1px solid rgba(95,108,107,.10);
  overflow:hidden;
}
.room-pad .pad-surface::before{
  content:"";position:absolute;inset:6px 8px;border-radius:9px;
  border:1px dashed rgba(108,126,124,.18);
}
.room-pad .pad-surface span,.room-pad .pad-surface i{
  position:absolute;border-radius:50%;opacity:0;transition:.25s;
}
.room-pad.used .pad-surface span{
  width:22px;height:11px;left:20px;top:19px;opacity:.22;
  background:#d7bf7a;transform:rotate(-8deg);
}
.room-pad.dirty .pad-surface i{
  width:14px;height:9px;right:18px;bottom:12px;opacity:.28;
  background:#9a785e;transform:rotate(14deg);
}
.room-pad .pad-clean-bar{
  position:absolute;left:14px;right:14px;bottom:-7px;height:4px;border-radius:99px;
  background:rgba(76,64,55,.10);overflow:hidden;
}
.room-pad .pad-clean-bar b{
  display:block;height:100%;width:100%;border-radius:99px;background:#7fa38e;transition:width .35s ease;
}
.room-pad.dirty .pad-clean-bar b{background:#b27667}
.room-pad.tone-cream .pad-rim{background:linear-gradient(180deg,#eee5db,#d6c9bd)}
.room-pad.tone-sky .pad-rim{background:linear-gradient(180deg,#dce9ef,#bfd3dd)}
.room-pad.tone-sage .pad-rim{background:linear-gradient(180deg,#d8e3d7,#bdcebb)}
.room:not(.arranging) .room-pad{cursor:pointer}
.room:not(.arranging) .room-pad:active{filter:brightness(.96) drop-shadow(0 5px 4px rgba(61,44,31,.12))}
.room.arranging .room-pad{touch-action:none}


/* v8.0.1 — cameretta senza scritte */
.room-meta,.pet-name-wrap{display:none!important}

/* Nome, età, ora e stato ora vivono sotto la stanza */
.pet-info-strip{
  position:relative;
  padding:14px 15px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  overflow:visible;
}
.pet-info-main{min-width:0}
.pet-name-external{
  padding:0;
  background:transparent!important;
  box-shadow:none!important;
  border-radius:0;
  font-size:calc(20px + var(--tp-text-extra,0px));
  font-weight:900;
  letter-spacing:-.025em;
}
.pet-name-external .edit-mark{
  display:inline-grid;
  place-items:center;
  width:22px;height:22px;
  border-radius:50%;
  background:var(--surface-2);
  font-size:calc(12px + var(--tp-text-extra,0px));
  opacity:.65;
}
.pet-age-external{
  margin-top:4px;
  color:var(--muted)!important;
  font-size:calc(13px + var(--tp-text-extra,0px));
  font-weight:750;
}
.pet-info-side{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:7px;
  flex-wrap:wrap;
}
.pet-info-chip{
  min-width:62px;
  padding:8px 10px;
  border-radius:14px;
  background:var(--surface-2);
  text-align:center;
}
.pet-info-chip small{
  display:block;
  color:var(--muted);
  font-size:calc(9.5px + var(--tp-text-extra,0px));
  letter-spacing:.11em;
  font-weight:900;
}
.pet-info-chip strong{
  display:block;
  margin-top:3px;
  font-size:calc(12px + var(--tp-text-extra,0px));
  white-space:nowrap;
}
.pet-info-chip.status-chip{
  max-width:120px;
}
.pet-info-chip.status-chip strong{
  overflow:hidden;
  text-overflow:ellipsis;
}
.pet-info-strip .arrange-badge{
  position:static;
  padding:9px 11px;
}

/* I messaggi del cucciolo non coprono più la stanza */
.external-speech{
  position:absolute!important;
  left:15px!important;
  right:15px!important;
  top:calc(100% + 7px)!important;
  transform:none!important;
  width:auto;
  text-align:center;
  background:#25211e!important;
  color:#fff!important;
  border-radius:14px!important;
  padding:10px 13px!important;
  z-index:28!important;
  box-shadow:0 10px 24px rgba(40,30,22,.16)!important;
}
.external-speech::after{display:none!important}

/* Gli Z diventano bollicine di sonno, senza lettere */
.sleep-z{
  width:42px!important;
  height:44px!important;
  right:-2px!important;
  top:12px!important;
  color:transparent!important;
  text-shadow:none!important;
  letter-spacing:0!important;
  animation:none!important;
}
.sleep-z i,.sleep-z b,.sleep-z em{
  position:absolute!important;
  display:block!important;
  border-radius:50%;
  background:rgba(255,255,255,.84);
  box-shadow:0 2px 7px rgba(25,30,42,.13);
  animation:sleepBubble 2.2s ease-in-out infinite;
}
.sleep-z i{width:9px;height:9px;left:3px;bottom:3px}
.sleep-z b{width:13px;height:13px;left:14px;bottom:13px;animation-delay:.35s}
.sleep-z em{width:17px;height:17px;right:0;top:0;animation-delay:.7s}
@keyframes sleepBubble{
  0%,100%{transform:translateY(4px) scale(.82);opacity:.18}
  45%{opacity:.95}
  70%{transform:translateY(-5px) scale(1);opacity:.78}
}

/* Arredo Pro resta fuori dall'illustrazione della stanza */
.external-arrange-toolbar{
  position:fixed!important;
  left:50%!important;
  right:auto!important;
  bottom:96px!important;
  transform:translateX(-50%);
  width:min(calc(100% - 24px),516px);
  z-index:45!important;
  margin:0!important;
}
.room.arranging .pet-zone{pointer-events:none;opacity:.42}
.room.arranging .room-object:not(.hidden){outline:2px dashed rgba(255,255,255,.72);outline-offset:5px}
.room.arranging .room-object.selected-object:not(.hidden){outline:3px solid #fff;outline-offset:6px}

/* Niente overlay testuali nella stanza anche di notte */
.room.night .pet-zone{z-index:12}

@media(max-width:390px){
  .pet-info-strip{grid-template-columns:1fr}
  .pet-info-side{justify-content:flex-start}
  .pet-info-chip{flex:1}
}


/* v8.1 — Cloud & multiplayer */
.cloud-top-btn{position:relative}
.cloud-badge{
  position:absolute;right:4px;top:4px;width:10px;height:10px;border-radius:50%;
  background:#75a87d;color:transparent;border:2px solid #fff;
}
.cloud-badge.cloud-error{background:#c07566}
.cloud-sheet{max-height:88dvh}
.cloud-status-card{
  display:flex;gap:13px;align-items:center;padding:15px;border-radius:22px;
  background:var(--surface-2);border:1px solid var(--line);margin-bottom:12px;
}
.cloud-status-icon{
  width:48px;height:48px;border-radius:18px;display:grid;place-items:center;
  background:#fff;font-size:25px;box-shadow:0 6px 16px rgba(60,45,30,.08);flex:0 0 auto;
}
.cloud-status-card strong{display:block;font-size:calc(15px + var(--tp-text-extra,0px))}
.cloud-status-card p{margin:4px 0 0;color:var(--muted);font-size:calc(13px + var(--tp-text-extra,0px));line-height:1.4;font-weight:650}
.cloud-room-card{
  display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;
  padding:14px;border-radius:22px;background:#f2f7ef;border:1px solid rgba(90,120,88,.13);margin-bottom:12px;
}
.cloud-room-card small{grid-column:1/-1;font-size:calc(11.5px + var(--tp-text-extra,0px));letter-spacing:.14em;color:#6f8065;font-weight:900}
.cloud-room-card strong{font-size:30px;letter-spacing:.12em}
.cloud-grid{display:grid;gap:10px;margin-bottom:12px}
.cloud-field{display:grid;gap:6px}
.cloud-field span{font-size:calc(12px + var(--tp-text-extra,0px));color:var(--muted);font-weight:850;letter-spacing:.03em}
.cloud-field input{
  width:100%;height:46px;border:1px solid var(--line);border-radius:16px;padding:0 13px;
  background:var(--surface-2);font:inherit;font-size:calc(14px + var(--tp-text-extra,0px));outline:none;
}
.cloud-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.cloud-actions .primary-btn,.cloud-actions .danger-btn,.cloud-actions .secondary-btn{height:48px;border-radius:16px}
.secondary-btn{
  border:0;background:var(--surface-2);font-weight:850;color:var(--text);
}
.cloud-actions .primary-btn{grid-column:1/-1}
.cloud-actions .danger-btn{grid-column:1/-1}
.cloud-members{margin-top:16px}
.cloud-members h3{font-size:calc(15px + var(--tp-text-extra,0px));margin:0 0 8px}
#cloudMembersList{display:grid;gap:8px}
.cloud-member{display:flex;gap:10px;align-items:center;padding:11px 12px;border-radius:17px;background:var(--surface-2)}
.cloud-member>span{font-size:22px}.cloud-member strong{display:block;font-size:calc(14px + var(--tp-text-extra,0px))}.cloud-member small{display:block;color:var(--muted);font-size:calc(12px + var(--tp-text-extra,0px));font-weight:650;margin-top:2px}
.cloud-member.muted{opacity:.75}
.cloud-help{margin-top:14px;padding:12px;border-radius:18px;background:#f7f2ec;color:var(--muted);font-size:calc(12px + var(--tp-text-extra,0px));line-height:1.45}
.cloud-help strong{display:block;color:var(--text);font-size:calc(13px + var(--tp-text-extra,0px));margin-bottom:4px}
.cloud-help code{background:#fff;padding:2px 5px;border-radius:7px;color:#6a5748}
@media(max-width:390px){.cloud-actions{grid-template-columns:1fr}.cloud-room-card{grid-template-columns:1fr}.cloud-room-card strong{font-size:24px}}


/* v8.1.1 — sposta pulsante cloud fuori dalla top bar */
.top-actions{flex-wrap:wrap}
.cloud-top-btn{display:none!important}
.cloud-fab{
  position:fixed;
  left:max(12px, calc(50% - 258px + 12px));
  bottom:88px;
  z-index:41;
  width:50px;
  height:50px;
  box-shadow:0 10px 24px rgba(53,38,26,.18);
}
.cloud-fab span{font-size:calc(20px + var(--tp-text-extra,0px))}
.cloud-fab .cloud-badge{
  right:2px;
  top:2px;
}
@media(max-width:560px){
  .cloud-fab{
    left:12px;
    bottom:88px;
  }
}


/* v8.1.2 — cloud nelle impostazioni */
.cloud-fab,.cloud-top-btn{display:none!important}


/* v8.1.3 — backend Supabase gestito dall'app */
.cloud-backend-field{display:none!important}
.cloud-help{background:#f2f7ef}


/* v8.1.4 — nuvolette sopra l'animale */
.pet-zone .speech{top:-16px;left:50%;transform:translateX(-50%);max-width:190px;white-space:normal;text-align:center;line-height:1.25;padding:10px 12px;z-index:18}
.pet-zone .speech::after{display:block}
.external-speech{display:none!important}
.room.arranging .pet-zone .speech{display:none!important}


/* v8.2 — Animazioni & Reazioni del cucciolo */

/* Piccolo battito di palpebre naturale */
.pet:not(.sleeping) .face-eye{animation:petBlink 5.4s infinite}
.pet:not(.sleeping) .eye-right{animation-delay:.03s}
@keyframes petBlink{
  0%,45%,48%,100%{transform:scaleY(1)}
  46%,47%{transform:scaleY(.13)}
}

/* Mangia: testa in basso + masticazione */
.pet.react-eat{
  animation:petEatBody .72s ease-in-out infinite!important;
}
.pet.react-eat .head{
  animation:petEatHead .46s ease-in-out infinite alternate;
  transform-origin:50% 85%;
}
.pet.react-eat .mouth{
  width:16px;height:9px;left:14px;top:18px;
  border:0;background:#6d4433;border-radius:0 0 12px 12px;
  animation:petChew .32s ease-in-out infinite alternate;
}
.pet.react-eat .tail{animation-duration:.34s!important}
@keyframes petEatBody{0%,100%{transform:translateY(1px)}50%{transform:translateY(4px)}}
@keyframes petEatHead{from{transform:translateY(5px) rotate(4deg)}to{transform:translateY(10px) rotate(8deg)}}
@keyframes petChew{from{transform:scaleY(.45)}to{transform:scaleY(1)}}

/* Beve: muso ancora più basso e piccoli movimenti */
.pet.react-drink{
  animation:petDrinkBody .7s ease-in-out infinite!important;
}
.pet.react-drink .head{
  animation:petDrinkHead .55s ease-in-out infinite alternate;
  transform-origin:50% 90%;
}
.pet.react-drink .mouth{
  width:12px;height:4px;left:16px;top:22px;
  border:0;background:#765144;border-radius:999px;
}
.pet.react-drink .tail{animation-duration:.48s!important}
@keyframes petDrinkBody{0%,100%{transform:translateY(2px)}50%{transform:translateY(5px)}}
@keyframes petDrinkHead{from{transform:translateY(7px) rotate(3deg)}to{transform:translateY(12px) rotate(5deg)}}

/* Gioca: saltelli e coda molto più veloce */
.pet.react-play{
  animation:petPlayJump .62s cubic-bezier(.35,.7,.3,1) infinite!important;
}
.pet.react-play .tail{animation-duration:.18s!important}
.pet.react-play .ear-left{animation:earBounceLeft .62s ease-in-out infinite}
.pet.react-play .ear-right{animation:earBounceRight .62s ease-in-out infinite}
@keyframes petPlayJump{
  0%,100%{transform:translateY(0) rotate(-1deg)}
  45%{transform:translateY(-12px) rotate(2deg)}
  65%{transform:translateY(-5px) rotate(-2deg)}
}
@keyframes earBounceLeft{0%,100%{transform:rotate(22deg)}50%{transform:rotate(31deg)}}
@keyframes earBounceRight{0%,100%{transform:scaleX(-1) rotate(22deg)}50%{transform:scaleX(-1) rotate(31deg)}}

/* Coccole: occhi felici e piccolo dondolio */
.pet.react-cuddle{
  animation:petCuddle .82s ease-in-out infinite!important;
}
.pet.react-cuddle .face-eye{
  height:4px!important;top:42px!important;border-radius:999px!important;
  animation:none!important;
}
.pet.react-cuddle .mouth{
  width:18px;height:10px;left:13px;top:17px;
  border-bottom:3px solid #4c382b;border-radius:0 0 18px 18px;
}
.pet.react-cuddle .tail{animation-duration:.22s!important}
@keyframes petCuddle{
  0%,100%{transform:rotate(-2deg) scale(1)}
  50%{transform:rotate(2deg) scale(1.035)}
}

/* Bagnetto: scrollata leggera */
.pet.react-bath{
  animation:petShake .15s linear 8!important;
}
.pet.react-bath .ear-left,.pet.react-bath .ear-right{filter:brightness(1.04)}
@keyframes petShake{
  0%{transform:translateX(-3px) rotate(-1deg)}
  50%{transform:translateX(3px) rotate(1deg)}
  100%{transform:translateX(-2px) rotate(0)}
}

/* Risveglio: stiracchiata */
.pet.react-wake{
  animation:petWakeStretch .9s ease-out 2!important;
}
@keyframes petWakeStretch{
  0%{transform:scaleY(.92) translateY(5px)}
  45%{transform:scaleY(1.07) translateY(-5px)}
  100%{transform:scaleY(1) translateY(0)}
}

/* Routine più leggibili */
.pet-zone.activity-bowl .pet:not(.react-eat):not(.react-drink) .head{
  animation:bowlSniff 1.05s ease-in-out infinite alternate;
  transform-origin:50% 80%;
}
.pet-zone.activity-toy .pet:not(.react-play){animation:toyAnticipation .8s ease-in-out infinite}
.pet-zone.activity-potty .pet{
  animation:pottyPose 1.3s ease-in-out infinite!important;
}
.pet-zone.activity-potty .tail{animation:none!important;transform:rotate(-12deg)}
.pet-zone.activity-cushion .pet:not(.react-cuddle){animation:cushionRelax 1.8s ease-in-out infinite}
@keyframes bowlSniff{from{transform:translateY(3px) rotate(3deg)}to{transform:translateY(8px) rotate(7deg)}}
@keyframes toyAnticipation{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@keyframes pottyPose{0%,100%{transform:translateY(4px) scaleY(.96)}50%{transform:translateY(7px) scaleY(.93)}}
@keyframes cushionRelax{0%,100%{transform:rotate(-1deg) scale(.99)}50%{transform:rotate(1deg) scale(1.015)}}

/* Ombra che segue i salti */
.pet-zone:has(.pet.react-play) .shadow{animation:playShadow .62s ease-in-out infinite}
@keyframes playShadow{0%,100%{transform:scaleX(1);opacity:1}45%{transform:scaleX(.72);opacity:.55}}


/* v8.3 — Espressioni & Vita propria */

/* Faccia felice */
.pet.mood-happy:not(.sleeping):not(.react-cuddle) .face-eye{
  height:5px;top:42px;border-radius:999px;animation:none;
  transform:rotate(5deg);
}
.pet.mood-happy:not(.sleeping) .eye-right{transform:rotate(-5deg)}
.pet.mood-happy .mouth{
  width:18px;height:10px;left:13px;top:17px;
  border-bottom:3px solid #4c382b;border-radius:0 0 18px 18px;
}
.pet.mood-happy .head::before,
.pet.mood-happy .head::after{
  content:"";position:absolute;top:54px;width:13px;height:7px;
  border-radius:50%;background:rgba(217,111,102,.18);z-index:9;
}
.pet.mood-happy .head::before{left:12px}.pet.mood-happy .head::after{right:12px}
.pet.mood-happy .tail{animation-duration:.45s}

/* Fame: sguardo più basso e bocca piccola */
.pet.mood-hungry:not(.sleeping) .face-eye{
  top:39px;animation:petBlink 5.8s infinite;
}
.pet.mood-hungry .mouth{
  width:11px;height:8px;left:17px;top:21px;
  border:2px solid #5a4031;border-top:0;border-radius:0 0 10px 10px;
}
.pet.mood-hungry .head{transform:rotate(2deg)}
.pet.mood-hungry .ear-left{transform:rotate(29deg)}
.pet.mood-hungry .ear-right{transform:scaleX(-1) rotate(29deg)}

/* Sete: bocca socchiusa e lingua */
.pet.mood-thirsty .mouth{
  width:16px;height:10px;left:14px;top:19px;
  border:0;background:#694637;border-radius:0 0 12px 12px;
}
.pet.mood-thirsty .mouth::after{
  content:"";position:absolute;left:5px;bottom:-4px;width:7px;height:7px;
  border-radius:0 0 8px 8px;background:#db817b;
}
.pet.mood-thirsty .ear-left{transform:rotate(27deg)}
.pet.mood-thirsty .ear-right{transform:scaleX(-1) rotate(27deg)}

/* Stanchezza: palpebre pesanti e orecchie basse */
.pet.mood-tired:not(.sleeping) .face-eye{
  height:4px;top:43px;border-radius:999px;animation:none;
}
.pet.mood-tired .mouth{
  width:12px;height:5px;left:16px;top:22px;border-bottom:2px solid #4c382b;
}
.pet.mood-tired .ear-left{transform:rotate(37deg) translateY(3px)}
.pet.mood-tired .ear-right{transform:scaleX(-1) rotate(37deg) translateY(3px)}
.pet.mood-tired{animation-duration:3.2s!important}

/* Sporco: faccia infastidita */
.pet.mood-dirty:not(.sleeping) .eye-left{transform:rotate(8deg) scaleY(.72)}
.pet.mood-dirty:not(.sleeping) .eye-right{transform:rotate(-8deg) scaleY(.72)}
.pet.mood-dirty .mouth{
  width:13px;height:6px;left:16px;top:23px;
  border-top:3px solid #4c382b;border-bottom:0;border-radius:12px 12px 0 0;
}

/* Solitudine: faccia triste più leggibile */
.pet.mood-lonely:not(.sleeping) .face-eye{
  transform:scaleY(.88);animation:petBlink 6s infinite;
}
.pet.mood-lonely .mouth{
  width:16px;height:8px;left:14px;top:23px;
  border-top:3px solid #4c382b;border-bottom:0;border-radius:14px 14px 0 0;
}
.pet.mood-lonely .ear-left{transform:rotate(34deg)}
.pet.mood-lonely .ear-right{transform:scaleX(-1) rotate(34deg)}

/* Malessere: orecchie giù e lieve tremolio */
.pet.mood-sick:not(.sleeping) .face-eye{
  height:5px;top:42px;border-radius:999px;animation:none;
}
.pet.mood-sick .ear-left{transform:rotate(43deg) translateY(5px)}
.pet.mood-sick .ear-right{transform:scaleX(-1) rotate(43deg) translateY(5px)}
.pet.mood-sick:not(.react-bath){animation:petSickBreath 2.2s ease-in-out infinite!important}
@keyframes petSickBreath{
  0%,100%{transform:translateY(2px) scale(.985)}
  50%{transform:translateY(4px) scale(1)}
}

/* Micro comportamenti autonomi */
.pet.idle-sniff:not(.sleeping){
  animation:idleSniffBody .6s ease-in-out 4!important;
}
.pet.idle-sniff .head{
  animation:idleSniffHead .55s ease-in-out 4 alternate;
  transform-origin:50% 90%;
}
@keyframes idleSniffBody{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(2px)}
}
@keyframes idleSniffHead{
  from{transform:rotate(-3deg) translateY(1px)}
  to{transform:rotate(5deg) translateY(5px)}
}

.pet.idle-look:not(.sleeping) .head{
  animation:idleLookHead 2.4s ease-in-out 1;
  transform-origin:50% 80%;
}
.pet.idle-look .tail{animation-duration:.55s!important}
@keyframes idleLookHead{
  0%,100%{transform:rotate(0)}
  25%{transform:rotate(-10deg)}
  55%{transform:rotate(9deg)}
  75%{transform:rotate(4deg)}
}

.pet.idle-stretch:not(.sleeping){
  animation:idleStretch 1.9s ease-in-out 1!important;
}
.pet.idle-stretch .body{transform-origin:50% 100%;animation:idleStretchBody 1.9s ease-in-out 1}
.pet.idle-stretch .tail{animation-duration:.28s!important}
@keyframes idleStretch{
  0%,100%{transform:scaleY(1) translateY(0)}
  35%{transform:scaleY(.88) translateY(8px)}
  65%{transform:scaleY(1.06) translateY(-5px)}
}
@keyframes idleStretchBody{
  0%,100%{transform:scaleY(1)}
  40%{transform:scaleY(.88)}
  70%{transform:scaleY(1.07)}
}

.pet.idle-scratch:not(.sleeping){
  animation:idleScratchBody .28s linear 8!important;
}
.pet.idle-scratch .ear-left{animation:idleScratchEar .28s linear 8}
@keyframes idleScratchBody{
  0%,100%{transform:rotate(-1deg)}
  50%{transform:rotate(2deg)}
}
@keyframes idleScratchEar{
  0%,100%{transform:rotate(22deg)}
  50%{transform:rotate(34deg)}
}

.pet.idle-sit:not(.sleeping){
  animation:idleSit 3.1s ease-in-out 1!important;
}
.pet.idle-sit .body{transform:translateY(5px) scaleY(.94)}
.pet.idle-sit .leg-left,.pet.idle-sit .leg-right{transform:translateY(5px)}
@keyframes idleSit{
  0%,100%{transform:translateY(0)}
  18%,82%{transform:translateY(6px)}
}

/* Le reazioni attive hanno sempre priorità sulle espressioni */
.pet.react-eat .head,
.pet.react-drink .head,
.pet.react-play .head,
.pet.react-cuddle .head{z-index:6}


/* v8.4 — Ritmo Giornaliero Reale */
.day-rhythm-card{padding:17px;overflow:hidden}
.day-rhythm-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.day-rhythm-head h2{margin-top:4px}
.day-rhythm-clock{
  padding:8px 10px;border-radius:13px;background:var(--surface-2);
  font-size:calc(13px + var(--tp-text-extra,0px));font-weight:900;letter-spacing:.02em;white-space:nowrap
}
.day-rhythm-text{margin-top:8px;color:var(--muted);font-size:calc(13px + var(--tp-text-extra,0px));line-height:1.45;font-weight:650}
.day-rhythm-track{
  display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:14px;
  position:relative
}
.rhythm-stop{
  min-width:0;padding:10px 5px;border-radius:15px;background:var(--surface-2);
  text-align:center;border:1px solid transparent;transition:.2s
}
.rhythm-stop span{
  display:grid;place-items:center;width:27px;height:27px;margin:0 auto 5px;border-radius:50%;
  background:#fff;font-size:calc(11.5px + var(--tp-text-extra,0px));font-weight:950;color:var(--muted)
}
.rhythm-stop strong{display:block;font-size:calc(10.5px + var(--tp-text-extra,0px));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rhythm-stop.active{
  background:#f3f7ef;border-color:rgba(102,133,97,.18);
  box-shadow:inset 0 0 0 1px rgba(102,133,97,.06)
}
.rhythm-stop.active span{background:#73886d;color:#fff}
.rhythm-stop.done strong::after{content:" ✓";color:#718f74}
.day-rhythm-next{
  display:flex;align-items:center;gap:10px;margin-top:11px;padding:10px 11px;
  border-radius:15px;background:#f8f4ee
}
.day-rhythm-next>span{font-size:21px}
.day-rhythm-next small{display:block;color:var(--muted);font-size:calc(9.5px + var(--tp-text-extra,0px));letter-spacing:.1em;font-weight:900}
.day-rhythm-next strong{display:block;margin-top:2px;font-size:calc(12px + var(--tp-text-extra,0px))}

@media(max-width:390px){
  .day-rhythm-track{gap:5px}
  .rhythm-stop{padding:9px 3px}
  .rhythm-stop strong{font-size:calc(9.5px + var(--tp-text-extra,0px))}
}


/* v8.5 — Uso realistico degli oggetti */
.pet-zone.using-object{
  transform:translate(-50%,-50%) scale(var(--pet-use-scale,.75));
  z-index:7;
}

/* La camminata verso un oggetto sembra un piccolo trotto */
.pet-zone.routine-moving:not(.activity-sleep) .pet{
  transition:filter .25s ease;
}
.pet-zone.routine-moving:not(.activity-sleep):not(.activity-cushion) .shadow{
  transition:transform .35s ease,opacity .35s ease;
}

/* CIOTOLE: il muso scende davvero verso il recipiente */
.pet-zone.activity-bowl{
  z-index:8;
}
.pet-zone.activity-bowl .pet:not(.react-eat):not(.react-drink){
  animation:bowlApproach 1.1s ease-in-out infinite!important;
}
.pet-zone.activity-bowl .head{
  transform-origin:50% 92%;
}
.pet-zone.activity-bowl.object-side-right .head{
  transform:translateY(7px) rotate(6deg);
}
.pet-zone.activity-bowl.object-side-left .head{
  transform:translateY(7px) rotate(-6deg);
}
@keyframes bowlApproach{
  0%,100%{transform:translateY(1px)}
  50%{transform:translateY(5px)}
}

/* CUCCIA: il cucciolo viene posato realmente sopra la cuccia */
.pet-zone.activity-sleep{
  transform:translate(-50%,-50%) scale(var(--pet-use-scale,.58))!important;
  z-index:7;
}
.pet-zone.activity-sleep .pet{
  animation:sleepInBed 3.1s ease-in-out infinite!important;
  transform-origin:center center;
}
.pet-zone.activity-sleep .shadow{
  opacity:.12!important;
  transform:scaleX(.76) translateY(5px);
}
.pet-zone.activity-sleep .tail{animation:none!important}
@keyframes sleepInBed{
  0%,100%{transform:rotate(-8deg) translateY(3px) scaleY(.98)}
  50%{transform:rotate(-8deg) translateY(5px) scaleY(1.015)}
}

/* TAPPETINO: postura bassa e ferma sopra il pad */
.pet-zone.activity-potty{
  z-index:8;
}
.pet-zone.activity-potty .pet{
  animation:pottyUseReal .95s ease-in-out infinite!important;
}
.pet-zone.activity-potty .tail{
  animation:none!important;
  transform:rotate(-8deg);
}
@keyframes pottyUseReal{
  0%,100%{transform:translateY(5px) scaleY(.94)}
  50%{transform:translateY(8px) scaleY(.91)}
}

/* CUSCINO: si appoggia sopra invece di restargli accanto */
.pet-zone.activity-cushion{
  z-index:7;
}
.pet-zone.activity-cushion .pet:not(.react-cuddle){
  animation:cushionUseReal 2.2s ease-in-out infinite!important;
}
.pet-zone.activity-cushion .shadow{opacity:.16;transform:scaleX(.8)}
@keyframes cushionUseReal{
  0%,100%{transform:translateY(5px) rotate(-2deg) scale(.97)}
  50%{transform:translateY(7px) rotate(1deg) scale(.99)}
}

/* GIOCATTOLO / CESTA */
.pet-zone.activity-toy .pet{
  animation:toyUseReal .68s ease-in-out infinite!important;
}
.pet-zone.activity-basket .head{
  animation:basketSniff 1s ease-in-out infinite alternate;
  transform-origin:50% 90%;
}
@keyframes toyUseReal{
  0%,100%{transform:translateY(0)}
  45%{transform:translateY(-8px) rotate(2deg)}
  70%{transform:translateY(-3px) rotate(-2deg)}
}
@keyframes basketSniff{
  from{transform:translateY(1px) rotate(-4deg)}
  to{transform:translateY(6px) rotate(5deg)}
}

/* FINESTRA: si ferma sotto e alza la testa per guardare fuori */
.pet-zone.activity-window .head{
  animation:windowLook 2.8s ease-in-out infinite;
  transform-origin:50% 90%;
}
.pet-zone.activity-window .tail{animation-duration:1.4s!important}
@keyframes windowLook{
  0%,100%{transform:translateY(-2px) rotate(-4deg)}
  50%{transform:translateY(-4px) rotate(5deg)}
}

/* L'oggetto che sta usando riceve un feedback discreto */
.room-object.interaction-pulse{
  animation:usedObjectPulse .7s ease-out 1;
}
@keyframes usedObjectPulse{
  0%{filter:brightness(1)}
  40%{filter:brightness(1.12)}
  100%{filter:brightness(1)}
}


/* v8.6 — Home page rifatta da zero */
main.home-layout{
  display:grid;
  gap:18px;
  padding-bottom:96px;
}
.home-block{
  display:grid;
  gap:12px;
}
.home-block-head{
  display:grid;
  gap:6px;
  padding:0 2px;
}
.home-block-head p{
  color:var(--muted);
  font-size:calc(13px + var(--tp-text-extra,0px));
  line-height:1.45;
  font-weight:650;
}
.home-hero-group{gap:14px}
.home-status-group,
.home-care-group,
.home-goals-group{gap:12px}
.home-cards-grid,
.hero-actions-grid{
  display:grid;
  gap:12px;
}
.quick-card,
.routine-card,
.health-card,
.room-comfort-card,
.house-care-card,
.growth-card,
.missions-card,
.day-rhythm-card,
.needs.card{
  border-radius:26px;
}
.quick-card,.routine-card{min-height:118px}
.quick-card{
  display:grid;
  align-content:space-between;
  background:linear-gradient(180deg,#fffaf3 0%,#fff 100%);
}
.routine-card{
  background:linear-gradient(180deg,#faf7f2 0%,#fff 100%);
}
.pet-info-strip{
  padding:16px 16px;
  border-radius:26px;
  background:linear-gradient(180deg,#fffefb 0%,#fff 100%);
}
.pet-info-chip{background:#f7f2ec}
.needs.card,
.day-rhythm-card,
.health-card,
.room-comfort-card,
.house-care-card,
.growth-card,
.missions-card{
  padding:17px;
}
.home-status-group .needs.card,
.home-status-group .day-rhythm-card,
.home-status-group .health-card{
  background:linear-gradient(180deg,#fff 0%,#fdfbf7 100%);
}
.home-care-group .room-comfort-card,
.home-care-group .house-care-card,
.home-care-group .growth-card{
  background:linear-gradient(180deg,#fff 0%,#fcfaf6 100%);
}
.home-goals-group .missions-card{
  background:linear-gradient(180deg,#fff 0%,#fdf9f3 100%);
}
.room{
  border-radius:30px;
  height:418px;
}
.missions-card{overflow:hidden}
.hero-actions-grid .quick-card .primary-btn{margin-top:10px}
.quick-icon{
  width:48px;
  height:48px;
  border-radius:16px;
  background:#f6eee3;
  display:grid;
  place-items:center;
}
.routine-action{min-width:124px}
.health-risk,.day-rhythm-next,.daily-event,.mission-bonus{border-radius:16px}

/* layout più organizzato su schermi larghi */
@media(min-width:640px){
  .hero-actions-grid{
    grid-template-columns:1fr 1fr;
    align-items:stretch;
  }
  .home-cards-grid-status,
  .home-cards-grid-care{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .home-cards-grid-status .needs.card{grid-column:1 / -1}
  .home-cards-grid-care .growth-card{grid-column:1 / -1}
}
@media(min-width:940px){
  main.home-layout{gap:20px}
  .home-block{gap:14px}
  .home-status-group .home-cards-grid-status{
    grid-template-columns:1.1fr .9fr .95fr;
    align-items:start;
  }
  .home-status-group .home-cards-grid-status .needs.card{
    grid-column:auto;
  }
  .home-care-group .home-cards-grid-care{
    grid-template-columns:repeat(3,1fr);
    align-items:start;
  }
}


/* v8.6.1 — Testata home riorganizzata */
.home-topbar{
  display:grid;
  grid-template-columns:1fr;
  gap:13px;
  margin-bottom:18px;
  padding:0;
}
.home-topbar-copy{
  min-width:0;
  padding:3px 2px 0;
}
.day-pill{
  display:inline-flex;
  align-items:center;
  min-height:26px;
  padding:0 10px;
  border-radius:999px;
  background:#eee6dc;
  color:#766a5e;
  font-size:calc(11.5px + var(--tp-text-extra,0px));
  line-height:1;
  letter-spacing:.09em;
  text-transform:uppercase;
  font-weight:900;
}
.home-topbar h1{
  margin-top:8px;
  font-size:30px;
  line-height:1;
  letter-spacing:-.04em;
}
.home-topbar-subtitle{
  margin-top:6px;
  color:var(--muted);
  font-size:calc(13px + var(--tp-text-extra,0px));
  line-height:1.4;
  font-weight:650;
}
.home-top-actions{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  align-items:stretch;
  width:100%;
}
.home-action-btn{
  position:relative;
  min-width:0;
  min-height:62px;
  padding:9px 10px;
  border:1px solid var(--line);
  border-radius:20px;
  background:var(--surface);
  box-shadow:var(--shadow);
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:8px;
  text-align:left;
  color:inherit;
}
.home-action-btn:active{
  transform:scale(.98);
}
.home-action-icon{
  flex:0 0 34px;
  width:34px;
  height:34px;
  border-radius:12px;
  background:var(--surface-2);
  display:grid;
  place-items:center;
  font-size:calc(17px + var(--tp-text-extra,0px));
}
.home-action-copy{
  min-width:0;
  display:grid;
  gap:2px;
}
.home-action-copy small{
  color:var(--muted);
  font-size:calc(9px + var(--tp-text-extra,0px));
  line-height:1;
  letter-spacing:.1em;
  font-weight:900;
}
.home-action-copy strong{
  display:block;
  min-width:0;
  font-size:calc(12px + var(--tp-text-extra,0px));
  line-height:1.15;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.coin-home-action .home-action-icon{
  background:#f7efe0;
}
.notification-top-btn .notification-badge{
  right:7px;
  top:6px;
}
@media(max-width:430px){
  .home-action-btn{
    min-height:58px;
    padding:8px;
    gap:6px;
  }
  .home-action-icon{
    width:31px;
    height:31px;
    flex-basis:31px;
    font-size:calc(16px + var(--tp-text-extra,0px));
  }
  .home-action-copy strong{
    font-size:calc(11.5px + var(--tp-text-extra,0px));
  }
}
@media(max-width:330px){
  .home-top-actions{
    gap:6px;
  }
  .home-action-btn{
    justify-content:center;
  }
  .home-action-copy{
    display:none;
  }
  .home-action-icon{
    width:36px;
    height:36px;
    flex-basis:36px;
  }
  .coin-home-action::after{
    content:attr(data-coins);
  }
}


/* v8.6.2 — Cibo riorganizzato */
.sheet-grid.food-sheet-grid{
  grid-template-columns:1fr 1fr;
  gap:9px;
}
.food-overview-card{
  grid-column:1 / -1;
  padding:14px;
  border-radius:20px;
  background:linear-gradient(180deg,#fff8ed 0%,#faf5ed 100%);
  border:1px solid rgba(110,82,52,.08);
}
.food-overview-top{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
}
.food-overview-top>div{
  min-width:0;
}
.food-overview-top small{
  display:block;
  color:var(--muted);
  font-size:calc(9.5px + var(--tp-text-extra,0px));
  letter-spacing:.11em;
  font-weight:900;
}
.food-overview-top strong{
  display:block;
  margin-top:4px;
  font-size:calc(16px + var(--tp-text-extra,0px));
  line-height:1.15;
}
.food-overview-status{
  flex:0 0 auto;
  padding:6px 8px;
  border-radius:999px;
  background:#fff;
  color:#716458;
  font-size:calc(10.5px + var(--tp-text-extra,0px));
  font-weight:850;
}
.food-overview-meters{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9px;
  margin-top:13px;
}
.food-overview-meter{
  padding:10px;
  border-radius:14px;
  background:rgba(255,255,255,.72);
}
.food-overview-meter>div:first-child{
  display:flex;
  justify-content:space-between;
  gap:8px;
  align-items:center;
  font-size:calc(11.5px + var(--tp-text-extra,0px));
  font-weight:800;
}
.food-overview-meter strong{
  font-size:calc(11.5px + var(--tp-text-extra,0px));
}
.food-overview-bar{
  height:6px;
  margin-top:7px;
  border-radius:99px;
  background:rgba(70,60,50,.08);
  overflow:hidden;
}
.food-overview-bar i{
  display:block;
  height:100%;
  border-radius:99px;
  background:#7c9477;
}
.food-overview-bar i.warn{background:#bf8b55}
.food-overview-bar i.bad{background:#ac6861}
.food-overview-bowls{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  margin-top:10px;
}
.food-overview-bowls span{
  min-width:0;
  padding:6px 8px;
  border-radius:10px;
  background:rgba(255,255,255,.75);
  color:var(--muted);
  font-size:calc(10.5px + var(--tp-text-extra,0px));
  font-weight:750;
}
.food-group-title{
  grid-column:1 / -1;
  margin:7px 2px -1px;
  color:var(--muted);
  font-size:calc(9.5px + var(--tp-text-extra,0px));
  letter-spacing:.12em;
  font-weight:950;
}
.food-action-card{
  min-height:100px;
  padding:13px;
  border-radius:18px;
  background:#faf8f4;
}
.food-action-card .icon{
  font-size:24px;
  margin-bottom:9px;
}
.food-action-card strong{
  font-size:calc(13px + var(--tp-text-extra,0px));
}
.food-action-card small{
  font-size:calc(11.5px + var(--tp-text-extra,0px));
  line-height:1.3;
}
.food-action-primary{
  grid-column:1 / -1;
  min-height:88px;
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  grid-template-rows:auto auto;
  column-gap:10px;
  align-content:center;
  background:#292520;
  color:#fff;
}
.food-action-primary .icon{
  grid-row:1 / 3;
  margin:0;
  width:42px;
  height:42px;
  border-radius:14px;
  background:rgba(255,255,255,.10);
  display:grid;
  place-items:center;
}
.food-action-primary strong{
  align-self:end;
  font-size:calc(14px + var(--tp-text-extra,0px));
  margin:0 0 2px;
}
.food-action-primary small{
  color:rgba(255,255,255,.68);
}
.food-action-bowl{
  background:#f7f1e9;
}
@media(max-width:330px){
  .sheet-grid.food-sheet-grid{
    grid-template-columns:1fr;
  }
  .food-overview-card,
  .food-group-title,
  .food-action-primary{
    grid-column:1;
  }
  .food-overview-meters{
    grid-template-columns:1fr 1fr;
  }
}


/* v8.6.3 — Cura riorganizzata */
.sheet-grid.care-sheet-grid{
  grid-template-columns:1fr 1fr;
  gap:9px;
}
.care-overview-card{
  grid-column:1 / -1;
  padding:14px;
  border-radius:20px;
  background:linear-gradient(180deg,#f6faf6 0%,#f2f7f2 100%);
  border:1px solid rgba(74,108,79,.09);
}
.care-overview-top{
  display:flex;justify-content:space-between;align-items:flex-start;gap:12px;
}
.care-overview-top small{
  display:block;color:var(--muted);font-size:calc(9.5px + var(--tp-text-extra,0px));letter-spacing:.11em;font-weight:900;
}
.care-overview-top strong{
  display:block;margin-top:4px;font-size:calc(16px + var(--tp-text-extra,0px));line-height:1.15;
}
.care-overview-status{
  flex:0 0 auto;padding:6px 8px;border-radius:999px;background:#fff;
  color:#667164;font-size:calc(10.5px + var(--tp-text-extra,0px));font-weight:850;
}
.care-overview-meters{
  display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:13px;
}
.care-overview-meter{
  padding:9px;border-radius:14px;background:rgba(255,255,255,.76);
}
.care-overview-meter>div:first-child{
  display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:calc(10.5px + var(--tp-text-extra,0px));font-weight:800;
}
.care-overview-meter strong{font-size:calc(10.5px + var(--tp-text-extra,0px))}
.care-overview-bar{
  height:6px;margin-top:7px;border-radius:99px;background:rgba(70,60,50,.08);overflow:hidden;
}
.care-overview-bar i{
  display:block;height:100%;border-radius:99px;background:#75947d;
}
.care-overview-bar i.warn{background:#bf8b55}
.care-overview-bar i.bad{background:#ac6861}
.care-overview-details{
  display:flex;gap:7px;flex-wrap:wrap;margin-top:10px;
}
.care-overview-details span{
  padding:6px 8px;border-radius:10px;background:rgba(255,255,255,.78);
  color:var(--muted);font-size:calc(10.5px + var(--tp-text-extra,0px));font-weight:750;
}
.care-group-title{
  grid-column:1 / -1;margin:7px 2px -1px;color:var(--muted);
  font-size:calc(9.5px + var(--tp-text-extra,0px));letter-spacing:.12em;font-weight:950;
}
.care-action-card{
  min-height:101px;padding:13px;border-radius:18px;background:#fafaf7;
}
.care-action-card .icon{font-size:24px;margin-bottom:9px}
.care-action-card strong{font-size:calc(13px + var(--tp-text-extra,0px))}
.care-action-card small{font-size:calc(11.5px + var(--tp-text-extra,0px));line-height:1.3}
.care-action-primary{
  grid-column:1 / -1;min-height:88px;display:grid;
  grid-template-columns:42px minmax(0,1fr);grid-template-rows:auto auto;
  column-gap:10px;align-content:center;color:#fff;background:#365043;
}
.care-action-primary .icon{
  grid-row:1 / 3;margin:0;width:42px;height:42px;border-radius:14px;
  background:rgba(255,255,255,.11);display:grid;place-items:center;
}
.care-action-primary strong{align-self:end;margin:0 0 2px;font-size:calc(14px + var(--tp-text-extra,0px))}
.care-action-primary small{color:rgba(255,255,255,.72)}
.care-action-primary.care-tone-danger{background:#75504e}
.care-action-primary.care-tone-warn{background:#856747}
.care-action-primary.care-tone-calm{background:#536579}
.care-action-primary.care-tone-soft{background:#7a6173}
.care-action-primary.care-tone-good{background:#365043}
.care-action-hygiene{background:#f8f5ef}
.care-action-health{background:#f8f3f2}
.care-action-wellbeing{background:#f4f5f7}
@media(max-width:330px){
  .sheet-grid.care-sheet-grid{grid-template-columns:1fr}
  .care-overview-card,.care-group-title,.care-action-primary{grid-column:1}
  .care-overview-meters{grid-template-columns:1fr 1fr}
}


/* v8.6.4 — Gioca riorganizzato */
.sheet-grid.play-sheet-grid{
  grid-template-columns:1fr 1fr;
  gap:9px;
}
.play-overview-card{
  grid-column:1 / -1;
  padding:14px;
  border-radius:20px;
  background:linear-gradient(180deg,#f8f6ff 0%,#f4f2fa 100%);
  border:1px solid rgba(91,79,126,.08);
}
.play-overview-top{
  display:flex;justify-content:space-between;align-items:flex-start;gap:12px;
}
.play-overview-top small{
  display:block;color:var(--muted);font-size:calc(9.5px + var(--tp-text-extra,0px));letter-spacing:.11em;font-weight:900;
}
.play-overview-top strong{
  display:block;margin-top:4px;font-size:calc(16px + var(--tp-text-extra,0px));line-height:1.15;
}
.play-overview-status{
  flex:0 0 auto;padding:6px 8px;border-radius:999px;background:#fff;
  color:#6c6678;font-size:calc(10.5px + var(--tp-text-extra,0px));font-weight:850;
}
.play-overview-meters{
  display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:13px;
}
.play-overview-meter{
  padding:9px;border-radius:14px;background:rgba(255,255,255,.78);
}
.play-overview-meter>div:first-child{
  display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:calc(10.5px + var(--tp-text-extra,0px));font-weight:800;
}
.play-overview-meter strong{font-size:calc(10.5px + var(--tp-text-extra,0px))}
.play-overview-bar{
  height:6px;margin-top:7px;border-radius:99px;background:rgba(70,60,50,.08);overflow:hidden;
}
.play-overview-bar i{
  display:block;height:100%;border-radius:99px;background:#8a7cad;
}
.play-overview-bar i.warn{background:#bd8c55}
.play-overview-bar i.bad{background:#aa6767}
.play-overview-toys{
  display:flex;gap:7px;flex-wrap:wrap;margin-top:10px;
}
.play-overview-toys span{
  padding:6px 8px;border-radius:10px;background:rgba(255,255,255,.82);
  color:var(--muted);font-size:calc(10.5px + var(--tp-text-extra,0px));font-weight:750;
}
.play-group-title{
  grid-column:1 / -1;margin:7px 2px -1px;color:var(--muted);
  font-size:calc(9.5px + var(--tp-text-extra,0px));letter-spacing:.12em;font-weight:950;
}
.play-action-card{
  min-height:101px;padding:13px;border-radius:18px;background:#f8f7fb;
}
.play-action-card .icon{font-size:24px;margin-bottom:9px}
.play-action-card strong{font-size:calc(13px + var(--tp-text-extra,0px))}
.play-action-card small{font-size:calc(11.5px + var(--tp-text-extra,0px));line-height:1.3}
.play-action-primary{
  grid-column:1 / -1;min-height:88px;display:grid;
  grid-template-columns:42px minmax(0,1fr);grid-template-rows:auto auto;
  column-gap:10px;align-content:center;background:#554879;color:#fff;
}
.play-action-primary .icon{
  grid-row:1 / 3;margin:0;width:42px;height:42px;border-radius:14px;
  background:rgba(255,255,255,.12);display:grid;place-items:center;
}
.play-action-primary strong{align-self:end;margin:0 0 2px;font-size:calc(14px + var(--tp-text-extra,0px))}
.play-action-primary small{color:rgba(255,255,255,.73)}
.play-action-primary.play-tone-sleep{background:#58677b}
.play-action-primary.play-tone-calm{background:#607083}
.play-action-primary.play-tone-soft{background:#7a6077}
.play-action-primary.play-tone-active{background:#65538c}
.play-action-primary.play-tone-arcade{background:#3f526c}
.play-action-toy{background:#faf6ee}
.play-action-minigame{background:#f2f4fa}
.play-action-tools{background:#f6f5f2}
@media(max-width:330px){
  .sheet-grid.play-sheet-grid{grid-template-columns:1fr}
  .play-overview-card,.play-group-title,.play-action-primary{grid-column:1}
  .play-overview-meters{grid-template-columns:1fr 1fr}
}


/* v8.6.5 — Stanza riorganizzata */
.sheet-grid.room-sheet-grid{
  grid-template-columns:1fr 1fr;
  gap:9px;
}
.room-overview-card{
  grid-column:1 / -1;
  padding:14px;
  border-radius:20px;
  background:linear-gradient(180deg,#faf7f1 0%,#f5f0e8 100%);
  border:1px solid rgba(103,82,56,.09);
}
.room-overview-top{
  display:flex;justify-content:space-between;align-items:flex-start;gap:12px;
}
.room-overview-top small{
  display:block;color:var(--muted);font-size:calc(9.5px + var(--tp-text-extra,0px));letter-spacing:.11em;font-weight:900;
}
.room-overview-top strong{
  display:block;margin-top:4px;font-size:calc(16px + var(--tp-text-extra,0px));line-height:1.15;
}
.room-overview-status{
  flex:0 0 auto;padding:6px 8px;border-radius:999px;background:#fff;
  color:#746858;font-size:calc(10.5px + var(--tp-text-extra,0px));font-weight:850;
}
.room-overview-meters{
  display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:13px;
}
.room-overview-meter{
  padding:9px;border-radius:14px;background:rgba(255,255,255,.78);
}
.room-overview-meter>div:first-child{
  display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:calc(10.5px + var(--tp-text-extra,0px));font-weight:800;
}
.room-overview-meter strong{font-size:calc(10.5px + var(--tp-text-extra,0px))}
.room-overview-bar{
  height:6px;margin-top:7px;border-radius:99px;background:rgba(70,60,50,.08);overflow:hidden;
}
.room-overview-bar i{
  display:block;height:100%;border-radius:99px;background:#8c8f72;
}
.room-overview-bar i.warn{background:#bd8a55}
.room-overview-bar i.bad{background:#a76761}
.room-overview-details{
  display:flex;gap:7px;flex-wrap:wrap;margin-top:10px;
}
.room-overview-details span{
  padding:6px 8px;border-radius:10px;background:rgba(255,255,255,.82);
  color:var(--muted);font-size:calc(10.5px + var(--tp-text-extra,0px));font-weight:750;
}
.room-group-title{
  grid-column:1 / -1;margin:7px 2px -1px;color:var(--muted);
  font-size:calc(9.5px + var(--tp-text-extra,0px));letter-spacing:.12em;font-weight:950;
}
.room-action-card{
  min-height:101px;padding:13px;border-radius:18px;background:#faf8f4;
}
.room-action-card .icon{font-size:24px;margin-bottom:9px}
.room-action-card strong{font-size:calc(13px + var(--tp-text-extra,0px))}
.room-action-card small{font-size:calc(11.5px + var(--tp-text-extra,0px));line-height:1.3}
.room-action-primary{
  grid-column:1 / -1;min-height:88px;display:grid;
  grid-template-columns:42px minmax(0,1fr);grid-template-rows:auto auto;
  column-gap:10px;align-content:center;background:#5f604d;color:#fff;
}
.room-action-primary .icon{
  grid-row:1 / 3;margin:0;width:42px;height:42px;border-radius:14px;
  background:rgba(255,255,255,.12);display:grid;place-items:center;
}
.room-action-primary strong{align-self:end;margin:0 0 2px;font-size:calc(14px + var(--tp-text-extra,0px))}
.room-action-primary small{color:rgba(255,255,255,.73)}
.room-action-primary.room-tone-sleep{background:#536174}
.room-action-primary.room-tone-warn{background:#806347}
.room-action-primary.room-tone-build{background:#75694f}
.room-action-primary.room-tone-good{background:#59624c}
.room-action-environment{background:#f8f4ec}
.room-action-furniture{background:#f3f1ed}
.room-action-rest{background:#f1f3f7}
.room-action-management{background:#f6f3f0}
@media(max-width:330px){
  .sheet-grid.room-sheet-grid{grid-template-columns:1fr}
  .room-overview-card,.room-group-title,.room-action-primary{grid-column:1}
  .room-overview-meters{grid-template-columns:1fr 1fr}
}


/* v8.7 — Impostazioni riorganizzate */
.sheet-grid.settings-sheet-grid{
  grid-template-columns:1fr 1fr;
  gap:9px;
}
.settings-overview-card{
  grid-column:1 / -1;
  padding:14px;
  border-radius:20px;
  background:linear-gradient(180deg,#f4f5f6 0%,#eff1f2 100%);
  border:1px solid rgba(68,75,82,.08);
}
.settings-overview-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.settings-overview-top small{
  display:block;
  color:var(--muted);
  font-size:calc(9.5px + var(--tp-text-extra,0px));
  letter-spacing:.12em;
  font-weight:900;
}
.settings-overview-top strong{
  display:block;
  margin-top:4px;
  font-size:calc(17px + var(--tp-text-extra,0px));
  line-height:1.1;
}
.settings-overview-top div>span{
  display:block;
  margin-top:4px;
  color:var(--muted);
  font-size:calc(10.5px + var(--tp-text-extra,0px));
  font-weight:700;
}
.settings-overview-status{
  flex:0 0 auto;
  padding:6px 8px;
  border-radius:999px;
  background:#fff;
  color:#626970;
  font-size:calc(10.5px + var(--tp-text-extra,0px));
  font-weight:850;
}
.settings-overview-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:7px;
  margin-top:13px;
}
.settings-overview-item{
  min-width:0;
  padding:9px 7px;
  border-radius:14px;
  background:rgba(255,255,255,.68);
  display:flex;
  align-items:center;
  gap:6px;
}
.settings-overview-item>span{
  flex:0 0 auto;
  font-size:calc(15px + var(--tp-text-extra,0px));
}
.settings-overview-item div{
  min-width:0;
}
.settings-overview-item small{
  display:block;
  color:var(--muted);
  font-size:calc(9px + var(--tp-text-extra,0px));
  font-weight:850;
}
.settings-overview-item strong{
  display:block;
  margin-top:2px;
  font-size:calc(10.5px + var(--tp-text-extra,0px));
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.settings-overview-item.active{
  background:#fff;
}
.settings-group-title{
  grid-column:1 / -1;
  margin:7px 2px -1px;
  color:var(--muted);
  font-size:calc(9.5px + var(--tp-text-extra,0px));
  letter-spacing:.12em;
  font-weight:950;
}
.settings-action-card{
  min-height:101px;
  padding:13px;
  border-radius:18px;
  background:#f7f7f5;
}
.settings-action-card .icon{
  font-size:24px;
  margin-bottom:9px;
}
.settings-action-card strong{
  font-size:calc(13px + var(--tp-text-extra,0px));
}
.settings-action-card small{
  font-size:calc(11.5px + var(--tp-text-extra,0px));
  line-height:1.3;
}
.settings-action-primary{
  grid-column:1 / -1;
  min-height:88px;
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  grid-template-rows:auto auto;
  column-gap:10px;
  align-content:center;
  background:#4d555d;
  color:#fff;
}
.settings-action-primary .icon{
  grid-row:1 / 3;
  margin:0;
  width:42px;
  height:42px;
  border-radius:14px;
  background:rgba(255,255,255,.11);
  display:grid;
  place-items:center;
}
.settings-action-primary strong{
  align-self:end;
  margin:0 0 2px;
  font-size:calc(14px + var(--tp-text-extra,0px));
}
.settings-action-primary small{
  color:rgba(255,255,255,.72);
}
.settings-action-primary.settings-tone-cloud{background:#465f78}
.settings-action-primary.settings-tone-notify{background:#6d6047}
.settings-action-primary.settings-tone-good{background:#4f6255}
.settings-action-profile{background:#f8f4ef}
.settings-action-data{background:#f1f5f8}
.settings-action-progress{background:#f6f2f8}
.settings-action-app{background:#f3f4f5}
.settings-action-game{background:#f8f5ef}

/* Dock: il testo Impostazioni deve rimanere leggibile anche su iPhone */
.dock-item[data-panel="more"] small{
  font-size:calc(10px + var(--tp-text-extra,0px));
  letter-spacing:-.02em;
}

@media(max-width:390px){
  .settings-overview-grid{
    grid-template-columns:1fr 1fr;
  }
}
@media(max-width:330px){
  .sheet-grid.settings-sheet-grid{
    grid-template-columns:1fr;
  }
  .settings-overview-card,
  .settings-group-title,
  .settings-action-primary{
    grid-column:1;
  }
}


/* v8.7.1 — Obiettivi completamente riorganizzati */
.achievements-sheet{
  max-height:92dvh;
}
.achievement-sheet-head{
  align-items:flex-start;
}
.achievement-sheet-head>div{
  min-width:0;
}
.achievement-sheet-head p{
  margin-top:5px;
  color:var(--muted);
  font-size:calc(11.5px + var(--tp-text-extra,0px));
  line-height:1.35;
  font-weight:650;
}
.achievement-dashboard{
  display:grid;
  grid-template-columns:108px minmax(0,1fr);
  gap:10px;
  margin-bottom:11px;
}
.achievement-dashboard .achievement-completion-ring{
  border-radius:24px;
}
.achievement-dashboard-stats{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:7px;
}
.achievement-dashboard-stats>div{
  min-width:0;
  padding:10px 6px;
  border-radius:17px;
  background:var(--surface-2);
  text-align:center;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.achievement-dashboard-stats span{font-size:calc(18px + var(--tp-text-extra,0px))}
.achievement-dashboard-stats strong{margin-top:4px;font-size:calc(15px + var(--tp-text-extra,0px))}
.achievement-dashboard-stats small{
  margin-top:2px;color:var(--muted);font-size:calc(9.5px + var(--tp-text-extra,0px));font-weight:800;
}

.achievement-next-card{
  display:grid;
  grid-template-columns:48px minmax(0,1fr) auto;
  gap:11px;
  align-items:center;
  padding:13px;
  margin-bottom:14px;
  border-radius:21px;
  background:linear-gradient(180deg,#faf8f2 0%,#f6f3ed 100%);
  border:1px solid rgba(76,64,50,.08);
}
.achievement-next-card.complete{
  background:linear-gradient(180deg,#f4f8f1 0%,#edf4e9 100%);
}
.achievement-next-icon{
  width:48px;height:48px;border-radius:15px;background:#fff;
  display:grid;place-items:center;font-size:25px;
  box-shadow:0 6px 18px rgba(65,50,35,.07);
}
.achievement-next-main{min-width:0}
.achievement-next-main>.eyebrow{font-size:calc(9px + var(--tp-text-extra,0px))}
.achievement-next-title-row{
  display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:3px;
}
.achievement-next-title-row>strong{font-size:calc(14px + var(--tp-text-extra,0px))}
.achievement-next-main p{
  margin-top:4px;color:var(--muted);font-size:calc(11.5px + var(--tp-text-extra,0px));line-height:1.3;font-weight:650;
}
.achievement-next-progress{margin-top:7px}
.achievement-next-progress>div:first-child{
  display:flex;justify-content:space-between;color:var(--muted);font-size:calc(9.5px + var(--tp-text-extra,0px));font-weight:850;
}
.achievement-next-reward{
  text-align:center;min-width:42px;padding:7px 6px;border-radius:13px;background:#fff;
}
.achievement-next-reward strong{display:block;font-size:calc(14px + var(--tp-text-extra,0px))}
.achievement-next-reward small{font-size:calc(12px + var(--tp-text-extra,0px))}

.achievement-section-label{
  display:flex;
  justify-content:space-between;
  align-items:end;
  margin:2px 2px 7px;
}
.achievement-section-label>div{
  display:flex;align-items:center;justify-content:space-between;width:100%;gap:10px;
}
.achievement-section-label strong{
  color:var(--muted);font-size:calc(10.5px + var(--tp-text-extra,0px));font-weight:850;
}
.achievement-category-label{margin-top:13px}

.achievement-state-filters{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:7px;
}
.achievement-state-filter{
  min-width:0;
  border:1px solid rgba(70,55,45,.07);
  border-radius:15px;
  padding:9px 7px;
  background:var(--surface-2);
  color:var(--muted);
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:5px;
}
.achievement-state-filter strong{
  min-width:0;font-size:calc(10.5px + var(--tp-text-extra,0px));white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.achievement-state-filter small{
  flex:0 0 auto;
  min-width:22px;
  padding:3px 5px;
  border-radius:999px;
  background:#fff;
  text-align:center;
  font-size:calc(9.5px + var(--tp-text-extra,0px));
  font-weight:900;
}
.achievement-state-filter.active{
  background:#282421;color:#fff;border-color:#282421;
}
.achievement-state-filter.active small{
  background:rgba(255,255,255,.14);color:#fff;
}

.achievement-filters{
  display:flex;
  gap:7px;
  overflow-x:auto;
  padding:1px 0 4px;
  scrollbar-width:none;
}
.achievement-filter{
  min-width:max-content;
  padding:8px 10px;
  border-radius:15px;
  display:grid;
  grid-template-columns:20px auto;
  grid-template-rows:auto auto;
  column-gap:6px;
  align-items:center;
  background:var(--surface-2);
}
.achievement-filter>span{
  grid-row:1 / 3;
  font-size:calc(16px + var(--tp-text-extra,0px));
}
.achievement-filter>strong{
  font-size:calc(10.5px + var(--tp-text-extra,0px));
  line-height:1;
}
.achievement-filter>small{
  margin-top:2px;
  font-size:calc(9px + var(--tp-text-extra,0px));
  font-weight:850;
  opacity:.7;
}
.achievement-filter.active{
  background:#282421;color:#fff;
}

.achievement-gallery{
  display:grid;
  gap:9px;
  margin-top:12px;
}
.steam-achievement-card{
  grid-template-columns:52px minmax(0,1fr) 48px;
  gap:10px;
  align-items:center;
  padding:12px;
  border-radius:19px;
  opacity:1;
}
.steam-achievement-card.locked{
  opacity:1;
  background:#f7f5f1;
}
.steam-achievement-card.unlocked{
  background:#f3f8f0;
}
.steam-achievement-card.secret{
  background:#f1f0ef;
}
.steam-achievement-icon{
  position:relative;
  width:52px;height:52px;border-radius:15px;font-size:25px;
}
.steam-achievement-icon>span{
  position:relative;z-index:1;
}
.steam-achievement-icon>b{
  position:absolute;
  right:-3px;bottom:-3px;
  width:19px;height:19px;border-radius:50%;
  display:grid;place-items:center;
  background:#6f8065;color:#fff;
  border:3px solid #f3f8f0;
  font-size:calc(10.5px + var(--tp-text-extra,0px));
  z-index:2;
}
.steam-achievement-icon>b.lock-mark{
  background:#b8afa7;
  border-color:#f7f5f1;
  font-size:calc(13px + var(--tp-text-extra,0px));
  line-height:1;
}
.steam-achievement-card.locked .steam-achievement-icon{
  filter:none;
  background:#fff;
}
.steam-achievement-card.secret .steam-achievement-icon{
  background:#e8e5e1;
}
.steam-achievement-meta{
  display:flex;align-items:center;gap:5px;flex-wrap:wrap;
}
.achievement-state-label{
  display:inline-flex;
  padding:4px 6px;
  border-radius:999px;
  background:#ebe7e2;
  color:#756d66;
  font-size:calc(9px + var(--tp-text-extra,0px));
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.steam-achievement-card.unlocked .achievement-state-label{
  background:#dfeadc;
  color:#5f765c;
}
.steam-achievement-name{
  display:block;
  margin-top:5px;
  font-size:calc(14px + var(--tp-text-extra,0px));
  line-height:1.2;
}
.steam-achievement-main p{
  margin-top:3px;
  font-size:calc(11.5px + var(--tp-text-extra,0px));
  line-height:1.35;
}
.achievement-card-progress{
  margin-top:7px;
}
.achievement-card-progress>div:first-child{
  font-size:calc(9.5px + var(--tp-text-extra,0px));
}
.achievement-card-bar{
  height:6px;
  margin-top:4px;
}
.achievement-unlock-row{
  display:flex;
  justify-content:space-between;
  gap:8px;
  margin-top:7px;
  color:#667a61;
  font-size:calc(9.5px + var(--tp-text-extra,0px));
  font-weight:850;
}
.achievement-unlock-row strong{
  color:var(--muted);
  font-size:calc(9.5px + var(--tp-text-extra,0px));
}
.achievement-secret-note{
  margin-top:7px;
  padding:6px 8px;
  border-radius:9px;
  background:#e8e5e1;
  font-size:calc(9.5px + var(--tp-text-extra,0px));
}
.steam-achievement-reward{
  min-width:48px;
  display:grid;
  gap:5px;
  text-align:center;
}
.steam-achievement-reward>div{
  padding:7px 4px;
  border-radius:12px;
  background:#fff;
}
.steam-achievement-reward strong{
  font-size:calc(13px + var(--tp-text-extra,0px));
}
.steam-achievement-reward em{
  margin:0;
  font-size:calc(9.5px + var(--tp-text-extra,0px));
}
.achievement-empty{
  margin-top:12px;
  padding:26px 18px;
  border-radius:20px;
  background:var(--surface-2);
  text-align:center;
}
.achievement-empty>span{font-size:28px}
.achievement-empty>strong{display:block;margin-top:7px;font-size:calc(14px + var(--tp-text-extra,0px))}
.achievement-empty p{
  margin-top:4px;color:var(--muted);font-size:calc(11.5px + var(--tp-text-extra,0px));line-height:1.35;font-weight:650;
}

@media(max-width:390px){
  .achievement-dashboard{
    grid-template-columns:94px minmax(0,1fr);
  }
  .achievement-dashboard-stats{
    grid-template-columns:1fr;
    gap:5px;
  }
  .achievement-dashboard-stats>div{
    min-height:28px;
    padding:5px 7px;
    display:grid;
    grid-template-columns:20px 1fr auto;
    gap:4px;
    align-items:center;
    text-align:left;
  }
  .achievement-dashboard-stats span{font-size:calc(14px + var(--tp-text-extra,0px))}
  .achievement-dashboard-stats strong{margin:0;font-size:calc(12px + var(--tp-text-extra,0px))}
  .achievement-dashboard-stats small{margin:0;font-size:calc(9px + var(--tp-text-extra,0px))}
}
@media(max-width:350px){
  .achievement-next-card{
    grid-template-columns:42px minmax(0,1fr);
  }
  .achievement-next-icon{width:42px;height:42px}
  .achievement-next-reward{
    grid-column:2;
    justify-self:start;
  }
  .steam-achievement-card{
    grid-template-columns:46px minmax(0,1fr);
  }
  .steam-achievement-icon{width:46px;height:46px}
  .steam-achievement-reward{
    grid-column:2;
    grid-template-columns:48px auto;
    align-items:center;
    justify-content:start;
  }
}


/* v8.8 — Comparto sonoro */
.audio-sheet{max-height:90dvh}.audio-sheet-subtitle{margin-top:5px;color:var(--muted);font-size:calc(11.5px + var(--tp-text-extra,0px));line-height:1.35;font-weight:650}.audio-hero{display:grid;grid-template-columns:50px minmax(0,1fr) auto;gap:11px;align-items:center;padding:14px;border-radius:21px;background:linear-gradient(180deg,#f3f7f4 0%,#edf3ee 100%);border:1px solid rgba(70,100,75,.08)}.audio-hero.muted{background:#f2f1ef}.audio-hero-icon{width:50px;height:50px;border-radius:15px;background:#fff;display:grid;place-items:center;font-size:24px;box-shadow:0 6px 18px rgba(50,60,50,.07)}.audio-hero h3{font-size:calc(15px + var(--tp-text-extra,0px))}.audio-hero p{margin-top:4px;color:var(--muted);font-size:calc(11.5px + var(--tp-text-extra,0px));line-height:1.3;font-weight:650}.audio-master-toggle{border:0;min-width:44px;height:31px;border-radius:999px;background:#526f5a;color:#fff;font-size:calc(11.5px + var(--tp-text-extra,0px));font-weight:950}.audio-master-toggle.off{background:#aaa49d}.audio-controls{display:grid;gap:8px;margin-top:12px}.audio-range-row{display:grid;gap:10px;padding:12px;border-radius:18px;background:var(--surface-2)}.audio-range-row>span{display:grid;grid-template-columns:28px minmax(0,1fr);grid-template-rows:auto auto;column-gap:8px;align-items:center}.audio-range-row>span>b{grid-row:1/3;width:28px;height:28px;border-radius:10px;background:#fff;display:grid;place-items:center;font-size:calc(14px + var(--tp-text-extra,0px))}.audio-range-row>span>strong{font-size:calc(12px + var(--tp-text-extra,0px))}.audio-range-row>span>small{margin-top:2px;color:var(--muted);font-size:calc(9.5px + var(--tp-text-extra,0px));font-weight:650}.audio-range-row>div{display:grid;grid-template-columns:minmax(0,1fr) 38px;gap:9px;align-items:center}.audio-range-row input[type="range"]{width:100%;accent-color:#5f7565}.audio-range-row output{font-size:calc(10.5px + var(--tp-text-extra,0px));font-weight:900;text-align:right;color:var(--muted)}.audio-toggle-row{margin-top:9px;padding:12px;border-radius:18px;background:#f7f4ef;display:flex;align-items:center;justify-content:space-between;gap:12px}.audio-toggle-row>span{display:flex;gap:9px;align-items:center;min-width:0}.audio-toggle-row>span>b{flex:0 0 30px;width:30px;height:30px;border-radius:10px;background:#fff;display:grid;place-items:center}.audio-toggle-row strong{display:block;font-size:calc(12px + var(--tp-text-extra,0px))}.audio-toggle-row small{display:block;margin-top:2px;color:var(--muted);font-size:calc(9.5px + var(--tp-text-extra,0px));line-height:1.3;font-weight:650}.audio-toggle-row input{position:absolute;opacity:0;pointer-events:none}.audio-toggle-row>i{flex:0 0 42px;height:24px;border-radius:999px;background:#c9c5bf;position:relative;transition:.2s}.audio-toggle-row>i::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 2px 7px rgba(0,0,0,.12);transition:.2s}.audio-toggle-row input:checked+i{background:#607861}.audio-toggle-row input:checked+i::after{transform:translateX(18px)}.audio-preview-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.audio-preview-btn{min-width:0;padding:11px 7px;border:1px solid var(--line);border-radius:16px;background:#fff;display:grid;justify-items:center;gap:3px}.audio-preview-btn span{font-size:calc(20px + var(--tp-text-extra,0px))}.audio-preview-btn strong{font-size:calc(10.5px + var(--tp-text-extra,0px))}.audio-preview-btn small{color:var(--muted);font-size:calc(9.5px + var(--tp-text-extra,0px));font-weight:750}.audio-footnote{margin:12px 3px 2px;color:var(--muted);font-size:calc(10.5px + var(--tp-text-extra,0px));line-height:1.4;font-weight:650}@media(max-width:360px){.audio-hero{grid-template-columns:44px minmax(0,1fr)}.audio-hero-icon{width:44px;height:44px}.audio-master-toggle{grid-column:2;justify-self:start}.audio-preview-grid{grid-template-columns:1fr}.audio-preview-btn{grid-template-columns:28px 1fr auto;justify-items:start;align-items:center;text-align:left}}

.play-action-outdoor{background:linear-gradient(180deg,#eef6ec 0%,#f5f8f1 100%)}
.walk-sheet{max-height:94dvh;overflow-y:auto}.walk-sheet-head{align-items:flex-start}.walk-sheet-head p{margin-top:5px;color:var(--muted);font-size:calc(11.5px + var(--tp-text-extra,0px));line-height:1.35;font-weight:650}
.walk-hud{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-bottom:10px}.walk-hud>div{min-width:0;padding:9px 6px;border-radius:16px;background:var(--surface-2);text-align:center}.walk-hud span{font-size:calc(16px + var(--tp-text-extra,0px))}.walk-hud strong{display:block;margin-top:3px;font-size:calc(13px + var(--tp-text-extra,0px))}.walk-hud small{display:block;margin-top:2px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));font-weight:750}
.walk-scene{position:relative;height:248px;overflow:hidden;border-radius:25px;background:linear-gradient(#b9d9ec 0 43%,#a7c889 43% 68%,#8cb46e 68%);border:1px solid rgba(61,86,56,.08)}
.walk-sky{position:absolute;inset:0 0 auto;height:44%;overflow:hidden}.walk-sun{position:absolute;right:24px;top:19px;width:34px;height:34px;border-radius:50%;background:#f6dd84;box-shadow:0 0 0 10px rgba(246,221,132,.15)}
.walk-cloud{position:absolute;width:48px;height:14px;border-radius:20px;background:rgba(255,255,255,.75)}.walk-cloud::before,.walk-cloud::after{content:"";position:absolute;border-radius:50%;background:inherit}.walk-cloud::before{width:19px;height:19px;left:8px;top:-8px}.walk-cloud::after{width:25px;height:25px;right:5px;top:-12px}.walk-cloud.cloud-a{left:14%;top:29px}.walk-cloud.cloud-b{left:48%;top:17px;transform:scale(.72)}
.walk-neighborhood{position:absolute;inset:32% 0 54px}.walk-house{position:absolute;width:52px;height:43px;background:#ead0ab;border-radius:7px 7px 3px 3px;bottom:13px;box-shadow:inset 0 -8px rgba(105,76,55,.05)}.walk-house::before{content:"";position:absolute;left:-6px;right:-6px;top:-17px;height:27px;background:#b86f59;clip-path:polygon(50% 0,100% 100%,0 100%)}.walk-house i{position:absolute;left:9px;bottom:10px;width:13px;height:17px;background:#936d58;border-radius:2px 2px 0 0}.walk-house b{position:absolute;right:8px;top:10px;width:14px;height:12px;background:#b9d9e8;border:3px solid #f8eee0}.walk-house.house-a{left:5%}.walk-house.house-b{left:33%;transform:scale(.82);background:#dfc0b4}
.walk-tree{position:absolute;bottom:10px;width:42px;height:60px}.walk-tree i{position:absolute;left:18px;bottom:0;width:7px;height:29px;background:#7b5b45;border-radius:4px}.walk-tree b{position:absolute;left:2px;top:0;width:38px;height:38px;border-radius:48% 52% 45% 55%;background:#6fa260;box-shadow:-10px 7px 0 -3px #78ac67,10px 8px 0 -4px #5f9653}.walk-tree.tree-a{left:59%}.walk-tree.tree-b{left:76%;transform:scale(.78)}
.walk-bench{position:absolute;left:46%;bottom:14px;width:34px;height:15px;border-top:5px solid #8a6648;border-bottom:4px solid #8a6648}.walk-bench::before,.walk-bench::after{content:"";position:absolute;bottom:-8px;width:4px;height:10px;background:#69513d}.walk-bench::before{left:5px}.walk-bench::after{right:5px}
.walk-park-gate{position:absolute;right:4%;bottom:5px;width:61px;height:66px;border:4px solid #6b855e;border-bottom:0;border-radius:30px 30px 0 0;background:rgba(255,255,255,.14);display:flex;flex-direction:column;align-items:center;justify-content:center}.walk-park-gate span{font-size:24px}.walk-park-gate strong{margin-top:2px;font-size:calc(9px + var(--tp-text-extra,0px));letter-spacing:.1em;color:#43563c}
.walk-path{position:absolute;left:4%;right:4%;bottom:22px;height:44px;border-radius:30px;background:#d7c8ac;transform:skewX(-7deg);box-shadow:inset 0 5px rgba(255,255,255,.18)}.walk-path-line{position:absolute;left:5%;right:5%;top:21px;height:3px;border-radius:99px;background:rgba(119,100,75,.18)}.walk-route-fill{position:absolute;left:5%;top:21px;height:3px;width:0;border-radius:99px;background:#677f5d;transition:width .45s ease}.walk-stop-dot{position:absolute;top:17px;width:10px;height:10px;border-radius:50%;background:#fff;border:2px solid rgba(94,78,61,.18)}.walk-stop-dot.dot-a{left:20%}.walk-stop-dot.dot-b{left:40%}.walk-stop-dot.dot-c{left:61%}.walk-stop-dot.dot-d{left:81%}
.walk-pet-marker{position:absolute;left:8%;top:-18px;width:48px;height:48px;transform:translateX(-50%) skewX(7deg);transition:left .48s cubic-bezier(.2,.8,.2,1);z-index:5}.walk-pet-marker>span{position:absolute;inset:0;border-radius:17px;background:#fff;display:grid;place-items:center;font-size:27px;box-shadow:0 8px 18px rgba(55,46,38,.14);animation:walkPetBob .6s ease-in-out infinite alternate}.walk-pet-marker>i{position:absolute;left:-27px;top:18px;width:34px;height:2px;background:#9b6a5d;transform:rotate(-15deg);transform-origin:right center}@keyframes walkPetBob{to{transform:translateY(-3px) rotate(2deg)}}
.walk-scene.night{background:linear-gradient(#283c5d 0 43%,#5e7656 43% 68%,#55734c 68%)}.walk-scene.night .walk-sun{background:#f3f0ce;box-shadow:0 0 0 9px rgba(245,242,211,.08)}.walk-scene.night .walk-cloud{opacity:.22}.walk-scene.night::after{content:"·  ✦   ·      ✧    ·   ✦";position:absolute;left:20px;top:11px;color:rgba(255,255,255,.7);letter-spacing:15px;font-size:calc(11.5px + var(--tp-text-extra,0px))}.walk-scene.night .walk-house b{box-shadow:inset 0 0 8px #f7db83;background:#e8d17f}
.walk-park-scene{position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity .35s ease;background:linear-gradient(#b9d9ec 0 39%,#93c77a 39%)}.walk-scene.at-park .walk-neighborhood,.walk-scene.at-park .walk-path,.walk-scene.at-park .walk-sky{opacity:0}.walk-scene.at-park .walk-park-scene{opacity:1}.walk-scene.night .walk-park-scene{background:linear-gradient(#283c5d 0 39%,#557b50 39%)}
.park-tree{position:absolute;width:62px;height:100px;bottom:27px}.park-tree i{position:absolute;left:27px;bottom:0;width:9px;height:48px;background:#765842;border-radius:5px}.park-tree b{position:absolute;left:0;top:0;width:62px;height:66px;border-radius:50%;background:#5f9955;box-shadow:-17px 15px 0 -6px #6aa75d,18px 13px 0 -7px #4f8b49}.park-tree-a{left:7%}.park-tree-b{right:8%;transform:scale(.85)}.park-bush{position:absolute;bottom:32px;width:60px;height:28px;border-radius:50% 50% 35% 35%;background:#6aa45b}.bush-a{left:27%}.bush-b{right:28%;transform:scale(.8)}.park-fountain{position:absolute;left:49%;top:53%;width:47px;height:25px;border-radius:50%;background:#c7c3bb;display:grid;place-items:center;box-shadow:inset 0 0 0 5px #a9cbd7}.park-bench-large{position:absolute;right:22%;bottom:43px;width:53px;height:20px;border-top:6px solid #8a6547;border-bottom:5px solid #8a6547}.park-pet{position:absolute;left:50%;bottom:43px;transform:translateX(-50%);width:64px;height:64px;border-radius:21px;background:#fff;display:grid;place-items:center;font-size:35px;box-shadow:0 10px 24px rgba(43,58,40,.16);animation:parkPetIdle 1.5s ease-in-out infinite alternate}@keyframes parkPetIdle{to{transform:translate(-50%,-4px) rotate(2deg)}}
.walk-status-card{display:grid;grid-template-columns:42px minmax(0,1fr);gap:10px;align-items:center;margin-top:10px;padding:12px;border-radius:19px;background:var(--surface-2)}.walk-status-icon{width:42px;height:42px;border-radius:13px;background:#fff;display:grid;place-items:center;font-size:22px}.walk-status-card small{display:block;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));letter-spacing:.1em;font-weight:900}.walk-status-card strong{display:block;margin-top:3px;font-size:calc(13px + var(--tp-text-extra,0px))}.walk-status-card p{margin-top:3px;color:var(--muted);font-size:calc(10.5px + var(--tp-text-extra,0px));line-height:1.3;font-weight:650}
.walk-event-card{display:grid;grid-template-columns:48px minmax(0,1fr);gap:10px;margin-top:9px;padding:12px;border-radius:20px;background:#fff8e9;border:1px solid rgba(130,99,58,.10)}.walk-event-icon{width:48px;height:48px;border-radius:15px;background:#fff;display:grid;place-items:center;font-size:25px}.walk-event-copy strong{display:block;margin-top:4px;font-size:calc(13px + var(--tp-text-extra,0px))}.walk-event-copy p{margin-top:3px;color:var(--muted);font-size:calc(10.5px + var(--tp-text-extra,0px));line-height:1.35;font-weight:650}.walk-event-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1.3fr;gap:7px}.walk-event-actions button{min-height:40px}
.walk-main-button{width:100%;margin-top:10px;min-height:63px;border:0;border-radius:20px;padding:10px 13px;background:#3f6549;color:#fff;display:grid;grid-template-columns:40px minmax(0,1fr) 20px;gap:9px;align-items:center;text-align:left;box-shadow:0 10px 24px rgba(53,89,61,.16)}.walk-main-button>span{width:40px;height:40px;border-radius:13px;background:rgba(255,255,255,.12);display:grid;place-items:center;font-size:calc(20px + var(--tp-text-extra,0px))}.walk-main-button strong{display:block;font-size:calc(14px + var(--tp-text-extra,0px))}.walk-main-button small{display:block;margin-top:2px;color:rgba(255,255,255,.7);font-size:calc(10.5px + var(--tp-text-extra,0px))}.walk-main-button>b{font-size:22px}.walk-main-button:disabled{opacity:.5}
.walk-park-panel{margin-top:10px;padding:13px;border-radius:21px;background:#f1f7ec}.walk-park-head strong{display:block;margin-top:4px;font-size:calc(14px + var(--tp-text-extra,0px))}.walk-park-head p{margin-top:4px;color:var(--muted);font-size:calc(10.5px + var(--tp-text-extra,0px));line-height:1.35;font-weight:650}.walk-park-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:11px}.walk-park-actions button{min-height:91px;border:1px solid rgba(65,88,60,.08);border-radius:17px;padding:10px;background:#fff;text-align:left}.walk-park-actions button>span{font-size:22px}.walk-park-actions button strong{display:block;margin-top:7px;font-size:calc(11.5px + var(--tp-text-extra,0px))}.walk-park-actions button small{display:block;margin-top:3px;color:var(--muted);font-size:calc(9.5px + var(--tp-text-extra,0px));line-height:1.3}.walk-park-actions button.used{background:#f7fbf4}.walk-park-actions button:disabled{opacity:.48}.walk-home-button{width:100%;margin-top:9px;min-height:42px;border:0;border-radius:15px;background:#514b45;color:#fff;font-weight:850}
.walk-home-summary{margin-top:10px;padding:17px;border-radius:22px;background:linear-gradient(180deg,#f4f8f0,#edf5e9);text-align:center}.walk-home-icon{width:56px;height:56px;margin:0 auto 9px;border-radius:18px;background:#fff;display:grid;place-items:center;font-size:28px}.walk-home-summary h3{margin-top:4px;font-size:calc(16px + var(--tp-text-extra,0px))}.walk-home-summary p{margin:5px auto 0;max-width:330px;color:var(--muted);font-size:calc(10.5px + var(--tp-text-extra,0px));line-height:1.4;font-weight:650}.walk-home-rewards{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:12px 0}.walk-home-rewards span{padding:8px 5px;border-radius:13px;background:#fff}.walk-home-rewards strong{display:block;font-size:calc(12px + var(--tp-text-extra,0px))}.walk-home-rewards small{display:block;margin-top:2px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));font-weight:750}
@media(max-width:390px){.walk-hud{grid-template-columns:1fr 1fr}.walk-scene{height:230px}.walk-home-rewards{grid-template-columns:1fr 1fr}}
@media(max-width:350px){.walk-park-actions{grid-template-columns:1fr}}

/* v8.9.1 — passeggiata più visiva: strada poi parco */
.walk-journey-card{
  margin-bottom:10px;
  padding:12px;
  border-radius:19px;
  background:linear-gradient(180deg,#f5f8f2 0%,#eef4ec 100%);
  border:1px solid rgba(79,101,71,.08);
}
.walk-journey-head strong{
  display:block;
  margin-top:4px;
  font-size:calc(14px + var(--tp-text-extra,0px));
}
.walk-journey-head p{
  margin-top:4px;
  color:var(--muted);
  font-size:calc(10.5px + var(--tp-text-extra,0px));
  line-height:1.35;
  font-weight:650;
}
.walk-journey-rail{
  display:grid;
  grid-template-columns:auto 1fr auto 1fr auto;
  gap:8px;
  align-items:center;
  margin-top:10px;
}
.walk-journey-step{
  display:grid;
  justify-items:center;
  gap:4px;
  min-width:50px;
  opacity:.58;
  transition:.2s ease;
}
.walk-journey-step i{
  width:34px;height:34px;border-radius:12px;background:#fff;
  display:grid;place-items:center;font-style:normal;font-size:calc(16px + var(--tp-text-extra,0px));
  box-shadow:0 5px 14px rgba(44,57,40,.08);
}
.walk-journey-step span{
  font-size:calc(9.5px + var(--tp-text-extra,0px));
  font-weight:800;
  color:var(--muted);
}
.walk-journey-step.active{opacity:1}
.walk-journey-step.active i{
  background:#e6efe3;
  box-shadow:0 7px 18px rgba(60,88,54,.12);
}
.walk-journey-step.active span{color:#556b58}
.walk-journey-line{
  position:relative;
  height:6px;
  border-radius:99px;
  background:rgba(95,112,94,.14);
  overflow:hidden;
}
.walk-journey-line b{
  position:absolute;inset:0 auto 0 0;width:0;
  background:#6c836e;
  border-radius:99px;
  transition:width .35s ease;
}

.walk-place-badge{
  position:absolute;
  left:12px;
  top:12px;
  z-index:6;
  display:grid;
  grid-template-columns:32px minmax(0,1fr);
  gap:8px;
  align-items:center;
  min-width:0;
  max-width:min(78%,240px);
  padding:9px 10px;
  border-radius:16px;
  background:rgba(255,255,255,.9);
  backdrop-filter:blur(8px);
  box-shadow:0 8px 20px rgba(45,57,43,.12);
}
.walk-place-badge>span{
  width:32px;height:32px;border-radius:11px;background:#f3f7f1;
  display:grid;place-items:center;font-size:calc(16px + var(--tp-text-extra,0px));
}
.walk-place-badge strong{
  display:block;
  font-size:calc(11.5px + var(--tp-text-extra,0px));
  line-height:1.15;
}
.walk-place-badge small{
  display:block;
  margin-top:2px;
  color:var(--muted);
  font-size:calc(9px + var(--tp-text-extra,0px));
  line-height:1.2;
  font-weight:750;
}
.walk-scene.at-park .walk-place-badge{
  background:rgba(248,252,246,.93);
}
.walk-scene.returned-home .walk-place-badge{
  background:rgba(252,249,245,.93);
}
.walk-scene{
  margin-top:0;
}
.walk-scene.at-park .walk-park-gate{
  opacity:0;
}
.walk-scene.at-park .walk-pet-marker{
  opacity:0;
}
.walk-scene.returned-home .walk-neighborhood,
.walk-scene.returned-home .walk-path,
.walk-scene.returned-home .walk-sky{
  opacity:.35;
}
.walk-scene.returned-home::before{
  content:"Passeggiata conclusa";
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  z-index:4;
  padding:10px 16px;
  border-radius:999px;
  background:rgba(255,255,255,.88);
  color:#4e5f52;
  font-size:calc(12px + var(--tp-text-extra,0px));
  font-weight:900;
  letter-spacing:.04em;
}

@media(max-width:390px){
  .walk-journey-rail{grid-template-columns:auto 1fr auto 1fr auto}
  .walk-place-badge{max-width:min(83%,220px)}
}


/* v8.9.2 — mini mappa passeggiata */
.walk-map-card{
  margin:0 0 10px;
  padding:12px;
  border-radius:21px;
  background:linear-gradient(180deg,#f6f8f4 0%,#eef4ec 100%);
  border:1px solid rgba(71,94,68,.08);
}
.walk-map-head strong{
  display:block;
  margin-top:4px;
  font-size:calc(14px + var(--tp-text-extra,0px));
}
.walk-map-head p{
  margin-top:4px;
  color:var(--muted);
  font-size:calc(10.5px + var(--tp-text-extra,0px));
  line-height:1.35;
  font-weight:650;
}
.walk-map{
  position:relative;
  height:182px;
  margin-top:10px;
  border-radius:22px;
  overflow:hidden;
  background:
    radial-gradient(circle at 14% 78%, rgba(153,184,126,.48) 0 12%, transparent 12.4%),
    radial-gradient(circle at 26% 56%, rgba(170,199,140,.38) 0 9%, transparent 9.4%),
    radial-gradient(circle at 49% 44%, rgba(163,193,135,.36) 0 12%, transparent 12.4%),
    radial-gradient(circle at 74% 28%, rgba(173,210,138,.40) 0 10%, transparent 10.4%),
    linear-gradient(180deg,#dbead6 0%,#d0e4ce 100%);
  border:1px solid rgba(78,106,76,.08);
}
.walk-map::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg, rgba(255,255,255,.18) 1px, transparent 1px),
    linear-gradient(rgba(255,255,255,.14) 1px, transparent 1px);
  background-size:24px 24px;
  opacity:.55;
  pointer-events:none;
}
.walk-map-svg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:1;
}
.walk-map-route-base,
.walk-map-route-progress{
  fill:none;
  stroke-linecap:round;
  stroke-width:18;
}
.walk-map-route-base{
  stroke:#cbbda6;
  opacity:.92;
}
.walk-map-route-progress{
  stroke:#6e8767;
  opacity:.98;
  stroke-dasharray:0 100;
  transition:stroke-dasharray .45s ease;
}
.walk-map-node{
  position:absolute;
  z-index:3;
  transform:translate(-50%,-50%);
  display:grid;
  justify-items:center;
  gap:4px;
  min-width:46px;
  transition:.22s ease;
}
.walk-map-node i{
  width:32px;height:32px;border-radius:11px;background:#fff;
  box-shadow:0 6px 16px rgba(42,58,41,.08);
  display:grid;place-items:center;
  font-style:normal;font-size:calc(15px + var(--tp-text-extra,0px));
}
.walk-map-node span{
  font-size:calc(9px + var(--tp-text-extra,0px));
  font-weight:900;
  color:#6a7769;
  letter-spacing:.04em;
}
.walk-map-node.done i{
  background:#edf6e9;
  box-shadow:0 8px 18px rgba(70,101,65,.12);
}
.walk-map-node.done span{
  color:#506551;
}
.walk-map-marker{
  position:absolute;
  z-index:4;
  left:10%;
  top:70%;
  transform:translate(-50%,-50%);
  transition:left .45s cubic-bezier(.2,.8,.2,1), top .45s cubic-bezier(.2,.8,.2,1);
}
.walk-map-marker span{
  width:40px;height:40px;border-radius:14px;background:#fff;
  display:grid;place-items:center;
  font-size:23px;
  box-shadow:0 10px 22px rgba(38,54,37,.16);
  animation:walkMapHop .7s ease-in-out infinite alternate;
}
@keyframes walkMapHop{to{transform:translateY(-4px) rotate(2deg)}}
.walk-map-preview{
  position:absolute;
  width:42px;height:42px;border-radius:14px;
  background:rgba(255,255,255,.62);
  border:1px solid rgba(255,255,255,.55);
  display:grid;place-items:center;
  box-shadow:0 10px 20px rgba(52,70,49,.08);
  z-index:0;
}
.walk-map-preview span{font-size:calc(19px + var(--tp-text-extra,0px));opacity:.85}
.walk-map-preview-home{left:8px;bottom:8px}
.walk-map-preview-road{right:96px;bottom:48px}
.walk-map-preview-park{right:10px;top:8px;background:rgba(240,251,235,.72)}
.walk-map.at-park .walk-map-preview-park,
.walk-map.returned-home .walk-map-preview-park{
  box-shadow:0 0 0 4px rgba(127,180,112,.16), 0 10px 20px rgba(52,70,49,.08);
}
.walk-map.at-park .walk-map-marker span{
  background:#f0fbeb;
}
.walk-map.returned-home .walk-map-marker span{
  background:#f8f5ef;
}
@media(max-width:390px){
  .walk-map{height:170px}
}


/* v8.9.3 — guinzaglio e oggetti trovabili */
.walk-leash-card{
  margin-bottom:10px;
  padding:12px;
  border-radius:20px;
  background:#f7f5f1;
  border:1px solid rgba(91,76,60,.08);
}
.walk-leash-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:start;
}
.walk-leash-head strong{display:block;margin-top:4px;font-size:calc(13px + var(--tp-text-extra,0px))}
.walk-leash-head p{margin-top:3px;color:var(--muted);font-size:calc(9.5px + var(--tp-text-extra,0px));line-height:1.35;font-weight:650}
.walk-leash-value{
  min-width:44px;
  padding:7px 8px;
  border-radius:12px;
  background:#fff;
  text-align:center;
  font-size:calc(11.5px + var(--tp-text-extra,0px));
  font-weight:900;
}
.walk-leash-meter{
  position:relative;
  height:14px;
  margin-top:11px;
  border-radius:99px;
  background:linear-gradient(90deg,#c9b77f 0 22%,#8eb181 22% 68%,#c89463 68% 82%,#bd7168 82% 100%);
  box-shadow:inset 0 2px 4px rgba(62,51,40,.08);
}
.walk-leash-safe{
  position:absolute;left:22%;right:32%;top:0;bottom:0;
  border-radius:99px;
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.28);
}
.walk-leash-meter i{
  position:absolute;
  left:50%;
  top:50%;
  width:22px;height:22px;
  border-radius:50%;
  background:#fff;
  border:3px solid #58524b;
  transform:translate(-50%,-50%);
  box-shadow:0 4px 12px rgba(50,42,34,.15);
  transition:left .25s ease;
}
.walk-leash-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px;
  margin-top:9px;
}
.walk-leash-actions button{
  min-height:38px;
  border:1px solid var(--line);
  border-radius:13px;
  background:#fff;
  color:inherit;
  font-size:calc(10.5px + var(--tp-text-extra,0px));
  font-weight:850;
}
.walk-leash-card[data-tone="good"]{background:#f3f8f0}
.walk-leash-card[data-tone="warn"]{background:#fbf5eb}
.walk-leash-card[data-tone="bad"]{background:#fbefed}
.walk-leash-card[data-tone="low"]{background:#f8f4e9}

.walk-bag-card{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin-bottom:10px;
  padding:11px 12px;
  border-radius:18px;
  background:#f3f1ed;
}
.walk-bag-title{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:7px;
}
.walk-bag-title>span{font-size:calc(20px + var(--tp-text-extra,0px))}
.walk-bag-title strong{display:block;font-size:calc(10.5px + var(--tp-text-extra,0px))}
.walk-bag-title small{display:block;margin-top:2px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));font-weight:650}
.walk-bag-items{
  min-width:0;
  flex:1;
  display:flex;
  justify-content:flex-end;
  gap:5px;
  flex-wrap:wrap;
}
.walk-bag-items>span:not(.empty){
  display:grid;
  grid-template-columns:18px auto;
  grid-template-rows:auto auto;
  column-gap:4px;
  align-items:center;
  padding:6px 7px;
  border-radius:11px;
  background:#fff;
}
.walk-bag-items b{
  grid-row:1/3;
  font-size:calc(14px + var(--tp-text-extra,0px));
}
.walk-bag-items strong{
  font-size:calc(9px + var(--tp-text-extra,0px));
  line-height:1.1;
}
.walk-bag-items small{
  color:var(--muted);
  font-size:calc(9px + var(--tp-text-extra,0px));
  font-weight:850;
}
.walk-bag-items .empty{
  padding:6px 8px;
  color:var(--muted);
  font-size:calc(9.5px + var(--tp-text-extra,0px));
  font-weight:750;
}

.walk-map-hotspot{
  position:absolute;
  z-index:6;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  width:46px;height:46px;
  border:0;
  border-radius:16px;
  background:#fff8dc;
  box-shadow:0 8px 22px rgba(96,79,43,.18);
  display:grid;
  place-items:center;
  animation:walkHotspotPulse 1s ease-in-out infinite alternate;
}
.walk-map-hotspot span{font-size:22px;line-height:1}
.walk-map-hotspot small{
  position:absolute;
  left:50%;
  bottom:-15px;
  transform:translateX(-50%);
  padding:3px 5px;
  border-radius:999px;
  background:#4d493f;
  color:#fff;
  font-size:calc(8px + var(--tp-text-extra,0px));
  font-weight:900;
  white-space:nowrap;
}
@keyframes walkHotspotPulse{
  to{transform:translate(-50%,-56%) scale(1.07);box-shadow:0 12px 26px rgba(96,79,43,.25)}
}

@media(max-width:390px){
  .walk-bag-card{display:grid}
  .walk-bag-items{justify-content:flex-start}
}


/* v8.9.4 — Mappa della città */
.walk-map-head-with-action{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:start;
}
.city-map-open-btn{
  min-width:86px;
  min-height:46px;
  padding:7px 9px;
  border:1px solid rgba(71,94,68,.10);
  border-radius:14px;
  background:#fff;
  color:inherit;
  display:grid;
  grid-template-columns:22px auto;
  gap:5px;
  align-items:center;
}
.city-map-open-btn>span{font-size:calc(18px + var(--tp-text-extra,0px))}
.city-map-open-btn>strong{font-size:calc(9.5px + var(--tp-text-extra,0px));line-height:1.1}
.play-action-citymap{
  background:linear-gradient(180deg,#eff4f8 0%,#f5f7f9 100%);
}

.city-map-sheet{
  max-height:92dvh;
  overflow-y:auto;
}
.city-map-sheet-head{
  align-items:flex-start;
}
.city-map-sheet-head p{
  margin-top:5px;
  color:var(--muted);
  font-size:calc(11.5px + var(--tp-text-extra,0px));
  line-height:1.35;
  font-weight:650;
}
.city-map-overview{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
  padding:13px;
  border-radius:19px;
  background:#f5f7f4;
  border:1px solid rgba(74,95,72,.08);
}
.city-map-overview strong{
  display:block;
  margin-top:4px;
  font-size:calc(14px + var(--tp-text-extra,0px));
}
.city-map-overview p{
  margin-top:3px;
  color:var(--muted);
  font-size:calc(10.5px + var(--tp-text-extra,0px));
  line-height:1.3;
  font-weight:650;
}
.city-map-status{
  flex:0 0 auto;
  padding:6px 8px;
  border-radius:999px;
  background:#fff;
  color:#5d6a5e;
  font-size:calc(9.5px + var(--tp-text-extra,0px));
  font-weight:900;
}

.city-map-world{
  position:relative;
  height:320px;
  margin-top:10px;
  overflow:hidden;
  border-radius:25px;
  background:
    radial-gradient(circle at 87% 15%,#a9cf92 0 14%,transparent 14.5%),
    radial-gradient(circle at 18% 22%,#c7d8bd 0 11%,transparent 11.5%),
    radial-gradient(circle at 85% 82%,#bad5d9 0 13%,transparent 13.5%),
    linear-gradient(180deg,#dce8d7 0%,#d0dfca 100%);
  border:1px solid rgba(70,94,69,.08);
}
.city-map-world::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(255,255,255,.2) 1px,transparent 1px),
    linear-gradient(rgba(255,255,255,.15) 1px,transparent 1px);
  background-size:30px 30px;
  pointer-events:none;
}
.city-map-roads{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:1;
}
.city-road{
  fill:none;
  stroke:#c7b79d;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.city-road.road-main{stroke-width:25}
.city-road.road-side-a,.city-road.road-side-b,.city-road.road-side-c{stroke-width:17}

.city-block{
  position:absolute;
  z-index:0;
  border-radius:18px;
  background:rgba(255,255,255,.24);
  border:1px solid rgba(255,255,255,.25);
}
.city-block.block-a{left:4%;top:42%;width:24%;height:23%;transform:rotate(-8deg)}
.city-block.block-b{left:30%;top:23%;width:22%;height:20%;transform:rotate(7deg)}
.city-block.block-c{left:52%;top:54%;width:19%;height:19%;transform:rotate(-8deg)}
.city-block.block-d{right:4%;top:34%;width:19%;height:22%;transform:rotate(5deg)}
.city-block.block-e{left:35%;bottom:3%;width:20%;height:16%;transform:rotate(4deg)}

.city-place{
  position:absolute;
  z-index:4;
  transform:translate(-50%,-50%);
  min-width:82px;
  min-height:64px;
  padding:8px 9px;
  border:1px solid rgba(71,91,68,.08);
  border-radius:18px;
  background:rgba(255,255,255,.92);
  color:inherit;
  box-shadow:0 8px 20px rgba(48,65,47,.10);
  display:grid;
  justify-items:center;
  gap:2px;
  transition:.18s ease;
}
.city-place>span{font-size:22px}
.city-place>strong{font-size:calc(10.5px + var(--tp-text-extra,0px))}
.city-place>small{font-size:calc(9px + var(--tp-text-extra,0px));color:var(--muted);font-weight:750}
.city-place.selected{
  box-shadow:0 0 0 3px rgba(93,126,89,.18),0 10px 24px rgba(48,65,47,.13);
  transform:translate(-50%,-50%) scale(1.04);
}
.city-place.current::after{
  content:"";
  position:absolute;
  right:7px;
  top:7px;
  width:7px;height:7px;
  border-radius:50%;
  background:#65905e;
}
.city-place.locked{
  opacity:.62;
  filter:saturate(.7);
}
.city-place.locked>small{color:#8a7f76}

.city-you-are-here{
  position:absolute;
  z-index:6;
  left:14%;
  top:88%;
  transform:translate(-50%,-50%);
  display:grid;
  justify-items:center;
  pointer-events:none;
  transition:left .35s ease,top .35s ease;
}
.city-you-are-here span{
  width:32px;height:32px;
  border-radius:12px;
  background:#4f654f;
  color:#fff;
  display:grid;
  place-items:center;
  font-size:calc(15px + var(--tp-text-extra,0px));
  box-shadow:0 8px 18px rgba(42,62,42,.18);
}
.city-you-are-here small{
  margin-top:3px;
  padding:3px 5px;
  border-radius:999px;
  background:rgba(255,255,255,.9);
  color:#526053;
  font-size:calc(8px + var(--tp-text-extra,0px));
  font-weight:900;
}

.city-place-panel{
  display:grid;
  grid-template-columns:48px minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  margin-top:10px;
  padding:12px;
  border-radius:20px;
  background:var(--surface-2);
}
.city-place-panel-icon{
  width:48px;height:48px;
  border-radius:15px;
  background:#fff;
  display:grid;
  place-items:center;
  font-size:24px;
}
.city-place-panel-copy{
  min-width:0;
}
.city-place-panel-copy strong{
  display:block;
  margin-top:3px;
  font-size:calc(13px + var(--tp-text-extra,0px));
}
.city-place-panel-copy p{
  margin-top:3px;
  color:var(--muted);
  font-size:calc(9.5px + var(--tp-text-extra,0px));
  line-height:1.35;
  font-weight:650;
}
.city-go-button{
  min-width:90px;
  min-height:42px;
  padding:8px 10px;
  border:0;
  border-radius:14px;
  background:#455e49;
  color:#fff;
  font-size:calc(10.5px + var(--tp-text-extra,0px));
  font-weight:900;
}
.city-go-button:disabled{
  background:#b7b3ad;
  color:#f7f5f2;
}
.city-map-legend{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  margin:9px 3px 1px;
  color:var(--muted);
  font-size:calc(9.5px + var(--tp-text-extra,0px));
  font-weight:750;
}
.city-map-legend span{
  display:flex;
  align-items:center;
  gap:5px;
}
.city-map-legend i{
  width:8px;height:8px;border-radius:50%;
  background:#6f9568;
}
.city-map-legend i.locked{background:#aaa39b}

@media(max-width:390px){
  .walk-map-head-with-action{
    grid-template-columns:1fr;
  }
  .city-map-open-btn{
    width:100%;
    grid-template-columns:24px auto;
    justify-content:center;
  }
  .city-map-world{height:300px}
  .city-place{
    min-width:72px;
    min-height:58px;
    padding:7px;
  }
  .city-place-panel{
    grid-template-columns:44px minmax(0,1fr);
  }
  .city-place-panel-icon{
    width:44px;height:44px;
  }
  .city-go-button{
    grid-column:1/-1;
    width:100%;
  }
}


/* v8.9.5 — luoghi della città come vere scene */
.city-location-sheet{
  max-height:94dvh;
  overflow-y:auto;
}
.city-location-sheet-head{
  align-items:flex-start;
}
.city-location-sheet-head p{
  margin-top:5px;
  color:var(--muted);
  font-size:calc(11.5px + var(--tp-text-extra,0px));
  line-height:1.35;
  font-weight:650;
}
.city-location-scene{
  position:relative;
  height:390px;
  overflow:hidden;
  border-radius:27px;
  border:1px solid rgba(64,82,61,.08);
  background:#cfe3c8;
  transition:background .3s ease;
}
.city-location-sky{
  position:absolute;
  inset:0 0 auto;
  height:42%;
  background:linear-gradient(#b9d9ed,#dcead9);
}
.city-location-sun{
  position:absolute;
  right:26px;
  top:22px;
  width:38px;height:38px;
  border-radius:50%;
  background:#f4dc83;
  box-shadow:0 0 0 11px rgba(244,220,131,.15);
}
.city-location-cloud{
  position:absolute;
  width:54px;height:15px;
  border-radius:20px;
  background:rgba(255,255,255,.72);
}
.city-location-cloud::before,.city-location-cloud::after{
  content:"";
  position:absolute;
  border-radius:50%;
  background:inherit;
}
.city-location-cloud::before{width:21px;height:21px;left:8px;top:-8px}
.city-location-cloud::after{width:28px;height:28px;right:4px;top:-13px}
.city-location-cloud.a{left:12%;top:34px}
.city-location-cloud.b{left:46%;top:19px;transform:scale(.8)}

.city-location-scene.night .city-location-sky{
  background:linear-gradient(#273b5d,#526a68);
}
.city-location-scene.night .city-location-sun{
  background:#f0edce;
  box-shadow:0 0 0 9px rgba(240,237,206,.08);
}
.city-location-scene.night .city-location-cloud{opacity:.18}

.location-decor{display:none}
.city-location-scene.place-park .location-park-decor,
.city-location-scene.place-shop .location-shop-decor,
.city-location-scene.place-square .location-square-decor,
.city-location-scene.place-lake .location-lake-decor{display:block}

/* PARCO */
.city-location-scene.place-park{
  background:linear-gradient(#cfe1c6 0 39%,#95c679 39% 100%);
}
.location-tree{
  position:absolute;
  width:76px;height:125px;
  bottom:56px;
}
.location-tree i{
  position:absolute;
  left:34px;
  bottom:0;
  width:11px;height:59px;
  border-radius:6px;
  background:#785942;
}
.location-tree b{
  position:absolute;
  left:0;top:0;
  width:76px;height:80px;
  border-radius:50%;
  background:#5e9954;
  box-shadow:-18px 17px 0 -7px #70a962,20px 14px 0 -8px #4e8848;
}
.location-tree.lt-a{left:5%}
.location-tree.lt-b{right:5%;transform:scale(.86)}
.location-park-bench{
  position:absolute;
  right:21%;
  bottom:74px;
  width:69px;height:26px;
  border-top:7px solid #886447;
  border-bottom:6px solid #886447;
}
.location-park-bench::before,.location-park-bench::after{
  content:"";
  position:absolute;
  bottom:-13px;
  width:5px;height:14px;
  background:#6a503b;
}
.location-park-bench::before{left:9px}.location-park-bench::after{right:9px}
.location-fountain{
  position:absolute;
  left:23%;
  bottom:65px;
  width:56px;height:31px;
  border-radius:50%;
  background:#c7c5bf;
  box-shadow:inset 0 0 0 6px #9bc4d2;
  display:grid;
  place-items:center;
}
.location-bush{
  position:absolute;
  bottom:48px;
  width:64px;height:30px;
  border-radius:55% 55% 38% 38%;
  background:#6ba65b;
}
.location-bush.lb-a{left:37%}.location-bush.lb-b{right:35%;transform:scale(.82)}

/* SHOP */
.city-location-scene.place-shop{
  background:linear-gradient(#eee5d8 0 32%,#e5d7c4 32% 73%,#b88d68 73% 100%);
}
.city-location-scene.place-shop .city-location-sky{display:none}
.shop-wall-sign{
  position:absolute;
  left:50%;top:22px;
  transform:translateX(-50%);
  padding:9px 18px;
  border-radius:12px;
  background:#9a6952;
  color:#fff4e9;
  font-size:calc(12px + var(--tp-text-extra,0px));
  font-weight:950;
  letter-spacing:.12em;
}
.shop-shelf{
  position:absolute;
  top:83px;
  width:75px;height:128px;
  border:7px solid #9b7558;
  border-top-width:9px;
  background:#cda98b;
  box-shadow:inset 0 -37px rgba(255,255,255,.14),inset 0 -75px rgba(255,255,255,.1);
}
.shop-shelf::before,.shop-shelf::after{
  content:"";
  position:absolute;
  left:0;right:0;
  height:5px;
  background:#8c674d;
}
.shop-shelf::before{top:40px}.shop-shelf::after{top:82px}
.shop-shelf.shelf-one{left:7%}
.shop-shelf.shelf-two{right:7%}
.shop-shelf i::after{content:"🍎";position:absolute;left:12px;top:10px;font-size:calc(20px + var(--tp-text-extra,0px))}
.shop-shelf b::after{content:"🎾";position:absolute;right:11px;top:52px;font-size:calc(20px + var(--tp-text-extra,0px))}
.shop-shelf em::after{content:"🧸";position:absolute;left:24px;bottom:9px;font-size:calc(20px + var(--tp-text-extra,0px));font-style:normal}
.shop-counter{
  position:absolute;
  right:29%;
  bottom:45px;
  width:91px;height:54px;
  border-radius:8px 8px 3px 3px;
  background:#9f7456;
  border-top:9px solid #805a42;
  display:grid;
  place-items:center;
}
.shop-counter span{font-size:26px}
.shop-display{
  position:absolute;
  left:29%;
  bottom:52px;
  display:flex;
  gap:7px;
  padding:9px;
  border-radius:14px;
  background:rgba(255,255,255,.48);
}
.shop-display span{font-size:21px}

/* PIAZZA */
.city-location-scene.place-square{
  background:linear-gradient(#d9e4e6 0 37%,#d7cfbd 37% 100%);
}
.square-fountain{
  position:absolute;
  left:50%;top:49%;
  transform:translate(-50%,-50%);
  width:105px;height:105px;
  border-radius:50%;
  background:#c4c0b8;
  box-shadow:inset 0 0 0 14px #9fc5cf,0 7px 0 #a59e92;
  display:grid;
  place-items:center;
}
.square-fountain span{font-size:43px}
.square-planter{
  position:absolute;
  bottom:62px;
  width:66px;height:31px;
  border-radius:8px 8px 18px 18px;
  background:#a97d5e;
}
.square-planter::before{
  content:"🌿";
  position:absolute;
  left:11px;top:-29px;
  font-size:38px;
}
.square-planter.sp-a{left:8%}.square-planter.sp-b{right:8%}
.square-lamp{
  position:absolute;
  top:82px;
  width:7px;height:108px;
  background:#59615d;
  border-radius:5px;
}
.square-lamp::before{
  content:"";
  position:absolute;
  left:-12px;top:-15px;
  width:31px;height:27px;
  border-radius:8px;
  background:#f1d88c;
  box-shadow:0 0 20px rgba(239,215,141,.35);
}
.square-lamp.sl-a{left:20%}.square-lamp.sl-b{right:20%}

/* LAGO */
.city-location-scene.place-lake{
  background:linear-gradient(#c4deea 0 37%,#8fbd78 37% 64%,#a8d2dc 64% 100%);
}
.lake-water{
  position:absolute;
  left:-8%;
  right:-8%;
  bottom:-17px;
  height:155px;
  border-radius:50% 50% 0 0;
  background:linear-gradient(#9fcedb,#7db9ca);
  box-shadow:inset 0 12px rgba(255,255,255,.14);
}
.lake-water>span{
  position:absolute;
  left:61%;
  top:30px;
  font-size:28px;
  animation:lakeDuck 2.4s ease-in-out infinite alternate;
}
@keyframes lakeDuck{to{transform:translateX(18px) translateY(3px)}}
.lake-reeds{
  position:absolute;
  bottom:113px;
  width:7px;height:49px;
  background:#507746;
  border-radius:8px;
  box-shadow:10px 7px #5a804c,19px -3px #4d7244,29px 9px #648956;
}
.lake-reeds.lr-a{left:11%}.lake-reeds.lr-b{right:19%;transform:scale(.8)}
.lake-rock{
  position:absolute;
  bottom:95px;
  width:45px;height:25px;
  border-radius:50% 50% 35% 35%;
  background:#8a9188;
}
.lake-rock.rock-a{left:30%}.lake-rock.rock-b{right:33%;transform:scale(.7)}
.lake-tree{
  position:absolute;
  left:4%;
  top:74px;
  width:74px;height:124px;
}
.lake-tree i{position:absolute;left:31px;bottom:0;width:11px;height:67px;background:#71523d;border-radius:6px}
.lake-tree b{position:absolute;left:0;top:0;width:74px;height:75px;border-radius:50%;background:#5b9451;box-shadow:19px 13px 0 -8px #4f8748}

/* Pet in location */
.city-location-pet-zone{
  position:absolute;
  left:50%;
  top:58%;
  width:190px;
  height:195px;
  transform:translate(-50%,-50%);
  z-index:8;
  display:flex;
  align-items:center;
  justify-content:center;
}
.city-location-pet-zone .pet{
  transform:scale(.82);
}
.city-location-pet-zone .location-pet-shadow{
  position:absolute;
  left:50%;
  bottom:24px;
  transform:translateX(-50%);
  width:105px;height:20px;
  border-radius:50%;
  background:rgba(56,48,39,.14);
  filter:blur(3px);
  z-index:1;
}
.location-pet-speech{
  position:absolute;
  top:-4px;
  left:50%;
  transform:translateX(-50%);
  padding:9px 12px;
  border-radius:15px;
  background:#fff;
  color:#312a25;
  font-size:calc(12px + var(--tp-text-extra,0px));
  font-weight:850;
  white-space:nowrap;
  box-shadow:0 8px 20px rgba(46,39,32,.12);
  z-index:20;
}
.location-pet-speech::after{
  content:"";
  position:absolute;
  left:50%;bottom:-5px;
  width:10px;height:10px;
  background:#fff;
  transform:translateX(-50%) rotate(45deg);
}
.city-location-label{
  position:absolute;
  left:12px;
  top:12px;
  z-index:12;
  display:grid;
  grid-template-columns:34px minmax(0,1fr);
  gap:8px;
  align-items:center;
  max-width:230px;
  padding:9px 10px;
  border-radius:16px;
  background:rgba(255,255,255,.90);
  backdrop-filter:blur(8px);
  box-shadow:0 8px 20px rgba(47,58,43,.11);
}
.city-location-label>span{
  width:34px;height:34px;
  border-radius:11px;
  background:#f1f5ef;
  display:grid;
  place-items:center;
  font-size:calc(17px + var(--tp-text-extra,0px));
}
.city-location-label strong{display:block;font-size:calc(11.5px + var(--tp-text-extra,0px))}
.city-location-label small{display:block;margin-top:2px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));font-weight:750}

.city-location-pet-info{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:center;
  margin-top:10px;
  padding:12px 13px;
  border-radius:19px;
  background:var(--surface-2);
}
.city-location-pet-info>div:first-child strong{
  display:block;
  margin-top:3px;
  font-size:calc(14px + var(--tp-text-extra,0px));
}
.city-location-pet-info>div:first-child small{
  display:block;
  margin-top:2px;
  color:var(--muted);
  font-size:calc(9.5px + var(--tp-text-extra,0px));
  font-weight:700;
}
.city-location-needs{
  display:flex;
  gap:6px;
}
.city-location-needs span{
  padding:7px 8px;
  border-radius:12px;
  background:#fff;
  font-size:calc(10.5px + var(--tp-text-extra,0px));
}
.city-location-needs strong{font-size:calc(10.5px + var(--tp-text-extra,0px))}

.city-location-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-top:10px;
}
.city-location-action{
  min-height:94px;
  border:1px solid var(--line);
  border-radius:18px;
  padding:11px;
  background:#f8f7f4;
  text-align:left;
}
.city-location-action>span{font-size:23px}
.city-location-action strong{display:block;margin-top:8px;font-size:calc(11.5px + var(--tp-text-extra,0px))}
.city-location-action small{display:block;margin-top:3px;color:var(--muted);font-size:calc(9.5px + var(--tp-text-extra,0px));line-height:1.3;font-weight:650}
.city-location-action-play{background:#f8f3eb}
.city-location-action-explore{background:#f0f6ed}
.city-location-action-rest{background:#f1f3f7}
.city-location-action-shop{background:#f7f1ed}
.city-location-action-walk{background:#eef5f0}

.city-location-nav{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-top:10px;
}

@media(max-width:390px){
  .city-location-scene{height:350px}
  .city-location-actions{grid-template-columns:1fr 1fr}
}
@media(max-width:350px){
  .city-location-actions{grid-template-columns:1fr}
  .city-location-nav{grid-template-columns:1fr}
}


/* v8.10 — animali NPC, routine e pannello relazioni */
.city-location-visitors{
  position:absolute;
  inset:0;
  z-index:7;
  pointer-events:none;
}
.location-npc{
  position:absolute;
  transform:translate(-50%,-50%);
  width:88px;
  min-height:91px;
  border:0;
  background:transparent;
  color:inherit;
  display:grid;
  justify-items:center;
  align-content:start;
  pointer-events:auto;
  z-index:7;
}
.location-npc-icon{
  width:54px;height:54px;
  border-radius:19px;
  display:grid;
  place-items:center;
  background:#fff;
  font-size:31px;
  box-shadow:0 9px 22px rgba(46,56,42,.15);
  animation:npcIdle 1.7s ease-in-out infinite alternate;
}
@keyframes npcIdle{to{transform:translateY(-4px) rotate(2deg)}}
.location-npc-name{
  margin-top:5px;
  padding:3px 7px;
  border-radius:999px;
  background:rgba(255,255,255,.92);
  font-size:calc(9.5px + var(--tp-text-extra,0px));
  font-weight:950;
}
.location-npc>small{
  display:block;
  width:86px;
  margin-top:3px;
  padding:4px 5px;
  border-radius:9px;
  background:rgba(44,48,42,.74);
  color:#fff;
  font-size:calc(8px + var(--tp-text-extra,0px));
  line-height:1.2;
  font-weight:750;
}
.location-npc>b{
  margin-top:3px;
  padding:3px 6px;
  border-radius:999px;
  background:#f3e8ef;
  color:#785f6f;
  font-size:calc(8px + var(--tp-text-extra,0px));
  font-weight:900;
}
.npc-luna .location-npc-icon,.npc-luna.relationship-avatar,.npc-luna.relationship-roster-avatar,.npc-luna.location-animal-avatar{background:#fff3e8}
.npc-bruno .location-npc-icon,.npc-bruno.relationship-avatar,.npc-bruno.relationship-roster-avatar,.npc-bruno.location-animal-avatar{background:#eee2d7}
.npc-nina .location-npc-icon,.npc-nina.relationship-avatar,.npc-nina.relationship-roster-avatar,.npc-nina.location-animal-avatar{background:#f7f5f4}
.npc-rocky .location-npc-icon,.npc-rocky.relationship-avatar,.npc-rocky.relationship-roster-avatar,.npc-rocky.location-animal-avatar{background:#f8e1d4}
.npc-moka .location-npc-icon,.npc-moka.relationship-avatar,.npc-moka.relationship-roster-avatar,.npc-moka.location-animal-avatar{background:#efe4d7}

.location-social-card{
  margin-top:10px;
  padding:12px;
  border-radius:20px;
  background:linear-gradient(180deg,#f8f5f8,#f4f1f5);
  border:1px solid rgba(95,70,91,.08);
}
.location-social-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:start;
}
.location-social-head strong{display:block;margin-top:4px;font-size:calc(13px + var(--tp-text-extra,0px))}
.location-social-head p{margin-top:3px;color:var(--muted);font-size:calc(9.5px + var(--tp-text-extra,0px));line-height:1.35;font-weight:650}
.location-relationships-btn{
  min-height:43px;
  padding:7px 10px;
  border:0;
  border-radius:14px;
  background:#6d596a;
  color:#fff;
  display:grid;
  grid-template-columns:20px auto;
  align-items:center;
  gap:5px;
}
.location-relationships-btn span{font-size:calc(16px + var(--tp-text-extra,0px))}
.location-relationships-btn strong{font-size:calc(9.5px + var(--tp-text-extra,0px))}
.location-animal-list{
  display:grid;
  gap:7px;
  margin-top:10px;
}
.location-animal-row{
  width:100%;
  min-height:55px;
  padding:7px 8px;
  border:1px solid rgba(80,67,77,.07);
  border-radius:15px;
  background:#fff;
  color:inherit;
  display:grid;
  grid-template-columns:40px minmax(0,1fr) auto;
  gap:8px;
  align-items:center;
  text-align:left;
}
.location-animal-avatar{
  width:40px;height:40px;border-radius:13px;
  display:grid;place-items:center;font-size:23px;
}
.location-animal-row>div:nth-child(2) strong{display:block;font-size:calc(11.5px + var(--tp-text-extra,0px))}
.location-animal-row>div:nth-child(2) small{display:block;margin-top:2px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));line-height:1.25}
.location-animal-relation{text-align:right}
.location-animal-relation strong{display:block;font-size:calc(9.5px + var(--tp-text-extra,0px))}
.location-animal-relation small{display:block;margin-top:2px;color:#8a6279;font-size:calc(9px + var(--tp-text-extra,0px));font-weight:850}
.location-animal-empty{
  padding:15px;
  border-radius:15px;
  background:#fff;
  text-align:center;
}
.location-animal-empty span{font-size:21px}
.location-animal-empty strong{display:block;margin-top:5px;font-size:calc(11.5px + var(--tp-text-extra,0px))}
.location-animal-empty small{display:block;margin-top:3px;color:var(--muted);font-size:calc(9.5px + var(--tp-text-extra,0px))}
.location-next-animal{
  display:grid;
  grid-template-columns:37px minmax(0,1fr);
  gap:8px;
  align-items:center;
  margin-top:8px;
  padding:8px 9px;
  border-radius:14px;
  background:rgba(255,255,255,.67);
}
.location-next-animal>span{
  width:37px;height:37px;border-radius:12px;background:#fff;
  display:grid;place-items:center;font-size:calc(20px + var(--tp-text-extra,0px));
}
.location-next-animal small{display:block;color:var(--muted);font-size:calc(8px + var(--tp-text-extra,0px));letter-spacing:.08em;font-weight:900}
.location-next-animal strong{display:block;margin-top:2px;font-size:calc(10.5px + var(--tp-text-extra,0px))}
.location-next-animal p{margin-top:2px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px))}

.city-npc-count{
  position:absolute;
  left:7px;
  top:7px;
  min-width:22px;
  padding:3px 5px;
  border-radius:999px;
  background:#715c6c;
  color:#fff;
  font-size:calc(8px + var(--tp-text-extra,0px));
  font-weight:950;
}

/* Relationship sheet */
.relationship-sheet{
  max-height:94dvh;
  overflow-y:auto;
}
.relationship-sheet-head{align-items:flex-start}
.relationship-sheet-head p{
  margin-top:5px;
  color:var(--muted);
  font-size:calc(11.5px + var(--tp-text-extra,0px));
  line-height:1.35;
  font-weight:650;
}
.relationship-roster{
  display:flex;
  gap:7px;
  overflow-x:auto;
  padding:2px 1px 7px;
  scrollbar-width:none;
}
.relationship-roster-item{
  flex:0 0 128px;
  min-height:65px;
  padding:8px;
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--surface-2);
  color:inherit;
  display:grid;
  grid-template-columns:38px minmax(0,1fr);
  grid-template-rows:auto auto;
  gap:2px 7px;
  text-align:left;
}
.relationship-roster-item.active{
  background:#f5eff4;
  border-color:rgba(117,83,106,.18);
  box-shadow:inset 0 0 0 1px rgba(117,83,106,.08);
}
.relationship-roster-avatar{
  grid-row:1/3;
  width:38px;height:38px;
  border-radius:13px;
  display:grid;place-items:center;
  font-size:22px;
}
.relationship-roster-item strong{font-size:calc(10.5px + var(--tp-text-extra,0px))}
.relationship-roster-item small{display:block;margin-top:2px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px))}
.relationship-roster-item>b{
  grid-column:2;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--muted);
  font-size:calc(8px + var(--tp-text-extra,0px));
  font-weight:850;
}
.relationship-roster-item>b.here{color:#57795a}

.relationship-detail{
  display:grid;
  gap:9px;
}
.relationship-hero{
  display:grid;
  grid-template-columns:66px minmax(0,1fr) auto;
  gap:11px;
  align-items:center;
  padding:13px;
  border-radius:21px;
  background:linear-gradient(180deg,#faf6f9,#f5f0f4);
}
.relationship-avatar{
  width:66px;height:66px;
  border-radius:21px;
  display:grid;place-items:center;
  font-size:39px;
  box-shadow:0 8px 18px rgba(74,55,69,.08);
}
.relationship-hero-copy h3{margin-top:3px;font-size:calc(17px + var(--tp-text-extra,0px))}
.relationship-hero-copy p{margin-top:3px;color:var(--muted);font-size:calc(9.5px + var(--tp-text-extra,0px));line-height:1.3;font-weight:650}
.relationship-live-status{
  display:inline-block;
  margin-top:6px;
  padding:5px 7px;
  border-radius:999px;
  background:#fff;
  color:#66606a;
  font-size:calc(9px + var(--tp-text-extra,0px));
  font-weight:850;
}
.relationship-level-badge{
  min-width:76px;
  padding:9px 8px;
  border-radius:14px;
  background:#fff;
  text-align:center;
}
.relationship-level-badge small{display:block;color:var(--muted);font-size:calc(8px + var(--tp-text-extra,0px));font-weight:900}
.relationship-level-badge strong{display:block;margin-top:3px;font-size:calc(9.5px + var(--tp-text-extra,0px));line-height:1.2}

.relationship-meter-card{
  padding:11px 12px;
  border-radius:17px;
  background:#fff;
  border:1px solid var(--line);
}
.relationship-meter-head{
  display:flex;
  justify-content:space-between;
  gap:10px;
  font-size:calc(10.5px + var(--tp-text-extra,0px));
  font-weight:850;
}
.relationship-meter{
  height:9px;
  margin-top:8px;
  border-radius:999px;
  background:#eee7ec;
  overflow:hidden;
}
.relationship-meter span{
  display:block;
  height:100%;
  width:0;
  border-radius:999px;
  background:linear-gradient(90deg,#b88ba7,#765a70);
  transition:width .3s ease;
}
.relationship-next-level{
  margin-top:6px;
  color:var(--muted);
  font-size:calc(9px + var(--tp-text-extra,0px));
  font-weight:700;
}
.relationship-stats{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:7px;
}
.relationship-stats>div{
  padding:9px 6px;
  border-radius:15px;
  background:var(--surface-2);
  text-align:center;
}
.relationship-stats span{font-size:calc(17px + var(--tp-text-extra,0px))}
.relationship-stats strong{display:block;margin-top:3px;font-size:calc(12px + var(--tp-text-extra,0px))}
.relationship-stats small{display:block;margin-top:2px;color:var(--muted);font-size:calc(8px + var(--tp-text-extra,0px));font-weight:800}

.relationship-actions{
  padding:11px;
  border-radius:18px;
  background:#f8f5f2;
}
.relationship-action-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:7px;
  margin-top:7px;
}
.relationship-action-grid button{
  min-height:82px;
  padding:8px 6px;
  border:1px solid var(--line);
  border-radius:15px;
  background:#fff;
  color:inherit;
  text-align:center;
}
.relationship-action-grid button span{font-size:21px}
.relationship-action-grid button strong{display:block;margin-top:6px;font-size:calc(9.5px + var(--tp-text-extra,0px))}
.relationship-action-grid button small{display:block;margin-top:2px;color:var(--muted);font-size:calc(8px + var(--tp-text-extra,0px))}
.relationship-action-grid button:disabled{opacity:.42}
.relationship-action-note{
  margin-top:7px;
  color:var(--muted);
  font-size:calc(9px + var(--tp-text-extra,0px));
  line-height:1.35;
  font-weight:650;
}

.relationship-routine-card{
  padding:12px;
  border-radius:19px;
  background:#f2f5f2;
}
.relationship-routine-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:10px;
}
.relationship-routine-head strong{display:block;margin-top:3px;font-size:calc(12px + var(--tp-text-extra,0px))}
.relationship-next-pill{
  flex:0 0 auto;
  max-width:130px;
  padding:6px 8px;
  border-radius:999px;
  background:#fff;
  color:#5d6b5e;
  font-size:calc(9px + var(--tp-text-extra,0px));
  font-weight:850;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.relationship-schedule{
  display:grid;
  gap:6px;
  margin-top:9px;
}
.relationship-schedule-row{
  display:grid;
  grid-template-columns:34px minmax(0,1fr) auto;
  gap:8px;
  align-items:center;
  padding:8px;
  border-radius:13px;
  background:rgba(255,255,255,.68);
}
.relationship-schedule-row.active{
  background:#e6f0e3;
  box-shadow:inset 0 0 0 1px rgba(91,126,86,.08);
}
.relationship-schedule-row>span{
  width:34px;height:34px;
  border-radius:11px;
  background:#fff;
  display:grid;place-items:center;font-size:calc(17px + var(--tp-text-extra,0px));
}
.relationship-schedule-row strong{display:block;font-size:calc(10.5px + var(--tp-text-extra,0px))}
.relationship-schedule-row small{display:block;margin-top:2px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));line-height:1.25}
.relationship-schedule-row>b{
  font-size:calc(9px + var(--tp-text-extra,0px));
  color:#5d675e;
}

@media(max-width:390px){
  .location-social-head{grid-template-columns:1fr}
  .location-relationships-btn{width:100%;justify-content:center}
  .relationship-hero{
    grid-template-columns:58px minmax(0,1fr);
  }
  .relationship-avatar{width:58px;height:58px;font-size:34px}
  .relationship-level-badge{
    grid-column:1/-1;
    display:flex;
    align-items:center;
    justify-content:space-between;
  }
}
@media(max-width:350px){
  .relationship-action-grid{grid-template-columns:1fr}
}


/* v8.10.1 — Negozio fisico unico punto acquisti */
.sheet-grid.shop-sheet-grid{
  grid-template-columns:1fr 1fr;
  gap:9px;
}
.shop-group-title{
  grid-column:1/-1;
  margin:8px 2px -1px;
  color:var(--muted);
  font-size:calc(9.5px + var(--tp-text-extra,0px));
  letter-spacing:.12em;
  font-weight:950;
}
.shop-product-card{
  min-height:108px;
  padding:13px;
  border-radius:18px;
  background:#faf7f2;
  border:1px solid rgba(94,71,53,.07);
}
.shop-product-card .icon{
  font-size:25px;
  margin-bottom:9px;
}
.shop-product-card strong{
  font-size:calc(12px + var(--tp-text-extra,0px));
}
.shop-product-card small{
  font-size:calc(10.5px + var(--tp-text-extra,0px));
  line-height:1.3;
}
.shop-product-main{
  background:linear-gradient(180deg,#fbf8f3,#f7f2eb);
}
.shop-product-ingredient{
  background:linear-gradient(180deg,#f5f8f0,#f0f5ea);
}
.shop-product-card.owned-product{
  background:#f0f4ed;
}
.city-location-action-shop{
  background:linear-gradient(180deg,#f7eee8,#f3e8df);
  box-shadow:inset 0 0 0 1px rgba(137,94,68,.06);
}
@media(max-width:330px){
  .sheet-grid.shop-sheet-grid{
    grid-template-columns:1fr;
  }
  .shop-group-title{
    grid-column:1;
  }
}

/* v8.10.2 — animali veri nei luoghi e interazioni rapide */
.location-npc{
  width:102px;
  min-height:118px;
}
.location-npc.selected{
  transform:translate(-50%,-50%) scale(1.05);
}
.location-npc.selected .location-npc-name{
  background:#6f596b;
  color:#fff;
}
.location-npc-figure{
  position:relative;
  width:78px;
  height:78px;
}
.npc-pet-frame{
  position:relative;
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
}
.npc-pet-shadow{
  position:absolute;
  left:50%;
  bottom:9px;
  width:44px;
  height:10px;
  border-radius:50%;
  background:rgba(55,44,35,.14);
  filter:blur(2px);
  transform:translateX(-50%);
}
.npc-mini-pet{
  width:72px;
  height:82px;
  animation:idle 2.4s ease-in-out infinite;
  filter:drop-shadow(0 5px 6px rgba(80,50,30,.08));
}
.npc-mini-pet .head{left:12px;top:8px;width:48px;height:46px}
.npc-mini-pet .body{left:21px;top:44px;width:32px;height:28px}
.npc-mini-pet .belly{left:7px;top:6px;width:18px;height:20px}
.npc-mini-pet .ear{top:5px;width:18px;height:30px}
.npc-mini-pet .ear-left{left:7px}
.npc-mini-pet .ear-right{right:7px}
.npc-mini-pet .face-eye{top:19px;width:4px;height:6px}
.npc-mini-pet .eye-left{left:13px}
.npc-mini-pet .eye-right{right:13px}
.npc-mini-pet .muzzle{left:14px;top:26px;width:22px;height:16px}
.npc-mini-pet .nose{left:8px;top:2px;width:7px;height:5px}
.npc-mini-pet .mouth{left:8px;top:9px;width:6px;height:4px;border-bottom-width:2px}
.npc-mini-pet .leg{top:66px;width:13px;height:12px}
.npc-mini-pet .leg-left{left:20px}
.npc-mini-pet .leg-right{right:20px}
.npc-mini-pet .tail{right:8px;top:51px;width:20px;height:9px}
.npc-variant-list,.npc-variant-roster,.npc-variant-profile,.npc-variant-hero{width:100%;height:100%}
.npc-variant-list .npc-mini-pet{
  width:42px;height:47px;animation:none;
}
.npc-variant-list .npc-mini-pet .head{left:7px;top:4px;width:28px;height:26px}
.npc-variant-list .npc-mini-pet .body{left:11px;top:25px;width:18px;height:16px}
.npc-variant-list .npc-mini-pet .belly{left:4px;top:3px;width:9px;height:11px}
.npc-variant-list .npc-mini-pet .ear{top:2px;width:10px;height:17px}
.npc-variant-list .npc-mini-pet .ear-left{left:4px}
.npc-variant-list .npc-mini-pet .ear-right{right:4px}
.npc-variant-list .npc-mini-pet .face-eye{top:10px;width:3px;height:4px}
.npc-variant-list .npc-mini-pet .eye-left{left:8px}
.npc-variant-list .npc-mini-pet .eye-right{right:8px}
.npc-variant-list .npc-mini-pet .muzzle{left:8px;top:15px;width:13px;height:10px}
.npc-variant-list .npc-mini-pet .nose{left:4px;top:2px;width:5px;height:3px}
.npc-variant-list .npc-mini-pet .mouth{left:4px;top:5px;width:4px;height:2px;border-bottom-width:1.5px}
.npc-variant-list .npc-mini-pet .leg{top:38px;width:8px;height:7px}
.npc-variant-list .npc-mini-pet .leg-left{left:11px}
.npc-variant-list .npc-mini-pet .leg-right{right:11px}
.npc-variant-list .npc-mini-pet .tail{right:4px;top:29px;width:11px;height:5px}
.npc-variant-list .npc-pet-shadow{width:25px;height:6px;bottom:4px}
.npc-variant-roster .npc-mini-pet{width:38px;height:43px;animation:none}
.npc-variant-roster .npc-pet-shadow{width:23px;height:5px;bottom:4px}
.npc-variant-profile .npc-mini-pet{width:60px;height:68px}
.npc-variant-profile .npc-pet-shadow{width:35px;height:8px}
.npc-variant-hero .npc-mini-pet{width:56px;height:64px}
.npc-variant-hero .npc-pet-shadow{width:33px;height:8px}
.location-animal-row.selected{
  background:#f5eef3;
  border-color:rgba(108,80,102,.12);
}
.location-animal-avatar,.relationship-roster-avatar,.relationship-avatar{
  display:grid;
  place-items:center;
}
.location-friend-panel{margin-top:8px}
.location-friend-inner{
  padding:10px;
  border-radius:16px;
  background:#fff;
  border:1px solid rgba(94,74,86,.08);
}
.location-friend-hero{
  display:grid;
  grid-template-columns:58px minmax(0,1fr);
  gap:9px;
  align-items:center;
}
.location-friend-avatar{
  width:58px;height:58px;
  border-radius:18px;
  background:#f5eff3;
  display:grid;
  place-items:center;
  overflow:hidden;
}
.location-friend-copy strong{display:block;margin-top:3px;font-size:calc(12px + var(--tp-text-extra,0px))}
.location-friend-copy p{margin-top:3px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));line-height:1.3;font-weight:650}
.location-friend-copy small{display:block;margin-top:3px;color:#7b6273;font-size:calc(9px + var(--tp-text-extra,0px));font-weight:850}
.location-friend-actions{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:6px;
  margin-top:9px;
}
.location-friend-actions button{
  min-height:58px;
  padding:7px 5px;
  border:1px solid var(--line);
  border-radius:13px;
  background:#faf7f9;
  color:inherit;
  text-align:center;
}
.location-friend-actions button span{font-size:calc(17px + var(--tp-text-extra,0px))}
.location-friend-actions button strong{display:block;margin-top:5px;font-size:calc(9px + var(--tp-text-extra,0px));line-height:1.1}
.location-friend-detail{
  width:100%;
  margin-top:8px;
  min-height:38px;
  border:0;
  border-radius:13px;
  background:#6d596a;
  color:#fff;
  font-size:calc(9.5px + var(--tp-text-extra,0px));
  font-weight:900;
}
.location-friend-empty{
  padding:12px;
  border-radius:15px;
  background:#fff;
  text-align:center;
}
.location-friend-empty span{font-size:calc(18px + var(--tp-text-extra,0px))}
.location-friend-empty strong{display:block;margin-top:4px;font-size:calc(11.5px + var(--tp-text-extra,0px))}
.location-friend-empty small{display:block;margin-top:2px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px))}
.location-npc-icon{display:none!important}
.relationship-action-grid{grid-template-columns:repeat(5,1fr)}
@media(max-width:390px){
  .location-friend-actions{grid-template-columns:repeat(2,1fr)}
  .relationship-action-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:350px){
  .relationship-action-grid{grid-template-columns:1fr}
}


/* v8.10.3 — negozio dedicato dentro il luogo */
.physical-shop-panel{
  margin-top:10px;
  padding:13px;
  border-radius:22px;
  background:linear-gradient(180deg,#f8f0e9 0%,#f3e7dd 100%);
  border:1px solid rgba(126,88,64,.10);
}
.physical-shop-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:start;
}
.physical-shop-head h3{
  margin-top:3px;
  font-size:calc(17px + var(--tp-text-extra,0px));
}
.physical-shop-head p{
  margin-top:4px;
  color:var(--muted);
  font-size:calc(10.5px + var(--tp-text-extra,0px));
  line-height:1.35;
  font-weight:650;
}
.physical-shop-wallet{
  display:flex;
  align-items:center;
  gap:8px;
  margin-top:10px;
  padding:9px 10px;
  border-radius:15px;
  background:rgba(255,255,255,.72);
}
.physical-shop-wallet>span{font-size:21px}
.physical-shop-wallet small{
  display:block;
  color:var(--muted);
  font-size:calc(8px + var(--tp-text-extra,0px));
  font-weight:900;
  letter-spacing:.09em;
}
.physical-shop-wallet strong{
  display:block;
  margin-top:2px;
  font-size:calc(12px + var(--tp-text-extra,0px));
}
.physical-shop-tabs{
  display:flex;
  gap:6px;
  overflow-x:auto;
  margin-top:10px;
  padding-bottom:3px;
  scrollbar-width:none;
}
.physical-shop-tabs button{
  flex:0 0 auto;
  min-width:76px;
  padding:8px 9px;
  border:1px solid rgba(109,78,57,.08);
  border-radius:14px;
  background:rgba(255,255,255,.67);
  color:inherit;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:5px;
}
.physical-shop-tabs button span{font-size:calc(15px + var(--tp-text-extra,0px))}
.physical-shop-tabs button strong{font-size:calc(9.5px + var(--tp-text-extra,0px))}
.physical-shop-tabs button.active{
  background:#6f5544;
  color:#fff;
  border-color:#6f5544;
}
.physical-shop-summary{
  display:grid;
  grid-template-columns:38px minmax(0,1fr);
  gap:8px;
  align-items:center;
  margin-top:10px;
  padding:9px 10px;
  border-radius:15px;
  background:rgba(255,255,255,.48);
}
.physical-shop-summary>span{
  width:38px;height:38px;
  border-radius:12px;
  background:#fff;
  display:grid;
  place-items:center;
  font-size:calc(19px + var(--tp-text-extra,0px));
}
.physical-shop-summary strong{
  display:block;
  font-size:calc(11.5px + var(--tp-text-extra,0px));
}
.physical-shop-summary small{
  display:block;
  margin-top:2px;
  color:var(--muted);
  font-size:calc(9px + var(--tp-text-extra,0px));
  line-height:1.3;
}
.physical-shop-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-top:10px;
}
.physical-product-card{
  position:relative;
  min-height:145px;
  padding:10px;
  border-radius:18px;
  background:#fff;
  border:1px solid rgba(94,69,51,.08);
  display:grid;
  grid-template-rows:auto 1fr auto;
}
.physical-product-card.owned{
  background:#eef4ec;
}
.physical-product-icon{
  width:43px;height:43px;
  border-radius:14px;
  background:#f8f2ec;
  display:grid;
  place-items:center;
  font-size:23px;
}
.physical-product-copy{
  margin-top:8px;
}
.physical-product-copy>strong{
  display:block;
  font-size:calc(11.5px + var(--tp-text-extra,0px));
}
.physical-product-copy p{
  margin-top:3px;
  color:var(--muted);
  font-size:calc(9px + var(--tp-text-extra,0px));
  line-height:1.3;
  font-weight:650;
}
.physical-product-copy small{
  display:block;
  margin-top:4px;
  color:#765d4b;
  font-size:calc(9px + var(--tp-text-extra,0px));
  font-weight:850;
}
.physical-product-buy{
  width:100%;
  min-height:35px;
  margin-top:8px;
  border:0;
  border-radius:12px;
  background:#6c5444;
  color:#fff;
  font-size:calc(9.5px + var(--tp-text-extra,0px));
  font-weight:900;
}
.physical-product-buy:disabled{
  background:#aab6a6;
}
.physical-shop-footer{
  display:flex;
  align-items:center;
  gap:8px;
  margin-top:10px;
  padding:9px 10px;
  border-radius:14px;
  background:rgba(255,255,255,.48);
}
.physical-shop-footer span{font-size:calc(18px + var(--tp-text-extra,0px))}
.physical-shop-footer p{
  color:var(--muted);
  font-size:calc(9px + var(--tp-text-extra,0px));
  line-height:1.3;
  font-weight:650;
}
@media(max-width:330px){
  .physical-shop-grid{grid-template-columns:1fr}
}


/* v8.10.4 — fix code Luna e Nina nelle miniature */
.npc-mini-pet.species-cat .tail{
  right:6px;
  top:48px;
  width:25px;
  height:8px;
  border-radius:999px;
  transform:rotate(-40deg);
  transform-origin:left center;
}
.npc-mini-pet.species-rabbit .tail{
  right:12px;
  top:55px;
  width:12px;
  height:12px;
  border-radius:50%;
  transform:none;
}

.npc-variant-list .npc-mini-pet.species-cat .tail{
  right:3px;
  top:26px;
  width:13px;
  height:4px;
  transform:rotate(-40deg);
}
.npc-variant-list .npc-mini-pet.species-rabbit .tail{
  right:6px;
  top:31px;
  width:6px;
  height:6px;
  transform:none;
}

.npc-variant-roster .npc-mini-pet.species-cat .tail{
  right:3px;
  top:24px;
  width:12px;
  height:4px;
  transform:rotate(-40deg);
}
.npc-variant-roster .npc-mini-pet.species-rabbit .tail{
  right:5px;
  top:28px;
  width:6px;
  height:6px;
  transform:none;
}

.npc-variant-profile .npc-mini-pet.species-cat .tail{
  right:5px;
  top:40px;
  width:21px;
  height:7px;
  transform:rotate(-40deg);
}
.npc-variant-profile .npc-mini-pet.species-rabbit .tail{
  right:10px;
  top:46px;
  width:10px;
  height:10px;
  transform:none;
}

.npc-variant-hero .npc-mini-pet.species-cat .tail{
  right:5px;
  top:38px;
  width:19px;
  height:7px;
  transform:rotate(-40deg);
}
.npc-variant-hero .npc-mini-pet.species-rabbit .tail{
  right:9px;
  top:43px;
  width:10px;
  height:10px;
  transform:none;
}


/* v8.10.5 — NPC ricomposti come animali completi scalati correttamente */
.npc-pet-frame{
  --npc-scale:.48;
  position:relative;
  width:100%;
  height:100%;
  display:block;
  overflow:visible;
}
.npc-pet-scale{
  position:absolute;
  left:50%;
  bottom:8px;
  width:150px;
  height:168px;
  transform:translateX(-50%) scale(var(--npc-scale));
  transform-origin:center bottom;
  pointer-events:none;
}
.npc-pet-shadow{
  left:50%;
  bottom:8px;
  width:42px;
  height:10px;
  background:rgba(55,44,35,.14);
}
.npc-mini-pet{
  position:absolute;
  left:0;
  bottom:0;
  width:150px;
  height:168px;
  animation:idle 2.3s ease-in-out infinite;
  filter:drop-shadow(0 10px 7px rgba(80,50,30,.10));
}

/* reset completo delle parti al layout base del pet */
.npc-mini-pet .head{left:26px;top:14px;width:98px;height:91px;border-radius:48% 48% 44% 44%}
.npc-mini-pet .body{left:42px;top:87px;width:68px;height:65px;border-radius:48% 48% 43% 43%}
.npc-mini-pet .belly{left:16px;top:14px;width:36px;height:42px;border-radius:50%}
.npc-mini-pet .ear{top:10px;width:38px;height:61px;border-radius:60% 48% 60% 45%}
.npc-mini-pet .ear-left{left:16px}
.npc-mini-pet .ear-right{right:16px}
.npc-mini-pet .face-eye{top:37px;width:9px;height:12px}
.npc-mini-pet .eye-left{left:27px}
.npc-mini-pet .eye-right{right:27px}
.npc-mini-pet .muzzle{left:27px;top:51px;width:44px;height:32px}
.npc-mini-pet .nose{left:15px;top:5px;width:15px;height:11px}
.npc-mini-pet .mouth{left:17px;top:17px;width:12px;height:7px;border-bottom-width:3px}
.npc-mini-pet .leg{top:137px;width:30px;height:26px}
.npc-mini-pet .leg-left{left:43px}
.npc-mini-pet .leg-right{right:43px}
.npc-mini-pet .tail{right:24px;top:103px;width:45px;height:18px;border-radius:18px;transform:rotate(-35deg);transform-origin:left center}

/* varianti specie come il pet principale */
.npc-mini-pet.species-cat .ear{top:2px;width:34px;height:48px;border-radius:6px;clip-path:polygon(50% 0,100% 100%,0 100%)}
.npc-mini-pet.species-cat .ear-left{left:20px;transform:rotate(-10deg)}
.npc-mini-pet.species-cat .ear-right{right:20px;transform:rotate(10deg)}
.npc-mini-pet.species-cat .tail{right:14px;top:98px;width:52px;height:14px;border-radius:999px;transform:rotate(-48deg)}
.npc-mini-pet.species-cat .muzzle{width:40px;left:29px}

.npc-mini-pet.species-rabbit .ear{top:-28px;width:27px;height:83px;border-radius:50% 50% 42% 42%}
.npc-mini-pet.species-rabbit .ear-left{left:33px;transform:rotate(-8deg)}
.npc-mini-pet.species-rabbit .ear-right{right:33px;transform:rotate(8deg)}
.npc-mini-pet.species-rabbit .head{top:22px}
.npc-mini-pet.species-rabbit .tail{right:20px;top:116px;width:24px;height:24px;border-radius:50%;transform:none}
.npc-mini-pet.species-rabbit .muzzle{background:var(--belly-fur)}

.npc-mini-pet.species-fox .ear{top:-1px;width:38px;height:53px;border-radius:4px;clip-path:polygon(50% 0,100% 100%,0 100%)}
.npc-mini-pet.species-fox .ear-left{left:17px;transform:rotate(-8deg)}
.npc-mini-pet.species-fox .ear-right{right:17px;transform:rotate(8deg)}
.npc-mini-pet.species-fox .muzzle{height:37px;border-radius:45% 45% 62% 62%}
.npc-mini-pet.species-fox .tail{right:-3px;top:97px;width:68px;height:25px;border-radius:65% 35% 65% 35%;transform:rotate(-31deg)}

.npc-mini-pet.species-bear .ear{top:7px;width:33px;height:33px;border-radius:50%}
.npc-mini-pet.species-bear .ear-left{left:18px;transform:none}
.npc-mini-pet.species-bear .ear-right{right:18px;transform:none}
.npc-mini-pet.species-bear .head{width:104px;left:23px}
.npc-mini-pet.species-bear .tail{right:27px;top:119px;width:20px;height:20px;border-radius:50%;transform:none}
.npc-mini-pet.species-bear .muzzle{width:48px;left:28px}

/* scale per i diversi contesti */
.npc-variant-scene{--npc-scale:.46}
.npc-variant-list{--npc-scale:.27}
.npc-variant-roster{--npc-scale:.25}
.npc-variant-profile{--npc-scale:.40}
.npc-variant-hero{--npc-scale:.37}

/* misure contenitori */
.location-npc-figure{
  position:relative;
  width:82px;
  height:84px;
}
.location-animal-avatar{
  width:40px;
  height:40px;
  overflow:visible;
}
.relationship-roster-avatar{
  width:38px;
  height:38px;
  overflow:visible;
}
.relationship-avatar{
  width:66px;
  height:66px;
  overflow:visible;
}
.location-friend-avatar{
  overflow:visible;
}

/* ombre nei contesti piccoli */
.npc-variant-list .npc-pet-shadow{
  width:22px;height:5px;bottom:3px;
}
.npc-variant-roster .npc-pet-shadow{
  width:21px;height:5px;bottom:3px;
}
.npc-variant-profile .npc-pet-shadow{
  width:31px;height:7px;bottom:6px;
}
.npc-variant-hero .npc-pet-shadow{
  width:28px;height:7px;bottom:5px;
}
.npc-variant-scene .npc-pet-shadow{
  width:34px;height:8px;bottom:6px;
}

/* niente ritagli o scomposizioni nei box */
.location-animal-avatar .npc-pet-frame,
.relationship-roster-avatar .npc-pet-frame,
.relationship-avatar .npc-pet-frame,
.location-friend-avatar .npc-pet-frame{
  overflow:visible;
}


/* v8.10.6 — immagini statiche NPC fuori dalle scene */
.npc-static-avatar{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  user-select:none;
  -webkit-user-drag:none;
  pointer-events:none;
}
.location-animal-avatar{
  overflow:hidden;
  border-radius:13px;
  background:transparent!important;
}
.location-animal-avatar .npc-static-avatar{
  width:40px;
  height:40px;
}
.relationship-roster-avatar{
  overflow:hidden;
  border-radius:13px;
  background:transparent!important;
}
.relationship-roster-avatar .npc-static-avatar{
  width:38px;
  height:38px;
}
.relationship-avatar{
  overflow:hidden!important;
  background:transparent!important;
  box-shadow:none!important;
}
.relationship-avatar .npc-static-avatar{
  width:66px;
  height:66px;
}
.location-friend-avatar{
  overflow:hidden!important;
  background:transparent!important;
}
.location-friend-avatar .npc-static-avatar{
  width:58px;
  height:58px;
}
#locationNextAnimalIcon{
  overflow:hidden;
}
#locationNextAnimalIcon .npc-static-avatar{
  width:37px;
  height:37px;
  border-radius:12px;
}
.npc-next-empty{
  display:grid;
  width:37px;
  height:37px;
  place-items:center;
  font-size:calc(20px + var(--tp-text-extra,0px));
}

/* fuori dalla scena non servono più le miniature CSS animate */
.npc-static-list,
.npc-static-roster,
.npc-static-profile,
.npc-static-hero,
.npc-static-next{
  animation:none!important;
}


/* v8.11 — Veterinario e salute avanzata */
.city-location-scene.place-vet{
  background:linear-gradient(#e7f0f1 0 34%,#e9e6df 34% 75%,#b8afa4 75% 100%);
}
.city-location-scene.place-vet .city-location-sky{display:none}
.city-location-scene.place-vet .location-vet-decor{display:block}
.vet-wall-sign{
  position:absolute;left:50%;top:22px;transform:translateX(-50%);
  min-width:150px;padding:9px 14px;border-radius:13px;background:#5d857f;color:#fff;
  display:flex;align-items:center;justify-content:center;gap:8px;font-size:calc(11.5px + var(--tp-text-extra,0px));letter-spacing:.08em;font-weight:950;
}
.vet-wall-sign span{font-size:calc(17px + var(--tp-text-extra,0px))}
.vet-cabinet{
  position:absolute;top:82px;width:72px;height:126px;border-radius:8px;background:#f7f8f6;
  border:5px solid #c9d3d1;box-shadow:inset 0 -42px rgba(131,169,163,.10),inset 0 -84px rgba(131,169,163,.06);
}
.vet-cabinet::before,.vet-cabinet::after{content:"";position:absolute;left:0;right:0;height:4px;background:#c7d1cf}
.vet-cabinet::before{top:39px}.vet-cabinet::after{top:80px}
.vet-cabinet i::after{content:"🧴";position:absolute;left:11px;top:8px;font-size:calc(19px + var(--tp-text-extra,0px))}
.vet-cabinet b::after{content:"💊";position:absolute;right:10px;top:51px;font-size:calc(18px + var(--tp-text-extra,0px))}
.vet-cabinet-a{left:7%}.vet-cabinet-b{right:7%}
.vet-exam-table{
  position:absolute;left:50%;bottom:48px;transform:translateX(-50%);
  width:116px;height:58px;border-radius:18px 18px 7px 7px;background:#d7e2df;border-top:10px solid #87aaa4;
  display:grid;place-items:center;box-shadow:0 8px 0 rgba(72,84,80,.08)
}
.vet-exam-table span{font-size:28px}
.vet-scale{
  position:absolute;left:25%;bottom:48px;width:52px;height:31px;border-radius:9px;background:#d3d5d0;display:grid;place-items:center
}
.vet-scale span{font-size:21px}
.vet-monitor{
  position:absolute;right:23%;top:104px;width:67px;height:45px;border-radius:8px;background:#3d5050;border:5px solid #8ca29f;display:grid;place-items:center
}
.vet-monitor span{color:#78d4b1;font-size:calc(20px + var(--tp-text-extra,0px))}.vet-monitor i{position:absolute;left:7px;right:7px;bottom:6px;height:2px;background:#78d4b1;opacity:.5}
.vet-stool{
  position:absolute;right:23%;bottom:51px;width:41px;height:20px;border-radius:50%;background:#77928e;box-shadow:0 20px 0 -16px #566d69
}
.city-location-action-health{background:#edf5f3}
.city-place-vet{background:rgba(244,251,250,.95)!important}

/* Clinic panel */
.vet-clinic-panel{
  margin-top:10px;padding:13px;border-radius:22px;background:linear-gradient(180deg,#eef6f4,#e7f0ee);
  border:1px solid rgba(74,107,101,.10)
}
.vet-clinic-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start}
.vet-clinic-head h3{margin-top:3px;font-size:calc(17px + var(--tp-text-extra,0px))}
.vet-clinic-head p{margin-top:4px;color:var(--muted);font-size:calc(10.5px + var(--tp-text-extra,0px));line-height:1.35;font-weight:650}
.vet-condition-card{
  display:grid;grid-template-columns:50px minmax(0,1fr) auto;gap:10px;align-items:center;
  margin-top:10px;padding:11px;border-radius:17px;background:#fff
}
.vet-condition-card.sick{background:#fff3ef}
.vet-condition-icon{width:50px;height:50px;border-radius:15px;background:#edf5ee;display:grid;place-items:center;font-size:26px}
.vet-condition-card strong{display:block;margin-top:3px;font-size:calc(12px + var(--tp-text-extra,0px))}
.vet-condition-card p{margin-top:2px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));line-height:1.3}
.vet-condition-badge{padding:5px 7px;border-radius:999px;background:#e5efe7;color:#58705c;font-size:calc(9px + var(--tp-text-extra,0px));font-weight:950}
.vet-vitals{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:9px}
.vet-vitals>div{padding:8px 5px;border-radius:14px;background:rgba(255,255,255,.72);text-align:center}
.vet-vitals span{font-size:calc(17px + var(--tp-text-extra,0px))}.vet-vitals strong{display:block;margin-top:3px;font-size:calc(10.5px + var(--tp-text-extra,0px))}.vet-vitals small{display:block;margin-top:2px;color:var(--muted);font-size:calc(8px + var(--tp-text-extra,0px))}
.vet-diagnosis-card{margin-top:9px;padding:11px;border-radius:17px;background:#fff}
.vet-diagnosis-head{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.vet-diagnosis-head strong{display:block;margin-top:3px;font-size:calc(12px + var(--tp-text-extra,0px))}
.vet-diagnosis-head>span{color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));font-weight:800}
.vet-diagnosis-card>p{margin-top:5px;color:var(--muted);font-size:calc(9.5px + var(--tp-text-extra,0px));line-height:1.35}
.vet-prescription{display:grid;grid-template-columns:34px minmax(0,1fr);gap:8px;align-items:center;margin-top:8px;padding:8px;border-radius:13px;background:#eef5f0}
.vet-prescription>span{font-size:calc(20px + var(--tp-text-extra,0px))}.vet-prescription small{display:block;color:var(--muted);font-size:calc(8px + var(--tp-text-extra,0px));font-weight:900}.vet-prescription strong{display:block;margin-top:2px;font-size:calc(10.5px + var(--tp-text-extra,0px))}.vet-prescription p{margin-top:2px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px))}
.vet-services{margin-top:10px}
.vet-service-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:7px}
.vet-service-grid button{min-height:88px;padding:9px;border:1px solid rgba(70,101,95,.09);border-radius:15px;background:#fff;color:inherit;text-align:left}
.vet-service-grid button span{font-size:21px}.vet-service-grid button strong{display:block;margin-top:6px;font-size:calc(10.5px + var(--tp-text-extra,0px))}.vet-service-grid button small{display:block;margin-top:2px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));line-height:1.25}.vet-service-grid button:disabled{opacity:.42}
.vet-followup-card{display:grid;grid-template-columns:38px minmax(0,1fr);gap:8px;align-items:center;margin-top:9px;padding:9px;border-radius:15px;background:rgba(255,255,255,.65)}
.vet-followup-card>span{width:38px;height:38px;border-radius:12px;background:#fff;display:grid;place-items:center;font-size:calc(19px + var(--tp-text-extra,0px))}
.vet-followup-card small{display:block;color:var(--muted);font-size:calc(8px + var(--tp-text-extra,0px));font-weight:900}.vet-followup-card strong{display:block;margin-top:2px;font-size:calc(10.5px + var(--tp-text-extra,0px))}.vet-followup-card p{margin-top:2px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px))}
.vet-history-wrap{margin-top:10px}.vet-history-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.vet-history-head strong{font-size:calc(9.5px + var(--tp-text-extra,0px));color:var(--muted)}
.vet-history{display:grid;gap:6px;margin-top:7px}.vet-history-item{display:grid;grid-template-columns:34px minmax(0,1fr);gap:8px;align-items:center;padding:8px;border-radius:13px;background:rgba(255,255,255,.68)}
.vet-history-item>span{width:34px;height:34px;border-radius:11px;background:#fff;display:grid;place-items:center;font-size:calc(17px + var(--tp-text-extra,0px))}.vet-history-item strong{display:block;font-size:calc(10.5px + var(--tp-text-extra,0px))}.vet-history-item small{display:block;margin-top:2px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));line-height:1.25}
.vet-empty{padding:10px;border-radius:13px;background:rgba(255,255,255,.6);color:var(--muted);font-size:calc(9.5px + var(--tp-text-extra,0px));text-align:center}
.health-vet-action{grid-column:1/-1;background:#edf5f3!important}

/* Relationship panel must actually sit above city location on the first tap */
.relationship-sheet,
.relationship-sheet.relationship-front{
  z-index:46!important;
}
.relationship-sheet:not(.hidden){
  visibility:visible!important;
  pointer-events:auto!important;
}
.city-location-sheet{z-index:31}
@media(max-width:390px){
  .vet-vitals{grid-template-columns:1fr 1fr}
  .vet-service-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:350px){
  .vet-service-grid{grid-template-columns:1fr}
}


/* v8.12 — Meteo & temperatura */
.weather-home-card{
  width:100%;
  border:1px solid var(--line);
  color:inherit;
  text-align:left;
  padding:15px;
  background:linear-gradient(180deg,#f1f6f7,#eef3f0);
}
.weather-home-main{
  display:grid;
  grid-template-columns:52px minmax(0,1fr) auto;
  gap:11px;
  align-items:center;
}
.weather-home-icon{
  width:52px;height:52px;
  border-radius:17px;
  background:#fff;
  display:grid;place-items:center;
  font-size:28px;
  box-shadow:0 7px 17px rgba(68,79,75,.08);
}
.weather-home-copy h2{margin-top:3px;font-size:calc(15px + var(--tp-text-extra,0px))}
.weather-home-copy p{margin-top:3px;color:var(--muted);font-size:calc(10.5px + var(--tp-text-extra,0px));line-height:1.3;font-weight:650}
.weather-home-temp{text-align:right}
.weather-home-temp strong{display:block;font-size:25px;letter-spacing:-.04em}
.weather-home-temp small{display:block;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));font-weight:750}
.weather-home-meta{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  margin-top:11px;
}
.weather-home-meta span{
  padding:6px 8px;
  border-radius:999px;
  background:rgba(255,255,255,.7);
  font-size:calc(9.5px + var(--tp-text-extra,0px));
  font-weight:800;
}
.weather-home-card[data-tone="hot"]{background:linear-gradient(180deg,#faeee7,#f8e8dd)}
.weather-home-card[data-tone="cold"]{background:linear-gradient(180deg,#eaf2f7,#e3eef5)}
.weather-home-card[data-tone="warm"]{background:linear-gradient(180deg,#f8f2e5,#f6eddd)}

.weather-sheet{max-height:94dvh;overflow-y:auto}
.weather-sheet-head{align-items:flex-start}
.weather-sheet-head p{margin-top:5px;color:var(--muted);font-size:calc(11.5px + var(--tp-text-extra,0px));line-height:1.35;font-weight:650}
.weather-detail-hero{
  display:grid;
  grid-template-columns:66px minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  padding:14px;
  border-radius:22px;
  background:linear-gradient(180deg,#eef5f6,#e8f0ee);
}
.weather-detail-icon{
  width:66px;height:66px;border-radius:21px;
  background:#fff;display:grid;place-items:center;font-size:36px;
  box-shadow:0 8px 20px rgba(67,82,79,.09);
}
.weather-detail-copy h3{margin-top:3px;font-size:calc(18px + var(--tp-text-extra,0px))}
.weather-detail-copy p{margin-top:4px;color:var(--muted);font-size:calc(10.5px + var(--tp-text-extra,0px));line-height:1.35;font-weight:650}
.weather-detail-temperature{text-align:right}
.weather-detail-temperature strong{display:block;font-size:30px;letter-spacing:-.05em}
.weather-detail-temperature small{display:block;color:var(--muted);font-size:calc(9.5px + var(--tp-text-extra,0px));font-weight:750}
.weather-detail-stats{
  display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:9px;
}
.weather-detail-stats>div{
  padding:10px 7px;border-radius:16px;background:var(--surface-2);text-align:center;
}
.weather-detail-stats span{font-size:calc(18px + var(--tp-text-extra,0px))}
.weather-detail-stats strong{display:block;margin-top:3px;font-size:calc(12px + var(--tp-text-extra,0px))}
.weather-detail-stats small{display:block;margin-top:2px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));font-weight:750}
.weather-impact-card{
  display:grid;grid-template-columns:46px minmax(0,1fr);gap:9px;align-items:center;
  margin-top:9px;padding:11px;border-radius:18px;background:#f8f5ef;
}
.weather-impact-card>span{
  width:46px;height:46px;border-radius:15px;background:#fff;display:grid;place-items:center;font-size:24px;
}
.weather-impact-card small{display:block;color:var(--muted);font-size:calc(8px + var(--tp-text-extra,0px));letter-spacing:.08em;font-weight:900}
.weather-impact-card strong{display:block;margin-top:3px;font-size:calc(11.5px + var(--tp-text-extra,0px))}
.weather-impact-card p{margin-top:3px;color:var(--muted);font-size:calc(9.5px + var(--tp-text-extra,0px));line-height:1.35;font-weight:650}
.weather-forecast-section{margin-top:14px}
.weather-section-title strong{display:block;margin-top:3px;font-size:calc(13px + var(--tp-text-extra,0px))}
.weather-forecast-list{display:grid;gap:6px;margin-top:8px}
.weather-forecast-item{
  display:grid;grid-template-columns:42px 35px minmax(0,1fr) auto;gap:8px;align-items:center;
  padding:9px;border-radius:14px;background:var(--surface-2);
}
.weather-forecast-item.current{background:#eaf2ed}
.weather-forecast-time{font-size:calc(9.5px + var(--tp-text-extra,0px));font-weight:900;color:var(--muted)}
.weather-forecast-icon{font-size:calc(20px + var(--tp-text-extra,0px));text-align:center}
.weather-forecast-item strong{display:block;font-size:calc(10.5px + var(--tp-text-extra,0px))}
.weather-forecast-item small{display:block;margin-top:2px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px))}
.weather-forecast-item>b{font-size:calc(14px + var(--tp-text-extra,0px))}

.city-map-overview-side{
  display:grid;justify-items:end;gap:6px;flex:0 0 auto;
}
.city-map-weather{
  display:grid;
  grid-template-columns:23px auto;
  grid-template-rows:auto auto;
  gap:0 5px;
  align-items:center;
  padding:6px 8px;
  border-radius:13px;
  background:#fff;
}
.city-map-weather>b{grid-row:1/3;font-size:calc(17px + var(--tp-text-extra,0px))}
.city-map-weather>strong{font-size:calc(11.5px + var(--tp-text-extra,0px))}
.city-map-weather>small{font-size:calc(8px + var(--tp-text-extra,0px));color:var(--muted);font-weight:800}

.city-location-weather-badge{
  position:absolute;
  right:12px;top:12px;z-index:13;
  min-width:85px;
  padding:8px 9px;
  border:0;border-radius:15px;
  background:rgba(255,255,255,.90);
  color:inherit;
  box-shadow:0 8px 20px rgba(47,58,43,.10);
  backdrop-filter:blur(8px);
  display:grid;
  grid-template-columns:24px auto;
  grid-template-rows:auto auto;
  gap:0 5px;
  align-items:center;
}
.city-location-weather-badge>span{grid-row:1/3;font-size:calc(18px + var(--tp-text-extra,0px))}
.city-location-weather-badge>strong{font-size:calc(11.5px + var(--tp-text-extra,0px))}
.city-location-weather-badge>small{font-size:calc(8px + var(--tp-text-extra,0px));color:var(--muted);font-weight:800}
.city-location-weather-badge.indoor{opacity:.76}

.walk-weather-bar{
  width:100%;
  margin:0 0 10px;
  padding:9px 11px;
  border:1px solid rgba(70,91,66,.08);
  border-radius:16px;
  background:#f1f6ef;
  color:inherit;
  display:grid;
  grid-template-columns:38px minmax(0,1fr) 16px;
  gap:8px;
  align-items:center;
  text-align:left;
}
.walk-weather-bar>span{
  width:38px;height:38px;border-radius:12px;background:#fff;
  display:grid;place-items:center;font-size:21px;
}
.walk-weather-bar strong{display:block;font-size:calc(11.5px + var(--tp-text-extra,0px))}
.walk-weather-bar small{display:block;margin-top:2px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));font-weight:700}
.walk-weather-bar>b{font-size:calc(17px + var(--tp-text-extra,0px))}

/* Weather particle layers */
.city-weather-layer,.walk-weather-layer,.city-map-weather-layer{
  position:absolute;inset:0;z-index:11;overflow:hidden;pointer-events:none;
}
.city-map-weather-layer{z-index:2;border-radius:25px}
.walk-weather-layer{z-index:4;border-radius:25px}
.weather-rain i,.weather-storm i{
  position:absolute;left:var(--x);top:-18px;
  width:2px;height:23px;border-radius:999px;
  background:rgba(190,222,237,.72);
  transform:rotate(12deg);
  animation:weatherRain .85s linear infinite;
  animation-delay:var(--d);
}
.weather-storm i{background:rgba(202,225,237,.84);animation-duration:.55s}
@keyframes weatherRain{to{transform:translate(18px,430px) rotate(12deg)}}

.weather-snow i{
  position:absolute;left:var(--x);top:-15px;
  width:7px;height:7px;border-radius:50%;
  background:rgba(255,255,255,.88);
  box-shadow:0 0 6px rgba(255,255,255,.5);
  animation:weatherSnow 4.1s linear infinite;
  animation-delay:var(--d);
}
@keyframes weatherSnow{
  50%{transform:translate(15px,210px)}
  to{transform:translate(-5px,430px)}
}
.weather-fog i{
  position:absolute;left:-15%;width:130%;height:38px;border-radius:50%;
  background:rgba(238,242,239,.38);filter:blur(10px);
  animation:weatherFog 7s ease-in-out infinite alternate;
}
.weather-fog i:nth-child(1){top:26%}
.weather-fog i:nth-child(2){top:47%;animation-delay:-2s}
.weather-fog i:nth-child(3){top:68%;animation-delay:-4s}
@keyframes weatherFog{to{transform:translateX(12%)}}

.city-location-scene.place-park:has(.city-weather-layer.weather-cloudy),
.city-location-scene.place-square:has(.city-weather-layer.weather-cloudy),
.city-location-scene.place-lake:has(.city-weather-layer.weather-cloudy){
  filter:saturate(.90) brightness(.96);
}
.city-location-scene:has(.city-weather-layer.weather-rain),
.city-location-scene:has(.city-weather-layer.weather-storm){
  filter:saturate(.82) brightness(.91);
}
.city-location-scene:has(.city-weather-layer.weather-snow){
  filter:saturate(.76) brightness(1.03);
}
.city-location-scene:has(.city-weather-layer.weather-fog){
  filter:saturate(.78) contrast(.94);
}

/* Window weather at home */
.room.weather-rain .room-window::after,
.room.weather-storm .room-window::after{
  content:"";
  position:absolute;inset:8px;
  background:repeating-linear-gradient(105deg,transparent 0 13px,rgba(142,193,219,.36) 14px 16px,transparent 17px 28px);
  animation:windowRain .9s linear infinite;
  pointer-events:none;
}
.room.weather-storm .room-window{box-shadow:inset 0 0 28px rgba(45,58,78,.20)}
.room.weather-snow .room-window::after{
  content:"•  ·   •    · •   ·";
  position:absolute;inset:8px;color:rgba(255,255,255,.9);
  font-size:calc(15px + var(--tp-text-extra,0px));letter-spacing:7px;line-height:22px;
  animation:windowSnow 3s linear infinite;
  pointer-events:none;
}
.room.weather-fog .room-window::after{
  content:"";
  position:absolute;inset:8px;background:rgba(235,241,239,.45);filter:blur(5px);
  pointer-events:none;
}
@keyframes windowRain{to{background-position:25px 55px}}
@keyframes windowSnow{to{transform:translateY(25px)}}

@media(max-width:390px){
  .weather-home-main{grid-template-columns:48px minmax(0,1fr) auto}
  .weather-home-icon{width:48px;height:48px}
  .weather-detail-hero{grid-template-columns:58px minmax(0,1fr)}
  .weather-detail-icon{width:58px;height:58px}
  .weather-detail-temperature{grid-column:1/-1;display:flex;align-items:baseline;gap:7px;text-align:left}
  .weather-detail-temperature strong{font-size:25px}
  .city-location-weather-badge{top:62px;right:9px}
}


/* v8.12.1 — dock attaccata al fondo del telefono */
body{
  overflow-x:hidden;
}
.dock-item{
  position:relative;
  min-height:62px;
  border-radius:18px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
}
.dock-item.active{
  background:#282421;
  color:#fff;
  box-shadow:0 8px 18px rgba(40,36,33,.18);
}
.dock-item.active::before{
  content:"";
  position:absolute;
  top:7px;
  left:50%;
  width:20px;
  height:3px;
  border-radius:999px;
  background:rgba(255,255,255,.75);
  transform:translateX(-50%);
}
.dock-item:active{
  transform:scale(.97);
}
@supports (padding:max(0px)){
  .dock{
    padding-bottom:max(10px,var(--safe-bottom));
  }
}
@media(max-width:390px){
  .dock{
    gap:4px;
    min-height:80px;
    padding-left:8px;
    padding-right:8px;
  }
  .dock-item{
    min-height:58px;
  }
  .dock-item>span{
    font-size:calc(20px + var(--tp-text-extra,0px));
  }
  .dock-item small{
    font-size:calc(10.5px + var(--tp-text-extra,0px));
  }
}


/* v8.12.2 — farmaci solo su prescrizione veterinaria */
.health-actions-two{
  grid-template-columns:1fr 1fr;
}
.health-rx-card{
  margin-top:16px;
  padding:12px;
  border-radius:19px;
  background:linear-gradient(180deg,#eef5f0,#e8f0eb);
  border:1px solid rgba(73,108,89,.09);
}
.health-rx-main{
  display:grid;
  grid-template-columns:48px minmax(0,1fr);
  gap:10px;
  align-items:center;
}
.health-rx-icon{
  width:48px;height:48px;border-radius:15px;
  background:#fff;display:grid;place-items:center;font-size:25px;
}
.health-rx-main strong{display:block;margin-top:3px;font-size:calc(12px + var(--tp-text-extra,0px))}
.health-rx-main p{margin-top:3px;color:var(--muted);font-size:calc(9.5px + var(--tp-text-extra,0px));line-height:1.35;font-weight:650}
.health-rx-meta{
  display:flex;gap:6px;flex-wrap:wrap;margin-top:6px;
}
.health-rx-meta span,.health-rx-meta b{
  padding:4px 6px;border-radius:999px;background:#fff;
  font-size:calc(9px + var(--tp-text-extra,0px));font-weight:850;
}
.health-rx-meta b{color:#607467}
.health-rx-dose{
  width:100%;min-height:40px;margin-top:9px;border:0;border-radius:13px;
  background:#334b3d;color:#fff;font-size:calc(10.5px + var(--tp-text-extra,0px));font-weight:900;
}
.health-rx-dose:disabled{opacity:.45}

.vet-rx-medicine{
  margin-top:9px;
  padding:10px;
  border-radius:16px;
  background:linear-gradient(180deg,#edf4ee,#e7efe9);
  border:1px solid rgba(70,105,83,.09);
}
.vet-rx-header{
  display:grid;
  grid-template-columns:43px minmax(0,1fr) auto;
  gap:8px;
  align-items:center;
}
.vet-rx-icon{
  width:43px;height:43px;border-radius:14px;
  background:#fff;display:grid;place-items:center;font-size:23px;
}
.vet-rx-header small{display:block;color:var(--muted);font-size:calc(8px + var(--tp-text-extra,0px));font-weight:900;letter-spacing:.08em}
.vet-rx-header strong{display:block;margin-top:2px;font-size:calc(11.5px + var(--tp-text-extra,0px))}
.vet-rx-header p{margin-top:2px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));line-height:1.3}
.vet-rx-header>span{
  padding:5px 7px;border-radius:999px;background:#fff;color:#58705f;
  font-size:calc(8px + var(--tp-text-extra,0px));font-weight:950;
}
.vet-rx-regimen{
  display:flex;gap:5px;flex-wrap:wrap;margin-top:8px;
}
.vet-rx-regimen span{
  padding:5px 7px;border-radius:999px;background:rgba(255,255,255,.72);
  font-size:calc(9px + var(--tp-text-extra,0px));font-weight:800;
}
.vet-rx-actions{
  display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:8px;
}
.vet-rx-actions button{
  min-height:40px;border:0;border-radius:12px;background:#3d5b49;color:#fff;
  font-size:calc(9.5px + var(--tp-text-extra,0px));font-weight:900;
}
.vet-rx-actions button:first-child{background:#6b5547}
.vet-rx-actions button:disabled{opacity:.42}
.vet-rx-note{
  margin-top:7px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));line-height:1.35;font-weight:650;
}
@media(max-width:360px){
  .health-actions-two,.vet-rx-actions{grid-template-columns:1fr}
}


/* v8.13 — ritmo di riposo realistico */
.pet.resting:not(.sleeping){
  animation:dogRestBreathe 3.4s ease-in-out infinite!important;
}
.pet.resting:not(.sleeping) .face-eye{
  height:6px;
  top:40px;
  border-radius:50% 50% 70% 70%;
  transform:scaleY(.72);
}
.pet.resting:not(.sleeping) .mouth{
  width:10px;
  height:5px;
  top:18px;
}
.pet.resting:not(.sleeping) .ear-left{
  filter:brightness(.98);
}
.pet.resting:not(.sleeping) .tail{
  animation:restTail 2.8s ease-in-out infinite alternate!important;
}
@keyframes dogRestBreathe{
  0%,100%{transform:translateY(2px) scaleY(.985)}
  50%{transform:translateY(0) scaleY(1)}
}
@keyframes restTail{
  from{transform:rotate(-28deg)}
  to{transform:rotate(-18deg)}
}
.pet-zone.activity-rest{
  transition:left .8s ease,top .8s ease,transform .8s ease!important;
}
.pet-zone.activity-rest .pet{
  transform:rotate(-4deg) scale(.96);
}
.pet-zone.activity-rest .shadow{
  opacity:.16;
  transform:scaleX(.92);
}
.room.pet-resting .pet-zone{
  filter:saturate(.96);
}
.city-location-pet-zone .pet.resting:not(.sleeping){
  transform:scale(.80) rotate(-3deg);
}


/* v8.14 — luoghi comunitari più illustrati e NPC in scala più realistica */

/* ---------- Parco ---------- */
.location-fountain{
  position:absolute;
  left:22%;
  bottom:63px;
  width:74px;
  height:48px;
  border-radius:50%;
  background:radial-gradient(circle at 50% 42%,#c8eaf4 0 33%,#93c8d5 34% 66%,#b7b4ae 67% 100%);
  box-shadow:0 8px 0 rgba(122,126,118,.20), inset 0 3px 0 rgba(255,255,255,.58);
  overflow:visible;
}
.location-fountain span{font-size:0!important;color:transparent!important}
.location-fountain::before{
  content:"";
  position:absolute;
  left:50%;
  bottom:13px;
  width:12px;
  height:23px;
  transform:translateX(-50%);
  border-radius:8px;
  background:linear-gradient(180deg,#b9b6b0,#8f928f);
  box-shadow:0 -11px 0 5px #c8c7c2;
}
.location-fountain::after{
  content:"";
  position:absolute;
  left:50%;
  top:5px;
  width:24px;
  height:24px;
  transform:translateX(-50%);
  border-radius:50%;
  border:3px solid rgba(122,193,216,.55);
  border-top-color:rgba(122,193,216,.78);
  border-left-color:rgba(122,193,216,.78);
  background:radial-gradient(circle at 50% 70%,rgba(255,255,255,.9),rgba(122,193,216,.1));
  animation:tinyPalFountainJet 2.8s ease-in-out infinite;
}
@keyframes tinyPalFountainJet{
  0%,100%{transform:translateX(-50%) scale(.94)}
  50%{transform:translateX(-50%) scale(1.03)}
}
.location-park-bench{
  right:18%;
  bottom:73px;
  width:80px;
  height:29px;
  border-top:8px solid #8a6648;
  border-bottom:7px solid #8a6648;
  border-left:3px solid transparent;
  border-right:3px solid transparent;
  box-shadow:inset 0 5px 0 rgba(255,255,255,.12);
}
.location-park-bench::before,
.location-park-bench::after{
  width:6px;
  height:17px;
  bottom:-15px;
  background:#6d5039;
  border-radius:2px;
}
.location-bush{
  width:68px;
  height:33px;
  background:radial-gradient(circle at 40% 35%,#7fba71 0 28%,#69a75d 29% 100%);
  box-shadow:-17px 8px 0 -9px #5f9c54, 18px 7px 0 -8px #6cad60;
}

/* ---------- Negozio ---------- */
.shop-wall-sign{
  top:20px;
  padding:10px 18px;
  border-radius:13px;
  background:linear-gradient(180deg,#b57b60,#8e5f48);
  box-shadow:0 7px 0 rgba(96,64,46,.18);
}
.shop-shelf{
  background:linear-gradient(180deg,#d8b69a,#c69c7d);
  box-shadow:inset 0 -37px rgba(255,255,255,.12), inset 0 -75px rgba(255,255,255,.08), 0 8px 18px rgba(98,72,53,.12);
}
.shop-shelf i,.shop-shelf b,.shop-shelf em{
  position:absolute;
  display:block;
  border-radius:7px;
  font-style:normal;
}
.shop-shelf i::after,.shop-shelf b::after,.shop-shelf em::after{content:""!important}
.shop-shelf i{
  left:12px;top:10px;width:20px;height:26px;
  background:linear-gradient(180deg,#f2efe7,#d7d0c5);
  border:2px solid #b79f7e;
  box-shadow:24px 3px 0 -2px #d46c5e;
}
.shop-shelf i::before{
  content:"";
  position:absolute;
  left:4px;right:4px;top:6px;height:5px;
  border-radius:5px;background:#8ac07a;
  box-shadow:24px 6px 0 1px #f0c458;
}
.shop-shelf b{
  left:10px;top:51px;width:22px;height:22px;
  background:radial-gradient(circle at 50% 50%,#8fc6f4 0 30%,#f6df7d 31% 58%,#e6b84b 59% 100%);
  box-shadow:29px 3px 0 -4px #e3988f;
}
.shop-shelf b::before{
  content:"";
  position:absolute;
  left:31px;top:2px;width:14px;height:18px;
  border-radius:4px;
  background:linear-gradient(180deg,#fff6da,#ecd7a2);
  box-shadow:0 0 0 2px #c0ac7f;
}
.shop-shelf em{
  left:12px;bottom:9px;width:24px;height:20px;
  background:linear-gradient(180deg,#d0ad89,#bd936d);
  border-radius:8px 8px 10px 10px;
  box-shadow:27px -1px 0 -3px #91b084;
}
.shop-shelf em::before{
  content:"";
  position:absolute;
  left:3px;right:3px;top:3px;height:8px;
  border-radius:6px;background:rgba(255,255,255,.38);
}
.shop-counter{
  right:24%;
  bottom:44px;
  width:103px;
  height:57px;
  border-radius:10px 10px 4px 4px;
  background:linear-gradient(180deg,#ae7c5c,#94684d);
  border-top:10px solid #7e5942;
  box-shadow:0 10px 18px rgba(87,60,42,.14);
}
.shop-counter span{font-size:0!important;color:transparent!important}
.shop-counter::before{
  content:"";
  position:absolute;
  left:13px;top:8px;width:30px;height:20px;border-radius:5px;
  background:#e9e6dd;
  box-shadow:0 0 0 3px #6d7269;
}
.shop-counter::after{
  content:"";
  position:absolute;
  right:14px;top:8px;width:22px;height:25px;border-radius:4px 4px 7px 7px;
  background:linear-gradient(180deg,#f6efdf,#dcc8a1);
  box-shadow:0 0 0 2px #b59665;
}
.shop-display{
  left:21%;
  bottom:50px;
  gap:8px;
  padding:10px 11px;
  background:rgba(255,255,255,.62);
  border:1px solid rgba(145,120,94,.16);
}
.shop-display span{
  display:block;
  position:relative;
  width:22px;height:22px;
  font-size:0!important;color:transparent!important;
  border-radius:7px;
}
.shop-display span:nth-child(1){
  border-radius:50%;
  background:radial-gradient(circle at 50% 50%,#8bc1f0 0 31%,#f1d97b 32% 58%,#e4b246 59% 100%);
}
.shop-display span:nth-child(2){
  background:linear-gradient(180deg,#d2ae89,#b98862);
  border-radius:8px 8px 10px 10px;
}
.shop-display span:nth-child(2)::before{
  content:"";
  position:absolute;left:4px;right:4px;top:4px;height:8px;border-radius:6px;background:rgba(255,255,255,.34);
}
.shop-display span:nth-child(3){
  background:linear-gradient(180deg,#f7efdf,#dfd4c4);
  box-shadow:0 0 0 2px #baa784 inset;
}
.shop-display span:nth-child(3)::before{
  content:"";
  position:absolute;left:5px;right:5px;top:5px;height:5px;border-radius:6px;background:#8cb66f;
}

/* ---------- Piazza ---------- */
.square-fountain{
  width:110px;
  height:110px;
  box-shadow:inset 0 0 0 14px #9fc5cf, 0 7px 0 #a59e92, 0 16px 20px rgba(86,86,80,.10);
}
.square-fountain span{
  position:absolute;
  left:50%;
  top:50%;
  width:16px;
  height:16px;
  transform:translate(-50%,-50%);
  font-size:0!important;color:transparent!important;
  border-radius:50%;
  background:rgba(255,255,255,.88);
  box-shadow:0 -15px 0 4px rgba(162,201,216,.9), 0 16px 0 26px rgba(171,214,225,.22);
}
.square-fountain::before{
  content:"";
  position:absolute;
  left:50%;top:50%;
  width:26px;height:42px;
  transform:translate(-50%,-35%);
  border-radius:12px;
  background:linear-gradient(180deg,#c7c3bc,#999e9b);
}
.square-planter{
  width:68px;height:33px;
  background:linear-gradient(180deg,#b18766,#986f53);
  box-shadow:0 6px 0 rgba(89,66,49,.12);
}
.square-planter::before{content:none!important}
.square-planter i{
  position:absolute;left:16px;top:-25px;width:8px;height:30px;border-radius:9px;background:#59864f;
  box-shadow:12px 6px 0 #6a995d,25px -1px 0 #5c8b52;
}
.square-planter i::before,
.square-planter i::after{
  content:"";
  position:absolute;
  width:18px;height:11px;border-radius:70% 30% 70% 30%;
  background:#6faa62;
}
.square-planter i::before{left:-8px;top:4px;transform:rotate(-24deg)}
.square-planter i::after{left:10px;top:-3px;transform:rotate(26deg)}
.square-lamp::before{
  width:34px;height:29px;
  left:-13px;top:-16px;
  background:linear-gradient(180deg,#f6e4a5,#e2c56d);
  box-shadow:0 0 24px rgba(239,215,141,.42);
}

/* ---------- Laghetto ---------- */
.lake-water{
  box-shadow:inset 0 12px rgba(255,255,255,.14), inset 0 26px 0 rgba(255,255,255,.06);
}
.lake-water>span{font-size:0!important;color:transparent!important}
.lake-water::before,
.lake-water::after{
  content:"";
  position:absolute;
  width:28px;height:18px;
  border-radius:52% 48% 46% 50%;
  animation:tinyPalDuckFloat 3.6s ease-in-out infinite alternate;
}
.lake-water::before{
  left:59%;
  top:30px;
  background:
    radial-gradient(circle at 76% 35%,#f5a44f 0 12%,transparent 13%),
    radial-gradient(circle at 80% 34%,#f5a44f 0 8%,transparent 9%),
    radial-gradient(circle at 72% 22%,#faf4df 0 23%,transparent 24%),
    radial-gradient(circle at 26% 57%,#faf4df 0 58%,transparent 59%);
}
.lake-water::after{
  left:69%;
  top:48px;
  transform:scale(.78);
  animation-duration:4.1s;
  background:
    radial-gradient(circle at 76% 35%,#f5a44f 0 12%,transparent 13%),
    radial-gradient(circle at 72% 22%,#faf4df 0 23%,transparent 24%),
    radial-gradient(circle at 26% 57%,#faf4df 0 58%,transparent 59%);
}
.lake-water>i,.lake-water>b{
  position:absolute;
  display:block;
  width:18px;height:6px;
  border-radius:50%;
  border:2px solid rgba(255,255,255,.50);
  border-top:0;
  border-left-color:transparent;
  border-right-color:transparent;
}
.lake-water>i{left:60%;top:52px}
.lake-water>b{left:70%;top:67px;transform:scale(.8)}
@keyframes tinyPalDuckFloat{
  from{transform:translateY(0) rotate(-2deg)}
  to{transform:translateY(4px) translateX(12px) rotate(2deg)}
}
.lake-reeds{
  box-shadow:10px 7px #5a804c,19px -3px #4d7244,29px 9px #648956,37px 1px #557c4d;
}

/* ---------- Veterinario ---------- */
.city-location-scene.place-vet .location-vet-decor{display:block}
.vet-wall-sign{
  background:linear-gradient(180deg,#eef5f2,#dce9e3)!important;
  border:1px solid rgba(92,127,116,.16);
  box-shadow:0 8px 18px rgba(66,93,86,.10);
}
.vet-wall-sign span{font-size:0!important;color:transparent!important; position:relative; width:18px; height:18px; display:block}
.vet-wall-sign span::before,
.vet-wall-sign span::after{
  content:"";
  position:absolute;
  left:50%;top:50%;
  transform:translate(-50%,-50%);
  background:#5b907d;
  border-radius:3px;
}
.vet-wall-sign span::before{width:6px;height:18px}
.vet-wall-sign span::after{width:18px;height:6px}
.vet-exam-table span,
.vet-scale span,
.vet-monitor span{font-size:0!important;color:transparent!important}
.vet-exam-table{
  box-shadow:0 8px 0 rgba(72,84,80,.08), 0 12px 18px rgba(79,92,88,.10);
}
.vet-exam-table::before{
  content:"";
  position:absolute;
  left:50%;
  top:10px;
  width:62px;height:18px;
  transform:translateX(-50%);
  border-radius:999px;
  background:rgba(255,255,255,.72);
}
.vet-exam-table::after{
  content:"";
  position:absolute;
  left:50%;bottom:-16px;
  width:12px;height:16px;
  transform:translateX(-50%);
  background:#98aca7;
  border-radius:0 0 6px 6px;
}
.vet-scale::before{
  content:"";
  display:block;
  width:24px;height:24px;border-radius:50%;
  background:#fff;
  box-shadow:0 0 0 3px #9fb5ad inset;
}
.vet-scale::after{
  content:"";
  position:absolute;
  left:50%;top:50%;
  width:9px;height:2px;border-radius:999px;background:#6f857d;
  transform:translate(-10%,-220%) rotate(-24deg);
  transform-origin:left center;
}
.vet-monitor::before{
  content:"";
  display:block;
  width:40px;height:16px;
  background:
    linear-gradient(135deg,transparent 0 18%,#a8f0cb 19% 27%,transparent 28% 37%,#a8f0cb 38% 47%,transparent 48% 57%,#a8f0cb 58% 66%,transparent 67% 100%);
  opacity:.92;
}
.vet-monitor i{
  border-radius:0 0 4px 4px;
}
.vet-monitor i::before{
  content:"";
  position:absolute;left:50%;bottom:-6px;width:34px;height:6px;background:#95a8a3;transform:translateX(-50%);border-radius:6px;
}

/* ---------- NPC nei luoghi: più piccoli del pet principale ---------- */
.city-location-pet-zone .pet{
  transform:scale(.86);
}
.location-npc{
  --scene-npc-scale:.30;
  width:86px;
  min-height:104px;
}
.location-npc.selected{
  transform:translate(-50%,-50%) scale(1.03);
}
.location-npc-figure{
  width:66px;
  height:72px;
}
.location-npc .npc-variant-scene{
  --npc-scale:var(--scene-npc-scale);
}
.location-npc.species-dog{--scene-npc-scale:.31}
.location-npc.species-cat{--scene-npc-scale:.29}
.location-npc.species-rabbit{--scene-npc-scale:.24}
.location-npc.species-fox{--scene-npc-scale:.30}
.location-npc.species-bear{--scene-npc-scale:.33}
.location-npc-name{
  margin-top:4px;
  font-size:calc(9px + var(--tp-text-extra,0px));
  padding:3px 7px;
}
.location-npc>small{
  width:76px;
  padding:4px 5px;
  font-size:calc(7.5px + var(--tp-text-extra,0px));
  line-height:1.25;
}
.location-npc>b{
  font-size:calc(7.5px + var(--tp-text-extra,0px));
  padding:3px 6px;
}
.npc-variant-scene .npc-pet-shadow{
  width:28px;
  height:7px;
  bottom:5px;
}
.city-location-visitors{
  pointer-events:none;
}
.city-location-visitors .location-npc{
  pointer-events:auto;
}
.city-location-label{
  backdrop-filter:blur(6px);
  background:rgba(255,255,255,.86);
}
.location-social-card{
  border:1px solid rgba(95,70,91,.07);
}


/* v8.15 — calendario reale, compleanno, visite e meteo della città */
.calendar-home-card{
  width:100%;
  border:1px solid var(--line);
  padding:14px;
  color:inherit;
  text-align:left;
  display:grid;
  grid-template-columns:64px minmax(0,1fr) 18px;
  gap:12px;
  align-items:center;
  background:linear-gradient(180deg,#f8f3eb,#f4eee5);
}
.calendar-home-date{
  width:64px;
  min-height:76px;
  border-radius:19px;
  background:#fff;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  box-shadow:0 7px 18px rgba(77,60,43,.07);
}
.calendar-home-weekday{font-size:calc(8px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.08em;color:#9a5d51}
.calendar-home-date strong{font-size:29px;line-height:1;margin-top:3px}
.calendar-home-date small{font-size:calc(8px + var(--tp-text-extra,0px));font-weight:850;color:var(--muted);margin-top:4px;text-align:center}
.calendar-home-copy h2{font-size:calc(14px + var(--tp-text-extra,0px));margin-top:3px}
.calendar-home-copy p{font-size:calc(9.5px + var(--tp-text-extra,0px));line-height:1.35;color:var(--muted);font-weight:650;margin-top:4px}
.calendar-home-tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px}
.calendar-home-tags span{padding:4px 6px;border-radius:999px;background:#fff;font-size:calc(8.5px + var(--tp-text-extra,0px));font-weight:850;color:#74675d}
.calendar-home-arrow{font-size:21px;color:#9a8d82}

.calendar-sheet{max-height:95dvh;overflow-y:auto}
.calendar-sheet-head p{margin-top:5px;color:var(--muted);font-size:calc(10.5px + var(--tp-text-extra,0px));line-height:1.35;font-weight:650}
.pet-birthday-card{
  padding:12px;border-radius:19px;background:linear-gradient(180deg,#fff4ec,#f9ece5);
  border:1px solid rgba(149,90,78,.08);
}
.pet-birthday-copy strong{display:block;font-size:calc(13px + var(--tp-text-extra,0px));margin-top:4px}
.pet-birthday-copy p{font-size:calc(9.5px + var(--tp-text-extra,0px));color:var(--muted);line-height:1.35;margin-top:3px;font-weight:650}
.pet-birthday-editor{display:grid;grid-template-columns:1fr auto;gap:7px;margin-top:9px}
.pet-birthday-editor input,.calendar-appointment-form input,.calendar-appointment-form select{
  min-width:0;height:42px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:0 10px;color:inherit;font:inherit;font-size:calc(10.5px + var(--tp-text-extra,0px))
}
.pet-birthday-editor button,.calendar-appointment-form button{
  min-height:42px;border:0;border-radius:12px;background:#6d5548;color:#fff;font-size:calc(9.5px + var(--tp-text-extra,0px));font-weight:900;padding:0 12px
}

.calendar-month-card,.calendar-day-events-card,.calendar-appointment-card,.calendar-upcoming-card{
  margin-top:9px;padding:11px;border-radius:19px;background:var(--surface-2)
}
.calendar-month-head{display:grid;grid-template-columns:38px 1fr 38px;align-items:center;text-align:center}
.calendar-month-head button{
  width:38px;height:38px;border:0;border-radius:12px;background:#fff;color:inherit;font-size:22px;font-weight:800
}
.calendar-month-head strong{display:block;margin-top:2px;font-size:calc(13px + var(--tp-text-extra,0px));text-transform:capitalize}
.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin-top:10px}
.calendar-weekdays span{text-align:center;font-size:calc(8px + var(--tp-text-extra,0px));font-weight:950;color:var(--muted)}
.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-top:5px}
.calendar-day{
  aspect-ratio:1/1.02;border:0;border-radius:10px;background:#fff;color:inherit;
  display:grid;place-items:center;align-content:center;gap:3px;padding:3px
}
.calendar-day>span{font-size:calc(10.5px + var(--tp-text-extra,0px));font-weight:850}
.calendar-day.weekend{background:#fbf4f1}
.calendar-day.today{box-shadow:inset 0 0 0 2px #8f6c5d}
.calendar-day.selected{background:#423b36;color:#fff}
.calendar-day.empty{background:transparent}
.calendar-event-dots{display:flex;gap:2px;height:4px;align-items:center}
.calendar-event-dots b{width:3px;height:3px;border-radius:50%;background:#879d88}
.calendar-event-dots .event-birthday{background:#d98f82}
.calendar-event-dots .event-dose{background:#738da6}
.calendar-event-dots .event-followup{background:#9c7e9a}
.calendar-event-dots .event-prevention{background:#6e9477}

.calendar-day-events-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.calendar-day-events-head strong{display:block;font-size:calc(12px + var(--tp-text-extra,0px));margin-top:3px}
.calendar-day-events-head>span{font-size:calc(9px + var(--tp-text-extra,0px));font-weight:850;color:var(--muted)}
.calendar-selected-events,.calendar-upcoming-list{display:grid;gap:6px;margin-top:9px}
.calendar-event-row,.calendar-upcoming-row{
  display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:8px;align-items:center;
  padding:9px;border-radius:14px;background:#fff
}
.calendar-event-row>span,.calendar-upcoming-row>span{
  width:38px;height:38px;border-radius:12px;background:#f6f1eb;display:grid;place-items:center;font-size:calc(19px + var(--tp-text-extra,0px))
}
.calendar-event-row strong,.calendar-upcoming-row strong{display:block;font-size:calc(10.5px + var(--tp-text-extra,0px))}
.calendar-event-row small,.calendar-upcoming-row small{display:block;margin-top:2px;font-size:calc(9px + var(--tp-text-extra,0px));color:var(--muted);line-height:1.3}
.calendar-upcoming-row p{font-size:calc(9px + var(--tp-text-extra,0px));color:var(--muted);margin-top:2px;line-height:1.3}
.calendar-event-row button,.calendar-upcoming-row button{
  width:28px;height:28px;border:0;border-radius:9px;background:#f5ece9;color:#855b52;font-size:calc(17px + var(--tp-text-extra,0px))
}
.calendar-empty-day{padding:12px;border-radius:13px;background:#fff;color:var(--muted);font-size:calc(9.5px + var(--tp-text-extra,0px));text-align:center}
.calendar-section-title strong{display:block;margin-top:3px;font-size:calc(12px + var(--tp-text-extra,0px))}
.calendar-appointment-form{display:grid;gap:7px;margin-top:9px}
.calendar-appointment-form button{width:100%}

/* weather location */
.weather-location-card{
  margin-bottom:10px;padding:11px;border-radius:19px;background:#f4f1eb;border:1px solid rgba(75,93,82,.07)
}
.weather-location-current{
  display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:8px;align-items:center
}
.weather-location-pin{
  width:36px;height:36px;border-radius:12px;background:#fff;position:relative
}
.weather-location-pin::before{
  content:"";position:absolute;left:50%;top:7px;width:12px;height:16px;border-radius:9px 9px 9px 2px;
  background:#658676;transform:translateX(-50%) rotate(-45deg)
}
.weather-location-pin::after{
  content:"";position:absolute;left:50%;top:11px;width:4px;height:4px;border-radius:50%;background:#fff;transform:translateX(-50%)
}
.weather-location-current strong{display:block;margin-top:3px;font-size:calc(11.5px + var(--tp-text-extra,0px))}
.weather-location-current p{margin-top:2px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));line-height:1.3;font-weight:650}
.weather-source-badge{padding:5px 7px;border-radius:999px;background:#e8e2dc;color:#7f746a;font-size:calc(8px + var(--tp-text-extra,0px));font-weight:950}
.weather-source-badge.real{background:#dfeee4;color:#557263}
.weather-location-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:9px}
.weather-location-actions button,.weather-city-search button{
  min-height:38px;border:0;border-radius:11px;background:#5d7266;color:#fff;font-size:calc(9px + var(--tp-text-extra,0px));font-weight:900;padding:0 8px
}
.weather-location-actions button:last-child{background:#6d6259}
.weather-city-search{display:grid;grid-template-columns:1fr auto;gap:6px;margin-top:7px}
.weather-city-search input{
  min-width:0;height:38px;border:1px solid var(--line);border-radius:11px;background:#fff;padding:0 10px;font-size:calc(9.5px + var(--tp-text-extra,0px));color:inherit
}
.weather-city-results{display:grid;gap:5px;margin-top:7px}
.weather-city-results button{
  display:grid;grid-template-columns:30px 1fr;gap:7px;align-items:center;text-align:left;
  min-height:48px;padding:7px;border:1px solid var(--line);border-radius:12px;background:#fff;color:inherit
}
.weather-result-pin{width:30px;height:30px;border-radius:10px;background:#e9f0eb;position:relative}
.weather-result-pin::before{content:"";position:absolute;left:50%;top:7px;width:10px;height:13px;border-radius:8px 8px 8px 2px;background:#678878;transform:translateX(-50%) rotate(-45deg)}
.weather-city-results strong{display:block;font-size:calc(9.5px + var(--tp-text-extra,0px))}
.weather-city-results small{display:block;margin-top:2px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px))}
.weather-search-loading{padding:10px;border-radius:11px;background:#fff;color:var(--muted);font-size:calc(9.5px + var(--tp-text-extra,0px));text-align:center}
.weather-location-footnote{font-size:calc(8.5px + var(--tp-text-extra,0px));color:var(--muted);line-height:1.35;margin-top:7px}

@media(max-width:330px){
  .calendar-home-card{grid-template-columns:56px minmax(0,1fr) 14px;gap:9px}
  .calendar-home-date{width:56px;min-height:70px}
  .calendar-home-date strong{font-size:26px}
  .weather-location-actions{grid-template-columns:1fr}
}


/* v8.15.1 — taglie più realistiche del cucciolo */
:root{
  --pet-home-scale:.63;
  --pet-location-scale:.31;
  --walk-pet-scale:.78;
  --park-pet-box:46px;
  --park-pet-font:24px;
}

.pet-zone{
  transform:translate(-50%,-50%) scale(var(--pet-home-scale));
  transform-origin:center center;
}

.city-location-pet-zone{
  transform:translate(-50%,-50%) scale(var(--pet-location-scale));
  transform-origin:center center;
}
.city-location-pet-zone .pet{
  transform:none !important;
}
.city-location-pet-zone .pet.resting:not(.sleeping){
  transform:rotate(-3deg) !important;
}

.walk-pet-marker{
  transform:translateX(-50%) skewX(7deg) scale(var(--walk-pet-scale));
  transform-origin:center bottom;
}
.park-pet{
  width:var(--park-pet-box);
  height:var(--park-pet-box);
  border-radius:calc(var(--park-pet-box) / 3);
  font-size:var(--park-pet-font);
}

/* Piccolo affinamento visivo: i pet restano leggibili ma non enormi negli ambienti */
.pet-zone .pet,
.city-location-pet-zone .pet{
  filter:drop-shadow(0 10px 9px rgba(80,50,30,.14));
}
.city-location-pet-zone .location-pet-shadow{
  opacity:.92;
}


/* v8.16 — crescita fisica lenta su mesi reali */
/* Le classi di fase restano per dettagli di forma, ma la scala principale
   viene interpolata continuamente dall'età reale tramite JS. */
.pet.stage-puppy{
  scale:1;
}
.pet.stage-young{
  scale:1;
}
.pet.stage-adult{
  scale:1;
}


/* v8.17 — account Supabase e primo avvio */
.account-gate{
  position:fixed;inset:0;z-index:10000;display:grid;place-items:center;overflow:auto;
  padding:max(18px,var(--safe-top)) 16px max(18px,var(--safe-bottom));background:#f3efe8
}
.account-gate-bg{position:fixed;inset:0;overflow:hidden;pointer-events:none}
.account-gate-bg i{position:absolute;border-radius:50%;filter:blur(4px);opacity:.45}
.account-gate-bg i:nth-child(1){width:320px;height:320px;left:-130px;top:-90px;background:#dce8d7}
.account-gate-bg i:nth-child(2){width:260px;height:260px;right:-110px;top:31%;background:#ecd9cc}
.account-gate-bg i:nth-child(3){width:280px;height:280px;left:15%;bottom:-170px;background:#d8e3e9}
.account-gate-shell{position:relative;width:min(100%,470px);min-height:min(720px,calc(100dvh - 36px));display:grid;align-content:center}
.account-loading-screen{text-align:center;padding:40px 20px}
.account-brand-mark{width:62px;height:62px;margin:0 auto;border-radius:22px;background:#37332f;display:grid;place-items:center;box-shadow:0 16px 35px rgba(55,51,47,.16)}
.account-brand-mark span{position:relative;width:29px;height:34px;border-radius:52% 52% 47% 47% / 60% 60% 42% 42%;background:#f4ead7;transform:rotate(7deg)}
.account-loading-screen>strong{display:block;margin-top:16px;font-size:24px;letter-spacing:-.04em}
.account-loading-screen>p{margin-top:5px;color:var(--muted);font-size:calc(12px + var(--tp-text-extra,0px));font-weight:650}
.account-loader{display:flex;justify-content:center;gap:6px;margin-top:18px}
.account-loader i{width:7px;height:7px;border-radius:50%;background:#6f665f;animation:accountLoad .9s ease-in-out infinite alternate}
.account-loader i:nth-child(2){animation-delay:.16s}.account-loader i:nth-child(3){animation-delay:.32s}
@keyframes accountLoad{to{transform:translateY(-6px);opacity:.45}}

.account-auth-screen,.account-intro-screen,.account-setup-screen{
  padding:24px;border-radius:30px;background:rgba(255,253,249,.94);border:1px solid rgba(84,65,48,.08);
  box-shadow:0 26px 70px rgba(72,55,39,.12);backdrop-filter:blur(20px)
}
.account-brand{display:flex;align-items:center;gap:12px}
.account-brand .account-brand-mark{width:48px;height:48px;margin:0;border-radius:16px}
.account-brand .account-brand-mark span{width:22px;height:27px}
.account-brand small{display:block;font-size:calc(8px + var(--tp-text-extra,0px));letter-spacing:.12em;font-weight:950;color:var(--muted)}
.account-brand h1{font-size:22px;margin-top:2px}
.auth-copy{margin-top:34px}.auth-copy h2{font-size:28px;letter-spacing:-.04em;margin-top:5px}
.auth-copy p{font-size:calc(11.5px + var(--tp-text-extra,0px));line-height:1.45;color:var(--muted);font-weight:650;margin-top:7px}
.auth-link-notice{display:grid;grid-template-columns:38px 1fr;gap:10px;align-items:start;margin-top:18px;padding:12px 13px;border-radius:15px;background:#f2f5f3;border:1px solid rgba(74,104,88,.13);color:#4d6257}
.auth-link-notice.hidden{display:none!important}
.auth-link-notice-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:rgba(255,255,255,.78);font-size:20px;box-shadow:0 4px 12px rgba(70,64,58,.05)}
.auth-link-notice strong{display:block;font-size:calc(10.5px + var(--tp-text-extra,0px));font-weight:950;line-height:1.25}
.auth-link-notice p{margin-top:3px;font-size:calc(9px + var(--tp-text-extra,0px));font-weight:700;line-height:1.45;color:inherit}
.auth-link-notice[data-tone="warning"]{background:#fff7e8;border-color:rgba(154,108,33,.16);color:#80602c}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:4px;border-radius:14px;background:#ece7df;margin-top:22px}
.auth-tabs button{height:38px;border:0;border-radius:11px;background:transparent;color:var(--muted);font-size:calc(10.5px + var(--tp-text-extra,0px));font-weight:900}
.auth-tabs button.active{background:#fff;color:#38332f;box-shadow:0 4px 12px rgba(55,46,39,.07)}
.auth-form{display:grid;gap:11px;margin-top:15px}
.auth-form label span{display:block;font-size:calc(9px + var(--tp-text-extra,0px));font-weight:900;color:#635d57;margin:0 0 5px 3px}
.auth-form input{width:100%;height:48px;border:1px solid rgba(92,73,55,.12);border-radius:14px;background:#fff;padding:0 13px;color:inherit;font:inherit;font-size:calc(12px + var(--tp-text-extra,0px));outline:none}
.auth-form input:focus{border-color:#8e7c6a;box-shadow:0 0 0 3px rgba(142,124,106,.09)}
.auth-message{min-height:15px;color:#9b574e;font-size:calc(9.5px + var(--tp-text-extra,0px));font-weight:750;line-height:1.35}
.auth-submit{height:48px;border:0;border-radius:14px;background:#38332f;color:#fff;font-size:calc(11.5px + var(--tp-text-extra,0px));font-weight:900}
.auth-submit:disabled{opacity:.55}.auth-footnote{margin-top:14px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));line-height:1.45;text-align:center}

.intro-top{display:flex;justify-content:space-between;align-items:center}
.intro-step{width:38px;height:38px;border-radius:12px;background:#eee8df;display:grid;place-items:center;font-size:calc(9.5px + var(--tp-text-extra,0px));font-weight:950;color:#756b61}
.intro-top>strong{font-size:calc(14px + var(--tp-text-extra,0px))}
.intro-visual{position:relative;height:265px;margin-top:15px;border-radius:25px;overflow:hidden;background:linear-gradient(160deg,#e3ebe0,#f3eade);display:grid;place-items:center}
.intro-visual[data-accent="time"]{background:linear-gradient(160deg,#dfe8ee,#eee8df)}
.intro-visual[data-accent="egg"]{background:linear-gradient(160deg,#eee3cf,#f5eee4)}
.intro-orbit{position:absolute;width:170px;height:170px;border:1px solid rgba(65,58,51,.12);border-radius:50%;animation:introOrbit 11s linear infinite}
.intro-orbit::before,.intro-orbit::after{content:"";position:absolute;width:10px;height:10px;border-radius:50%;background:#8b7763}
.intro-orbit::before{left:16px;top:27px}.intro-orbit::after{right:8px;bottom:47px;background:#6f8876}
@keyframes introOrbit{to{transform:rotate(360deg)}}
.intro-pet-silhouette{position:relative;width:112px;height:128px;z-index:2;filter:drop-shadow(0 13px 15px rgba(72,55,43,.10))}
.intro-head{position:absolute;left:17px;top:18px;width:78px;height:72px;border-radius:49% 49% 44% 44%;background:#8f7b66}
.intro-body{position:absolute;left:31px;top:79px;width:51px;height:47px;border-radius:48% 48% 42% 42%;background:#7e6b58}
.intro-ear{position:absolute;top:8px;width:27px;height:47px;border-radius:60% 48% 60% 45%;background:#766350;z-index:3}
.intro-ear.left{left:8px;transform:rotate(-14deg)}.intro-ear.right{right:8px;transform:rotate(14deg)}
.intro-copy{margin-top:22px}.intro-copy h2{font-size:27px;line-height:1.05;letter-spacing:-.045em}
.intro-copy p{margin-top:9px;color:var(--muted);font-size:calc(11.5px + var(--tp-text-extra,0px));line-height:1.55;font-weight:650}
.intro-progress{display:flex;gap:5px;margin-top:18px}.intro-progress i{height:5px;flex:1;border-radius:999px;background:#e8e2da}
.intro-progress i.active{background:#4d4741}
.intro-actions{display:grid;grid-template-columns:auto 1fr;gap:7px;margin-top:18px}
.intro-actions button{height:46px;border:0;border-radius:14px;font-size:calc(10.5px + var(--tp-text-extra,0px));font-weight:900;padding:0 16px}
.intro-actions .primary{background:#37332f;color:#fff}.intro-actions .secondary{background:#eee9e2;color:#4d4640}

.setup-heading h2{font-size:27px;letter-spacing:-.04em;margin-top:5px}
.setup-heading p{margin-top:7px;color:var(--muted);font-size:calc(10.5px + var(--tp-text-extra,0px));line-height:1.45;font-weight:650}
.starter-eggs{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin-top:18px}
.starter-eggs button{min-width:0;padding:9px 4px 8px;border:1px solid rgba(84,66,50,.09);border-radius:16px;background:#f7f3ed;color:inherit}
.starter-eggs button.selected{background:#3e3935;color:#fff;box-shadow:0 9px 19px rgba(61,55,50,.16);transform:translateY(-2px)}
.starter-eggs strong{display:block;font-size:calc(9px + var(--tp-text-extra,0px));margin-top:7px}
.starter-eggs small{display:block;font-size:calc(7.5px + var(--tp-text-extra,0px));margin-top:2px;opacity:.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.starter-egg{position:relative;display:block;width:37px;height:49px;margin:0 auto;border-radius:52% 52% 47% 47% / 60% 60% 42% 42%;box-shadow:inset -5px -6px 0 rgba(85,62,43,.08),inset 4px 4px 0 rgba(255,255,255,.5)}
.starter-egg i,.starter-egg b{position:absolute;display:block;border-radius:50%;opacity:.65}
.egg-amber{background:linear-gradient(145deg,#f4ddb5,#d5a462)}.egg-amber i{width:8px;height:12px;left:8px;top:19px;background:#b98043}.egg-amber b{width:7px;height:9px;right:7px;top:11px;background:#c18b4b}
.egg-moon{background:linear-gradient(145deg,#f2eee9,#c8cad8)}.egg-moon i{width:13px;height:13px;left:7px;top:14px;background:#8c91ae}.egg-moon b{width:6px;height:8px;right:7px;bottom:11px;background:#a3a6bb}
.egg-pearl{background:linear-gradient(145deg,#fffdf7,#e2e8e5)}.egg-pearl i{width:8px;height:11px;left:9px;top:17px;background:#c6d8d2}.egg-pearl b{width:10px;height:7px;right:6px;top:12px;background:#d9cacd}
.egg-forest{background:linear-gradient(145deg,#ded8b0,#8fa073)}.egg-forest i{width:8px;height:12px;left:9px;top:16px;background:#65764f}.egg-forest b{width:10px;height:8px;right:6px;bottom:10px;background:#aa805b}
.egg-honey{background:linear-gradient(145deg,#f2dca8,#c6944d)}.egg-honey i{width:9px;height:9px;left:7px;top:17px;background:#a87337}.egg-honey b{width:8px;height:12px;right:7px;top:12px;background:#d5ad65}
.setup-selection{margin-top:12px;padding:8px 10px;border-radius:12px;background:#f0ebe4;text-align:center;color:#73695f;font-size:calc(9px + var(--tp-text-extra,0px));font-weight:800}
.starter-name-field{display:block;margin-top:15px}.starter-name-field>span{display:block;margin:0 0 6px 3px;font-size:calc(9px + var(--tp-text-extra,0px));font-weight:900;color:#625a53}
.starter-name-field input{width:100%;height:49px;border:1px solid rgba(85,65,48,.12);border-radius:14px;background:#fff;padding:0 13px;font:inherit;font-size:calc(13px + var(--tp-text-extra,0px));color:inherit;outline:none}
.finish-pet-setup{width:100%;height:49px;margin-top:11px;border:0;border-radius:14px;background:#38332f;color:#fff;font-size:calc(10.5px + var(--tp-text-extra,0px));font-weight:950}
.finish-pet-setup:disabled{opacity:.35}.setup-back{width:100%;height:38px;margin-top:6px;border:0;background:transparent;color:var(--muted);font-size:calc(9.5px + var(--tp-text-extra,0px));font-weight:850}

.account-sheet .sheet-head p{margin-top:4px;color:var(--muted);font-size:calc(9.5px + var(--tp-text-extra,0px))}
.account-profile-card{display:grid;grid-template-columns:48px 1fr;gap:10px;align-items:center;padding:11px;border-radius:17px;background:var(--surface-2)}
.account-profile-avatar{width:48px;height:48px;border-radius:16px;background:#ddd6cd;display:grid;place-items:center}
.account-profile-avatar span{width:22px;height:22px;border-radius:50%;background:#776d64;position:relative}
.account-profile-avatar span::after{content:"";position:absolute;left:50%;top:18px;width:29px;height:16px;border-radius:18px 18px 8px 8px;background:#776d64;transform:translateX(-50%)}
.account-profile-card strong{display:block;font-size:calc(11.5px + var(--tp-text-extra,0px))}.account-profile-card small{display:block;margin-top:3px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px))}
.account-save-card{display:grid;grid-template-columns:13px 1fr auto;gap:8px;align-items:center;margin-top:8px;padding:10px;border-radius:16px;background:#edf3ee}
.account-save-dot{width:9px;height:9px;border-radius:50%;background:#6f9b78;box-shadow:0 0 0 4px rgba(111,155,120,.12)}
.account-save-card strong{display:block;font-size:calc(10.5px + var(--tp-text-extra,0px))}.account-save-card small{display:block;margin-top:2px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px))}
.account-save-card button{min-height:35px;border:0;border-radius:11px;background:#4f6556;color:#fff;font-size:calc(9px + var(--tp-text-extra,0px));font-weight:900;padding:0 10px}
.account-info-box{margin-top:8px;padding:11px;border-radius:16px;background:#f6f2ec}.account-info-box strong{font-size:calc(10.5px + var(--tp-text-extra,0px))}.account-info-box p{font-size:calc(9px + var(--tp-text-extra,0px));color:var(--muted);line-height:1.4;margin-top:3px}
.account-logout-button{width:100%;min-height:43px;margin-top:9px;border:1px solid rgba(151,77,65,.16);border-radius:13px;background:#fff4f1;color:#975347;font-size:calc(9.5px + var(--tp-text-extra,0px));font-weight:900}

/* Starter egg identity persists in the room */
.egg-pet.egg-choice-amber .egg-shell{background:linear-gradient(145deg,#fff0d0,#d7a55e)}
.egg-pet.egg-choice-amber .egg-shell i,.egg-pet.egg-choice-amber .egg-shell b,.egg-pet.egg-choice-amber .egg-shell em{background:#b67c3e}
.egg-pet.egg-choice-moon .egg-shell{background:linear-gradient(145deg,#f8f3ee,#c4c7d7)}
.egg-pet.egg-choice-moon .egg-shell i,.egg-pet.egg-choice-moon .egg-shell b,.egg-pet.egg-choice-moon .egg-shell em{background:#8389aa}
.egg-pet.egg-choice-pearl .egg-shell{background:linear-gradient(145deg,#fffefa,#e0e9e5)}
.egg-pet.egg-choice-pearl .egg-shell i,.egg-pet.egg-choice-pearl .egg-shell b,.egg-pet.egg-choice-pearl .egg-shell em{background:#bfd3cc}
.egg-pet.egg-choice-forest .egg-shell{background:linear-gradient(145deg,#e9e1b7,#8da071)}
.egg-pet.egg-choice-forest .egg-shell i,.egg-pet.egg-choice-forest .egg-shell b,.egg-pet.egg-choice-forest .egg-shell em{background:#60734e}
.egg-pet.egg-choice-honey .egg-shell{background:linear-gradient(145deg,#f8e4af,#c9954d)}
.egg-pet.egg-choice-honey .egg-shell i,.egg-pet.egg-choice-honey .egg-shell b,.egg-pet.egg-choice-honey .egg-shell em{background:#a97135}

@media(max-width:390px){
  .account-gate{padding-left:10px;padding-right:10px}
  .account-auth-screen,.account-intro-screen,.account-setup-screen{padding:19px;border-radius:24px}
  .intro-visual{height:225px}
  .starter-eggs{gap:4px}
  .starter-eggs button{padding-left:2px;padding-right:2px}
  .starter-eggs small{font-size:calc(7.5px + var(--tp-text-extra,0px))}
  .starter-egg{width:33px;height:44px}
}


/* v8.18 — profilo giocatore + livello 1–100 */
.player-home-card{width:100%;margin:10px 0 0;padding:10px 11px;border:1px solid rgba(74,63,53,.08);border-radius:18px;background:linear-gradient(180deg,#f8f5ef,#f2eee7);color:inherit;display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:10px;align-items:center;text-align:left}
.player-home-avatar{width:46px;height:46px;border-radius:15px;background:#ddd7cf;overflow:hidden;display:grid;place-items:center;position:relative}
.player-home-avatar img{width:100%;height:100%;object-fit:cover}.player-home-avatar span{font-size:calc(14px + var(--tp-text-extra,0px));font-weight:950;color:#645c55}
.player-home-copy small{display:block;font-size:calc(8px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.08em;color:#80766d}.player-home-copy strong{display:block;margin-top:2px;font-size:calc(12px + var(--tp-text-extra,0px))}
.player-home-xp{height:5px;margin-top:6px;border-radius:999px;background:#ded9d2;overflow:hidden}.player-home-xp i{display:block;height:100%;width:0;border-radius:inherit;background:#667e6c;transition:width .35s ease}
.player-home-level{text-align:right;min-width:54px}.player-home-level span{display:block;font-size:calc(8px + var(--tp-text-extra,0px));font-weight:950;color:var(--muted)}.player-home-level strong{display:block;font-size:21px;line-height:1}.player-home-level small{display:block;margin-top:3px;font-size:calc(8px + var(--tp-text-extra,0px));color:var(--muted);font-weight:850}

.account-player-profile-screen{padding:24px;border-radius:30px;background:rgba(255,253,249,.94);border:1px solid rgba(84,65,48,.08);box-shadow:0 26px 70px rgba(72,55,39,.12);backdrop-filter:blur(20px)}
.player-setup-photo{display:grid;grid-template-columns:72px minmax(0,1fr);gap:12px;align-items:center;margin-top:18px}
.player-photo-picker{position:relative;width:72px;height:72px;border-radius:22px;overflow:hidden;background:#ddd6cd;display:grid;place-items:center;cursor:pointer}
.player-photo-picker img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.player-photo-picker>span{font-size:calc(20px + var(--tp-text-extra,0px));font-weight:950;color:#645b53}
.player-photo-picker>b{position:absolute;left:6px;right:6px;bottom:5px;padding:4px;border-radius:8px;background:rgba(48,44,40,.76);color:#fff;text-align:center;font-size:calc(7.5px + var(--tp-text-extra,0px));font-weight:900}.player-photo-picker input{display:none}
.player-setup-photo>div strong{display:block;font-size:calc(11.5px + var(--tp-text-extra,0px))}.player-setup-photo>div small{display:block;margin-top:3px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));line-height:1.35}
.player-setup-form{display:grid;gap:10px;margin-top:17px}.player-setup-form label span{display:block;margin:0 0 5px 3px;font-size:calc(9px + var(--tp-text-extra,0px));font-weight:900;color:#615950}
.player-setup-form input{width:100%;height:46px;border:1px solid rgba(87,69,52,.12);border-radius:13px;background:#fff;padding:0 12px;font:inherit;color:inherit;font-size:calc(11.5px + var(--tp-text-extra,0px))}
.player-age-preview{padding:9px 10px;border-radius:12px;background:#f2ede6}.player-age-preview span{display:block;font-size:calc(8px + var(--tp-text-extra,0px));font-weight:950;color:var(--muted)}.player-age-preview strong{display:block;margin-top:3px;font-size:calc(10.5px + var(--tp-text-extra,0px))}

.player-level-detail{margin-top:9px;padding:12px;border-radius:18px;background:linear-gradient(180deg,#eef4ef,#e8efe9)}
.player-level-detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.player-level-detail-head strong{display:block;margin-top:3px;font-size:calc(13px + var(--tp-text-extra,0px))}.player-level-detail-head>b{font-size:calc(10.5px + var(--tp-text-extra,0px));padding:5px 7px;border-radius:999px;background:#fff;color:#617266}
.player-level-xp-bar{height:8px;margin-top:10px;border-radius:999px;background:#d8e0d9;overflow:hidden}.player-level-xp-bar span{display:block;height:100%;width:0;background:#5d7764;border-radius:inherit;transition:width .35s}
.player-level-xp-copy{display:flex;justify-content:space-between;gap:8px;margin-top:6px}.player-level-xp-copy span,.player-level-xp-copy strong{font-size:calc(9px + var(--tp-text-extra,0px));color:var(--muted)}
.player-reward-list{display:grid;gap:6px;margin-top:8px}.player-reward-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:8px;align-items:center;padding:9px;border-radius:14px;background:#fff}
.player-reward-row>b{width:44px;height:34px;border-radius:11px;background:#ece7df;display:grid;place-items:center;font-size:calc(9.5px + var(--tp-text-extra,0px))}.player-reward-row strong{display:block;font-size:calc(10.5px + var(--tp-text-extra,0px))}.player-reward-row small{display:block;margin-top:2px;color:var(--muted);font-size:calc(8.5px + var(--tp-text-extra,0px));line-height:1.3}.player-reward-row>span{font-size:calc(8px + var(--tp-text-extra,0px));font-weight:900;color:#7b7168}
.player-reward-complete{padding:14px;border-radius:14px;background:#fff;text-align:center;font-size:calc(9.5px + var(--tp-text-extra,0px));font-weight:850;color:#5c7462}

.player-profile-sheet .sheet-head p{margin-top:4px;color:var(--muted);font-size:calc(9.5px + var(--tp-text-extra,0px));line-height:1.35}
.settings-player-profile-top{display:grid;grid-template-columns:76px minmax(0,1fr);gap:12px;align-items:center;padding:11px;border-radius:18px;background:var(--surface-2)}
.settings-player-photo{position:relative;width:76px;height:76px;border-radius:22px;overflow:hidden;background:#ded7cf;display:grid;place-items:center;cursor:pointer}
.settings-player-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.settings-player-photo>span{font-size:21px;font-weight:950;color:#665d55}
.settings-player-photo>b{position:absolute;left:7px;right:7px;bottom:6px;padding:4px;border-radius:8px;background:rgba(48,44,40,.76);color:#fff;text-align:center;font-size:calc(7.5px + var(--tp-text-extra,0px))}.settings-player-photo input{display:none}
.settings-player-profile-top>div strong{display:block;margin-top:3px;font-size:calc(12px + var(--tp-text-extra,0px))}.settings-player-profile-top>div small{display:block;margin-top:3px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px))}
.settings-player-level-bar{height:6px;margin-top:7px;border-radius:999px;background:#d9d5cf;overflow:hidden}.settings-player-level-bar i{display:block;height:100%;width:0;background:#627a68;border-radius:inherit}
.settings-player-form{display:grid;gap:8px;margin-top:9px}.settings-player-form label span{display:block;margin:0 0 5px 3px;font-size:calc(9px + var(--tp-text-extra,0px));font-weight:900;color:#625a53}
.settings-player-form input,.settings-player-form select{width:100%;height:42px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:0 10px;color:inherit;font:inherit;font-size:calc(10.5px + var(--tp-text-extra,0px))}
.settings-player-age{padding:9px 10px;border-radius:12px;background:#f4f0ea}.settings-player-age span{display:block;font-size:calc(8px + var(--tp-text-extra,0px));font-weight:950;color:var(--muted)}.settings-player-age strong{display:block;margin-top:2px;font-size:calc(10.5px + var(--tp-text-extra,0px))}
.settings-player-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:9px}.settings-player-actions button{min-height:42px;border:0;border-radius:12px;background:#ece7e0;color:#5e5750;font-size:calc(9.5px + var(--tp-text-extra,0px));font-weight:900}.settings-player-actions button.primary{background:#3e3935;color:#fff}

@media(max-width:390px){
  .account-player-profile-screen{padding:19px;border-radius:24px}
  .player-home-card{grid-template-columns:42px minmax(0,1fr) auto}.player-home-avatar{width:42px;height:42px}
  .settings-player-actions{grid-template-columns:1fr}
}


/* v8.18.1 — vera modalità desktop, senza vuoti e overflow */
@media(min-width:900px){
  body{
    padding:0;
    background:
      radial-gradient(circle at 15% 8%,rgba(221,231,218,.72),transparent 30%),
      radial-gradient(circle at 89% 32%,rgba(238,223,210,.58),transparent 28%),
      var(--bg);
  }

  .app-shell{
    width:min(calc(100% - 150px),1180px);
    max-width:1180px;
    min-height:100dvh;
    margin:0 auto;
    padding:28px 26px 44px;
  }

  .home-topbar{
    grid-template-columns:minmax(0,1fr) auto;
    align-items:end;
    gap:24px;
    margin-bottom:14px;
  }

  .home-top-actions{
    width:auto;
    justify-self:end;
  }

  .player-home-card{
    width:100%;
    max-width:none;
    margin:0 0 18px;
  }

  main.home-layout{
    display:grid;
    grid-template-columns:minmax(0,1.45fr) minmax(340px,.85fr);
    gap:20px;
    padding-bottom:20px;
    align-items:start;
  }

  .home-block{
    min-width:0;
    align-self:start;
  }

  .home-hero-group{
    grid-column:1;
    grid-row:1;
  }

  .home-status-group{
    grid-column:2;
    grid-row:1;
  }

  .home-care-group{
    grid-column:1;
    grid-row:2;
  }

  .home-goals-group{
    grid-column:2;
    grid-row:2;
  }

  /* annulla le vecchie griglie legate solo alla larghezza viewport */
  .hero-actions-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .home-status-group .home-cards-grid-status{
    grid-template-columns:1fr !important;
    align-items:stretch;
  }

  .home-status-group .home-cards-grid-status .needs.card{
    grid-column:auto !important;
  }

  .home-care-group .home-cards-grid-care{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    align-items:stretch;
  }

  .home-care-group .home-cards-grid-care .growth-card{
    grid-column:1 / -1 !important;
  }

  .home-goals-group .home-cards-grid{
    grid-template-columns:1fr;
  }

  .room{
    height:430px;
    border-radius:30px;
  }

  .pet-info-strip{
    min-width:0;
  }

  .needs.card,
  .day-rhythm-card,
  .health-card,
  .room-comfort-card,
  .house-care-card,
  .growth-card,
  .missions-card,
  .quick-card,
  .routine-card{
    min-width:0;
    width:100%;
    overflow:hidden;
  }

  /* Sidebar desktop */
  .dock{
    left:calc(50% - min(590px,calc((100vw - 150px)/2)) - 102px);
    top:50%;
    bottom:auto;
    transform:translateY(-50%);
    width:82px;
    min-height:0;
    height:auto;
    padding:10px;
    grid-template-columns:1fr;
    grid-template-rows:repeat(5,76px);
    gap:6px;
    border:1px solid rgba(80,60,40,.10);
    border-radius:24px;
    box-shadow:0 16px 44px rgba(70,50,30,.13);
  }

  .dock-item{
    min-height:0;
    height:76px;
    border-radius:17px;
  }

  .dock-item.active::before{
    top:50%;
    left:5px;
    width:3px;
    height:22px;
    transform:translateY(-50%);
  }

  .dock-item>span{font-size:calc(20px + var(--tp-text-extra,0px))}
  .dock-item small{font-size:calc(9.5px + var(--tp-text-extra,0px))}

  /* I fogli restano leggibili e centrati */
  .bottom-sheet{
    width:min(620px,calc(100% - 40px));
    max-height:86dvh;
  }

  .toast{
    bottom:30px;
  }
}

/* Desktop più stretto: una colonna ordinata, mai contenuto fuori schermo */
@media(min-width:900px) and (max-width:1080px){
  .app-shell{
    width:calc(100% - 124px);
    padding-left:20px;
    padding-right:20px;
  }

  main.home-layout{
    grid-template-columns:1fr;
  }

  .home-hero-group,
  .home-status-group,
  .home-care-group,
  .home-goals-group{
    grid-column:1;
    grid-row:auto;
  }

  .home-status-group .home-cards-grid-status{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }

  .home-status-group .home-cards-grid-status .needs.card{
    grid-column:1 / -1 !important;
  }

  .dock{
    left:14px;
    transform:translateY(-50%);
  }
}

/* Mobile/tablet: forza il comportamento originale e impedisce regressioni */
@media(max-width:899px){
  .app-shell{
    width:min(100%,540px);
    max-width:540px;
  }

  main.home-layout{
    grid-template-columns:1fr;
  }
}


/* v8.18.2 — FIX STRUTTURALE SPAZIO VUOTO DESKTOP */
.home-desktop-column{
  display:contents;
}

/* Monitor larghi: due colonne che scorrono INDIPENDENTEMENTE */
@media(min-width:1081px){
  main.home-layout{
    display:grid !important;
    grid-template-columns:minmax(0,1.45fr) minmax(340px,.85fr) !important;
    gap:20px !important;
    align-items:start !important;
  }

  .home-desktop-column{
    display:grid !important;
    grid-template-columns:minmax(0,1fr);
    gap:20px;
    align-content:start;
    align-items:start;
    min-width:0;
  }

  .home-desktop-primary{grid-column:1}
  .home-desktop-secondary{grid-column:2}

  .home-desktop-column > .home-block,
  .home-hero-group,
  .home-status-group,
  .home-care-group,
  .home-goals-group{
    grid-column:auto !important;
    grid-row:auto !important;
    min-width:0;
    align-self:start;
    margin-top:0 !important;
  }
}

/* Desktop compatto: flusso lineare senza righe fantasma */
@media(min-width:900px) and (max-width:1080px){
  main.home-layout{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) !important;
    gap:18px !important;
  }

  .home-desktop-column{display:contents !important}

  .home-hero-group{order:1;grid-column:1 !important;grid-row:auto !important}
  .home-status-group{order:2;grid-column:1 !important;grid-row:auto !important}
  .home-care-group{order:3;grid-column:1 !important;grid-row:auto !important}
  .home-goals-group{order:4;grid-column:1 !important;grid-row:auto !important}
}

/* Mobile/tablet: comportamento lineare */
@media(max-width:899px){
  .home-desktop-column{display:contents !important}

  main.home-layout{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) !important;
  }

  .home-hero-group{order:1;grid-column:1 !important;grid-row:auto !important}
  .home-status-group{order:2;grid-column:1 !important;grid-row:auto !important}
  .home-care-group{order:3;grid-column:1 !important;grid-row:auto !important}
  .home-goals-group{order:4;grid-column:1 !important;grid-row:auto !important}
}


/* v8.19 — comportamento autonomo realistico per specie */
.behavior-home-card{
  position:relative;
  overflow:hidden;
}
.behavior-home-card::after{
  content:"";
  position:absolute;
  right:-38px;
  top:-45px;
  width:118px;
  height:118px;
  border-radius:50%;
  background:rgba(112,131,109,.07);
  pointer-events:none;
}
.behavior-home-head{display:flex;align-items:center;gap:10px;position:relative;z-index:1}
.behavior-animal-mark{
  position:relative;
  width:39px;height:39px;border-radius:13px;
  background:#e6ece4;
  flex:0 0 auto;
}
.behavior-animal-mark i{
  position:absolute;left:12px;top:10px;width:15px;height:17px;border-radius:50% 50% 46% 46%;background:#6f806d
}
.behavior-animal-mark b,.behavior-animal-mark::before,.behavior-animal-mark::after{
  content:"";position:absolute;width:6px;height:7px;border-radius:50%;background:#6f806d
}
.behavior-animal-mark b{left:7px;top:6px}
.behavior-animal-mark::before{left:17px;top:4px}
.behavior-animal-mark::after{right:6px;top:8px}
.behavior-home-head h2{font-size:calc(12px + var(--tp-text-extra,0px));margin-top:2px}
.behavior-home-text{position:relative;z-index:1;margin-top:9px;font-size:calc(9.5px + var(--tp-text-extra,0px));line-height:1.45;color:var(--muted);font-weight:650}
.behavior-home-tags{position:relative;z-index:1;display:flex;gap:5px;flex-wrap:wrap;margin-top:9px}
.behavior-home-tags span{padding:5px 7px;border-radius:999px;background:#f2eee8;font-size:calc(8px + var(--tp-text-extra,0px));font-weight:850;color:#756d65}
.behavior-home-next{position:relative;z-index:1;display:flex;align-items:center;gap:7px;margin-top:8px;padding-top:8px;border-top:1px solid rgba(85,68,52,.07)}
.behavior-home-next i{width:7px;height:7px;border-radius:50%;background:#70836f;box-shadow:0 0 0 4px rgba(112,131,111,.10)}
.behavior-home-next strong{font-size:calc(9px + var(--tp-text-extra,0px));color:#667265}
.behavior-home-card[data-species="cat"] .behavior-animal-mark{background:#ebe7e2}
.behavior-home-card[data-species="cat"] .behavior-animal-mark i,
.behavior-home-card[data-species="cat"] .behavior-animal-mark b,
.behavior-home-card[data-species="cat"] .behavior-animal-mark::before,
.behavior-home-card[data-species="cat"] .behavior-animal-mark::after{background:#7f746b}
.behavior-home-card[data-species="rabbit"] .behavior-animal-mark{background:#eeeae7}
.behavior-home-card[data-species="fox"] .behavior-animal-mark{background:#f0e4d8}
.behavior-home-card[data-species="bear"] .behavior-animal-mark{background:#eadfd5}

/* Pulizia del pelo */
.pet.behavior-groom:not(.sleeping){animation:behaviorGroomBody 1.1s ease-in-out 3}
.pet.behavior-groom .head{transform-origin:50% 75%;animation:behaviorGroomHead .72s ease-in-out 4}
.pet.behavior-groom .leg-left{animation:behaviorGroomPaw .36s ease-in-out 8}
@keyframes behaviorGroomBody{0%,100%{transform:translateY(0)}50%{transform:translateY(4px)}}
@keyframes behaviorGroomHead{0%,100%{transform:rotate(0) translateY(0)}50%{transform:rotate(-11deg) translateY(7px)}}
@keyframes behaviorGroomPaw{0%,100%{transform:translate(0,0)}50%{transform:translate(8px,-18px) rotate(-18deg)}}

/* Inchino da gioco */
.pet.behavior-playbow:not(.sleeping){animation:behaviorPlayBow 1.2s ease-in-out 2}
.pet.behavior-playbow .head{animation:behaviorPlayBowHead 1.2s ease-in-out 2}
.pet.behavior-playbow .tail{animation-duration:.22s!important}
@keyframes behaviorPlayBow{0%,100%{transform:translateY(0) rotate(0)}45%{transform:translateY(9px) rotate(-2deg)}70%{transform:translateY(3px) rotate(1deg)}}
@keyframes behaviorPlayBowHead{0%,100%{transform:translateY(0)}45%{transform:translateY(12px) rotate(-4deg)}}

/* Zoomies / binky */
.pet.behavior-zoomies:not(.sleeping){animation:behaviorZoomies .52s cubic-bezier(.36,.07,.19,.97) 5}
.pet.behavior-zoomies .tail{animation-duration:.16s!important}
@keyframes behaviorZoomies{
  0%{transform:translateX(-9px) translateY(2px) rotate(-2deg)}
  35%{transform:translateX(13px) translateY(-7px) rotate(3deg)}
  70%{transform:translateX(-5px) translateY(-2px) rotate(-1deg)}
  100%{transform:translateX(8px) translateY(1px) rotate(2deg)}
}

/* Ascolto attento */
.pet.behavior-listen:not(.sleeping){animation:behaviorListenBody 1.2s ease-in-out 2}
.pet.behavior-listen .ear-left{animation:behaviorEarListenLeft .42s ease-in-out 5}
.pet.behavior-listen .ear-right{animation:behaviorEarListenRight .42s ease-in-out 5}
@keyframes behaviorListenBody{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}
@keyframes behaviorEarListenLeft{0%,100%{transform:rotate(22deg)}50%{transform:rotate(8deg)}}
@keyframes behaviorEarListenRight{0%,100%{transform:scaleX(-1) rotate(22deg)}50%{transform:scaleX(-1) rotate(8deg)}}

/* Balzo da volpe */
.pet.behavior-pounce:not(.sleeping){animation:behaviorPounce .72s ease-in-out 3}
@keyframes behaviorPounce{0%,100%{transform:translateY(0) scale(1)}45%{transform:translateY(-14px) scale(.98,1.03)}70%{transform:translateY(5px) scale(1.04,.96)}}

/* Mordicchia il gioco */
.pet.behavior-chew:not(.sleeping) .mouth{animation:behaviorChew .24s ease-in-out 10}
.pet.behavior-chew:not(.sleeping) .head{animation:behaviorChewHead .55s ease-in-out 5}
@keyframes behaviorChew{0%,100%{transform:scaleY(.55)}50%{transform:scaleY(1.35)}}
@keyframes behaviorChewHead{0%,100%{transform:translateY(0)}50%{transform:translateY(4px)}}

/* Saluto dopo assenza */
.pet.behavior-greet:not(.sleeping){animation:behaviorGreeting .55s ease-in-out 6}
.pet.behavior-greet .tail{animation-duration:.15s!important}
@keyframes behaviorGreeting{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-8px) rotate(2deg)}}

@media(min-width:1081px){
  .home-status-group .behavior-home-card{
    min-height:154px;
  }
}


/* v8.19.1 — fix card Comportamento autonomo su desktop */
.behavior-home-card{
  padding:16px !important;
  min-height:0 !important;
  height:auto !important;
  align-self:start !important;
  align-content:start !important;
}

.behavior-home-card::after{
  right:-46px;
  top:-52px;
  width:112px;
  height:112px;
}

.behavior-home-head{
  align-items:center;
  gap:10px;
}

.behavior-home-text{
  margin-top:10px;
  padding:0;
}

.behavior-home-tags{
  margin-top:9px;
}

.behavior-home-next{
  margin-top:10px;
  padding-top:9px;
}

@media(min-width:900px){
  .home-status-group .home-cards-grid-status{
    grid-auto-rows:max-content !important;
    align-items:start !important;
    align-content:start !important;
  }

  .home-status-group .home-cards-grid-status > *{
    align-self:start !important;
    height:auto !important;
  }

  .home-status-group .behavior-home-card{
    min-height:0 !important;
    height:auto !important;
  }
}

@media(min-width:1081px){
  .home-status-group .behavior-home-card{
    min-height:0 !important;
    height:auto !important;
    padding:16px !important;
  }
}


/* v8.19.2 — controlli multiplayer ripristinati */
.cloud-actions button:disabled{
  opacity:.48;
  cursor:wait;
  transform:none!important;
}
.cloud-sheet.cloud-action-busy .cloud-status-card{
  position:relative;
}
.cloud-sheet.cloud-action-busy .cloud-status-card::after{
  content:"";
  position:absolute;
  right:14px;
  top:14px;
  width:14px;
  height:14px;
  border:2px solid rgba(73,91,77,.22);
  border-top-color:#596f5f;
  border-radius:50%;
  animation:cloudActionSpin .7s linear infinite;
}
@keyframes cloudActionSpin{to{transform:rotate(360deg)}}


/* v8.20 — multiplayer a visite, due cuccioli separati */
.cloud-visit-card{margin-top:9px;display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px;border-radius:17px;background:linear-gradient(180deg,#eef4ef,#e7efe9);border:1px solid rgba(76,103,82,.10)}
.cloud-visit-pet-mark{position:relative;width:46px;height:46px;border-radius:15px;background:#d9e5dc}
.cloud-visit-pet-mark i{position:absolute;left:12px;top:13px;width:22px;height:20px;border-radius:50%;background:#718274}
.cloud-visit-pet-mark b,.cloud-visit-pet-mark::before,.cloud-visit-pet-mark::after{content:"";position:absolute;width:7px;height:8px;border-radius:50%;background:#718274}
.cloud-visit-pet-mark b{left:9px;top:7px}.cloud-visit-pet-mark::before{left:20px;top:5px}.cloud-visit-pet-mark::after{right:8px;top:8px}
.cloud-visit-card small{display:block;font-size:calc(8px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.08em;color:#6e7e70}.cloud-visit-card strong{display:block;margin-top:2px;font-size:calc(11.5px + var(--tp-text-extra,0px))}.cloud-visit-card span{display:block;margin-top:2px;font-size:calc(9px + var(--tp-text-extra,0px));color:var(--muted)}
.cloud-visit-card button{min-height:38px;border:0;border-radius:12px;background:#506957;color:#fff;padding:0 13px;font-size:calc(9.5px + var(--tp-text-extra,0px));font-weight:900}.cloud-visit-card button:disabled{opacity:.38}

.partner-visit-sheet{width:min(760px,calc(100% - 20px))}
.partner-visit-sheet .sheet-head p{margin-top:4px;color:var(--muted);font-size:calc(9.5px + var(--tp-text-extra,0px));line-height:1.35}
.partner-visit-scene{position:relative;height:350px;border-radius:24px;overflow:hidden;background:linear-gradient(to bottom,#ead9c9 0 70%,#c89e72 70% 100%);border:1px solid rgba(76,58,43,.08);box-shadow:inset 0 -22px 36px rgba(81,53,31,.08)}
.partner-visit-scene::before{content:"";position:absolute;left:0;right:0;top:70%;height:2px;background:rgba(97,66,42,.15)}
.partner-visit-scene.visit-wall-mint{background:linear-gradient(to bottom,#dce9df 0 70%,#c89e72 70% 100%)}.partner-visit-scene.visit-wall-sky{background:linear-gradient(to bottom,#dbe8ec 0 70%,#c89e72 70% 100%)}.partner-visit-scene.visit-wall-peach{background:linear-gradient(to bottom,#f0ddcf 0 70%,#c89e72 70% 100%)}.partner-visit-scene.visit-wall-night{background:linear-gradient(to bottom,#596173 0 70%,#9f7d61 70% 100%)}
.partner-visit-scene.visit-floor-stone::after,.partner-visit-scene.visit-floor-cream::after{content:"";position:absolute;left:0;right:0;bottom:0;height:30%;pointer-events:none}.partner-visit-scene.visit-floor-stone::after{background:linear-gradient(#c4beb5,#aaa69e)}.partner-visit-scene.visit-floor-cream::after{background:linear-gradient(#e5d5bc,#d4bea0)}
.visit-window{position:absolute;left:10%;top:12%;width:102px;height:82px;border:8px solid #f7f3ed;border-radius:15px;background:#b8d9e6;box-shadow:0 8px 15px rgba(69,54,41,.08)}.visit-window::before,.visit-window::after{content:"";position:absolute;background:#f7f3ed}.visit-window::before{left:50%;top:0;bottom:0;width:4px}.visit-window::after{left:0;right:0;top:50%;height:4px}.visit-window i{position:absolute;right:10px;top:8px;width:20px;height:20px;border-radius:50%;background:#f1d47c}
.visit-wall-picture{position:absolute;right:12%;top:13%;width:62px;height:54px;border:6px solid #87694e;border-radius:8px;background:#f4ede2}.visit-wall-picture span{position:absolute;left:16px;top:13px;width:20px;height:20px;border-radius:50% 50% 45% 45%;background:#81997d}
.visit-room-rug{position:absolute;left:36%;bottom:20px;width:170px;height:62px;border-radius:50%;background:#c98168;z-index:1;opacity:.88}
.visit-room-plant{position:absolute;right:7%;bottom:28%;width:48px;height:75px;z-index:2}.visit-room-plant::after{content:"";position:absolute;left:10px;bottom:0;width:30px;height:27px;border-radius:6px 6px 12px 12px;background:#ad7655}.visit-room-plant i,.visit-room-plant b{position:absolute;bottom:21px;width:28px;height:43px;border-radius:60% 10% 60% 10%;background:#6e9868}.visit-room-plant i{left:3px;transform:rotate(-28deg)}.visit-room-plant b{right:1px;transform:scaleX(-1) rotate(-28deg)}
.visit-room-bed{position:absolute;right:24%;bottom:25%;width:94px;height:46px;border-radius:42% 42% 24% 24%;background:#d8b18e;box-shadow:inset 0 8px 0 rgba(255,255,255,.35);z-index:2}.visit-room-bed i{position:absolute;left:12px;right:12px;top:8px;height:23px;border-radius:50%;background:#efe2d3}.visit-room-bed[data-bed="deluxe"]{background:#9f8068}.visit-room-bed[data-bed="fluffy"]{background:#d9d5d0}
.visit-room-bowl{position:absolute;left:25%;bottom:20%;display:flex;gap:5px;z-index:3}.visit-room-bowl i,.visit-room-bowl b{display:block;width:30px;height:17px;border-radius:4px 4px 14px 14px;background:#b87957;box-shadow:inset 0 4px 0 #e6c9b3}.visit-room-bowl b{background:#73a6b9;box-shadow:inset 0 4px 0 #cbe5ed}
.visit-room-basket{position:absolute;left:7%;bottom:21%;width:55px;height:35px;border-radius:8px 8px 16px 16px;background:#ad7c57;z-index:2}.visit-room-basket i,.visit-room-basket b{position:absolute;width:18px;height:18px;border-radius:50%;top:-7px}.visit-room-basket i{left:8px;background:#d9b252}.visit-room-basket b{right:7px;background:#829d79}
.visit-room-cushion{position:absolute;right:7%;bottom:15%;width:66px;height:26px;border-radius:50%;background:#d4b2a4;z-index:2}
.visit-room-clock{position:absolute;left:46%;top:10%;width:35px;height:35px;border-radius:50%;background:#f6f0e6;border:5px solid #8f745f}.visit-room-clock i{position:absolute;left:15px;top:7px;width:2px;height:12px;background:#6e5d50;transform-origin:bottom;transform:rotate(18deg)}
.visit-room-lamp{position:absolute;left:18%;bottom:27%;width:30px;height:53px}.visit-room-lamp::before{content:"";position:absolute;left:8px;bottom:0;width:14px;height:26px;background:#90755f}.visit-room-lamp i{position:absolute;left:1px;top:0;width:28px;height:24px;border-radius:16px 16px 7px 7px;background:#e4c68c}
.visit-room-floorlamp{position:absolute;right:41%;bottom:26%;width:35px;height:95px}.visit-room-floorlamp::before{content:"";position:absolute;left:16px;top:25px;width:4px;height:66px;background:#79634f}.visit-room-floorlamp i{position:absolute;left:2px;top:0;width:31px;height:30px;border-radius:18px 18px 8px 8px;background:#ddbd83}
.visit-pet-spot{position:absolute;bottom:17%;width:120px;height:142px;z-index:6;text-align:center}.visit-own-spot{left:27%}.visit-partner-spot{right:22%}
.visit-pet-spot .visit-pet{position:absolute;left:50%;top:40%;margin:0;transform:translate(-50%,-50%) scale(var(--visit-pet-scale,.30))!important;transform-origin:center center}
.visit-pet-spot strong{position:absolute;left:0;right:0;bottom:13px;font-size:calc(10.5px + var(--tp-text-extra,0px))}.visit-pet-spot small{position:absolute;left:0;right:0;bottom:0;font-size:calc(8px + var(--tp-text-extra,0px));color:rgba(66,53,43,.65)}
.partner-visit-speech{position:absolute;left:50%;top:7%;transform:translateX(-50%);z-index:9;max-width:72%;padding:8px 11px;border-radius:14px;background:rgba(255,255,255,.92);box-shadow:0 7px 18px rgba(56,42,31,.10);font-size:calc(9.5px + var(--tp-text-extra,0px));font-weight:800;text-align:center}
.partner-visit-info{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:8px}.partner-visit-info>div{padding:9px 10px;border-radius:13px;background:#f3efe9}.partner-visit-info span{display:block;font-size:calc(8px + var(--tp-text-extra,0px));font-weight:900;color:var(--muted)}.partner-visit-info strong{display:block;margin-top:2px;font-size:calc(11.5px + var(--tp-text-extra,0px))}
.partner-visit-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:8px}.partner-visit-actions button{min-height:76px;border:1px solid rgba(81,65,50,.08);border-radius:15px;background:#f8f5f0;color:inherit;text-align:left;padding:9px}.partner-visit-actions button>span{display:block;font-size:calc(8px + var(--tp-text-extra,0px));font-weight:950;color:#7d746c}.partner-visit-actions button strong{display:block;margin-top:5px;font-size:calc(10.5px + var(--tp-text-extra,0px))}.partner-visit-actions button small{display:block;margin-top:3px;font-size:calc(8px + var(--tp-text-extra,0px));line-height:1.25;color:var(--muted)}.partner-visit-actions button:disabled{opacity:.36}
.partner-visit-log{margin-top:9px;padding:11px;border-radius:16px;background:#f3efe9}.partner-visit-log-head strong{display:block;margin-top:2px;font-size:calc(11.5px + var(--tp-text-extra,0px))}#partnerVisitActivity{display:grid;gap:5px;margin-top:8px}.visit-activity-row{display:grid;grid-template-columns:10px 1fr;gap:7px;align-items:center;padding:6px 0;border-top:1px solid rgba(72,58,45,.06)}.visit-activity-row:first-child{border-top:0}.visit-activity-row i{width:7px;height:7px;border-radius:50%;background:#6f8874}.visit-activity-row strong{display:block;font-size:calc(9px + var(--tp-text-extra,0px))}.visit-activity-row small{display:block;margin-top:2px;font-size:calc(8px + var(--tp-text-extra,0px));color:var(--muted)}.visit-empty-activity{font-size:calc(9px + var(--tp-text-extra,0px));color:var(--muted)}
.partner-visit-safety{margin-top:8px;padding:10px;border-radius:14px;background:#edf4ef}.partner-visit-safety strong{font-size:calc(9.5px + var(--tp-text-extra,0px))}.partner-visit-safety p{margin-top:3px;font-size:calc(8.5px + var(--tp-text-extra,0px));line-height:1.4;color:#647167}
@media(max-width:620px){.partner-visit-scene{height:305px}.visit-own-spot{left:21%}.visit-partner-spot{right:14%}.partner-visit-actions{grid-template-columns:repeat(2,1fr)}.visit-room-floorlamp{display:none}}


/* v8.20.1 — recupero vecchi cuccioli locali */
.account-recovery-card{margin-top:9px;padding:11px;border-radius:17px;background:#f2eee8;border:1px solid rgba(80,63,48,.07)}
.account-recovery-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
.account-recovery-head strong{display:block;margin-top:2px;font-size:calc(10.5px + var(--tp-text-extra,0px))}.account-recovery-head small{display:block;margin-top:3px;font-size:calc(8.5px + var(--tp-text-extra,0px));color:var(--muted)}
.account-recovery-head button{min-height:36px;border:0;border-radius:11px;background:#4f6556;color:#fff;padding:0 10px;font-size:calc(9px + var(--tp-text-extra,0px));font-weight:900}
.account-recovery-list{display:grid;gap:6px;margin-top:8px}
.recovery-candidate{width:100%;display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px;border:1px solid rgba(77,61,48,.07);border-radius:13px;background:#fff;color:inherit;text-align:left}
.recovery-pet-mark{position:relative;width:40px;height:40px;border-radius:12px;background:#e1e8e1}
.recovery-pet-mark i{position:absolute;left:11px;top:12px;width:18px;height:17px;border-radius:50%;background:#718274}
.recovery-pet-mark b,.recovery-pet-mark::before,.recovery-pet-mark::after{content:"";position:absolute;width:6px;height:7px;border-radius:50%;background:#718274}.recovery-pet-mark b{left:8px;top:7px}.recovery-pet-mark::before{left:17px;top:5px}.recovery-pet-mark::after{right:7px;top:7px}
.recovery-candidate strong{display:block;font-size:calc(10.5px + var(--tp-text-extra,0px))}.recovery-candidate small{display:block;margin-top:2px;font-size:calc(8.5px + var(--tp-text-extra,0px));color:var(--muted)}.recovery-candidate em{display:block;margin-top:2px;font-size:calc(7.5px + var(--tp-text-extra,0px));font-style:normal;color:#a39a91;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.recovery-candidate>span{font-size:calc(9px + var(--tp-text-extra,0px));font-weight:900;color:#57705d}
.recovery-empty{padding:9px;border-radius:11px;background:#fff;font-size:calc(8.5px + var(--tp-text-extra,0px));color:var(--muted);line-height:1.4}
.account-recovery-card>p{margin-top:7px;font-size:calc(8px + var(--tp-text-extra,0px));line-height:1.4;color:var(--muted)}


/* v8.21 — il cucciolo del partner entra nella cameretta principale */
#room.partner-visit-active{
  box-shadow:
    inset 0 0 0 2px rgba(89,113,94,.12),
    0 20px 44px rgba(74,56,41,.09);
}

.partner-room-visitor{
  position:absolute;
  left:76%;
  top:56%;
  width:110px;
  height:135px;
  transform:translate(-50%,-50%);
  z-index:11;
  text-align:center;
  pointer-events:none;
  transition:left .35s ease,top .35s ease;
}

.partner-room-visitor .partner-room-pet{
  position:absolute;
  left:50%;
  top:43%;
  margin:0;
  transform:translate(-50%,-50%) scale(var(--visit-pet-scale,.55)) !important;
  transform-origin:center center;
  pointer-events:auto;
}

.partner-room-visitor>strong{
  position:absolute;
  left:0;
  right:0;
  bottom:13px;
  font-size:calc(9.5px + var(--tp-text-extra,0px));
  font-weight:950;
  color:#4f4943;
  text-shadow:0 1px 0 rgba(255,255,255,.72);
}

.partner-room-visitor>small{
  position:absolute;
  left:0;
  right:0;
  bottom:2px;
  font-size:calc(7.7px + var(--tp-text-extra,0px));
  font-weight:750;
  color:rgba(69,59,51,.65);
}

.partner-room-visitor::before{
  content:"OSPITE";
  position:absolute;
  left:50%;
  top:-3px;
  transform:translateX(-50%);
  padding:3px 6px;
  border-radius:999px;
  background:rgba(81,105,87,.90);
  color:#fff;
  font-size:calc(7.5px + var(--tp-text-extra,0px));
  font-weight:950;
  letter-spacing:.06em;
}

.partner-room-speech{
  position:absolute;
  left:50%;
  top:10px;
  transform:translateX(-50%);
  z-index:24;
  max-width:72%;
  padding:8px 11px;
  border-radius:13px;
  background:rgba(255,255,255,.95);
  box-shadow:0 8px 20px rgba(66,50,37,.12);
  color:#4e4741;
  font-size:calc(9px + var(--tp-text-extra,0px));
  font-weight:850;
  text-align:center;
  pointer-events:none;
}

.partner-main-visit-bar{
  position:absolute;
  left:12px;
  right:12px;
  top:12px;
  z-index:20;
  display:grid;
  grid-template-columns:9px minmax(0,1fr) auto;
  gap:8px;
  align-items:center;
  padding:8px 9px;
  border-radius:14px;
  background:rgba(251,249,245,.93);
  border:1px solid rgba(75,60,47,.08);
  box-shadow:0 8px 22px rgba(67,50,37,.10);
  backdrop-filter:blur(12px);
}

.partner-main-visit-dot{
  width:8px;
  height:8px;
  border-radius:50%;
  background:#66806b;
  box-shadow:0 0 0 4px rgba(102,128,107,.10);
}

.partner-main-visit-bar small{
  display:block;
  font-size:calc(7.5px + var(--tp-text-extra,0px));
  font-weight:950;
  letter-spacing:.07em;
  color:#7d756d;
}

.partner-main-visit-bar strong{
  display:block;
  margin-top:2px;
  font-size:calc(9px + var(--tp-text-extra,0px));
  color:#4e4944;
}

.partner-main-visit-bar em{
  display:block;
  margin-top:1px;
  font-size:calc(7.5px + var(--tp-text-extra,0px));
  font-style:normal;
  color:#8b837c;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.partner-main-visit-bar button{
  min-height:31px;
  border:0;
  border-radius:10px;
  background:#ece7df;
  color:#5e5750;
  padding:0 9px;
  font-size:calc(8px + var(--tp-text-extra,0px));
  font-weight:900;
}

.partner-main-visit-actions{
  position:absolute;
  left:50%;
  bottom:10px;
  transform:translateX(-50%);
  z-index:22;
  width:min(92%,390px);
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:5px;
  padding:6px;
  border-radius:15px;
  background:rgba(250,248,244,.93);
  box-shadow:0 8px 24px rgba(66,49,36,.12);
  border:1px solid rgba(75,60,47,.08);
  backdrop-filter:blur(12px);
}

.partner-main-visit-actions button{
  min-width:0;
  min-height:38px;
  border:0;
  border-radius:10px;
  background:#f0ece6;
  color:#514c47;
  padding:5px 4px;
}

.partner-main-visit-actions button>span{
  display:block;
  font-size:calc(7.3px + var(--tp-text-extra,0px));
  font-weight:950;
  color:#948a80;
}

.partner-main-visit-actions button strong{
  display:block;
  margin-top:2px;
  font-size:calc(8.5px + var(--tp-text-extra,0px));
}

.partner-main-visit-actions button:disabled{
  opacity:.36;
}

@media(max-width:520px){
  .partner-room-visitor{
    width:94px;
    height:122px;
  }

  .partner-main-visit-bar{
    left:8px;
    right:8px;
    top:8px;
  }

  .partner-main-visit-bar em{
    display:none;
  }

  .partner-main-visit-actions{
    bottom:7px;
    width:calc(100% - 16px);
    gap:4px;
    padding:5px;
  }

  .partner-main-visit-actions button{
    min-height:34px;
  }
}


/* v8.22 — visite reciproche con invito/accettazione */
.partner-visit-invite{
  position:relative;
  left:auto;
  top:auto;
  transform:none;
  z-index:2;
  width:100%;
  box-sizing:border-box;
  display:grid;
  grid-template-columns:50px minmax(0,1fr);
  gap:11px;
  margin:1px 0 0;
  padding:13px;
  border-radius:19px;
  background:linear-gradient(145deg,#f1f6f2,#fffaf5);
  border:1px solid rgba(75,96,80,.13);
  box-shadow:0 10px 26px rgba(55,72,60,.09);
}
.partner-visit-invite-mark{
  position:relative;width:50px;height:50px;border-radius:16px;background:#dce8de
}
.partner-visit-invite-mark i{position:absolute;left:13px;top:14px;width:24px;height:22px;border-radius:50%;background:#69806d}
.partner-visit-invite-mark b,.partner-visit-invite-mark::before,.partner-visit-invite-mark::after{content:"";position:absolute;width:8px;height:9px;border-radius:50%;background:#69806d}
.partner-visit-invite-mark b{left:9px;top:7px}.partner-visit-invite-mark::before{left:21px;top:5px}.partner-visit-invite-mark::after{right:8px;top:8px}
.partner-visit-invite-copy small{display:block;font-size:calc(7.5px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.09em;color:#728075}
.partner-visit-invite-copy strong{display:block;margin-top:3px;font-size:calc(11.5px + var(--tp-text-extra,0px));line-height:1.25;color:#4d4843}
.partner-visit-invite-copy p{margin-top:4px;font-size:calc(9px + var(--tp-text-extra,0px));line-height:1.4;color:#80776f}
.partner-visit-invite-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1.35fr;gap:6px;margin-top:1px}
.partner-visit-invite-actions button{min-height:39px;border:0;border-radius:12px;background:#ece7e0;color:#5e5750;font-size:calc(9px + var(--tp-text-extra,0px));font-weight:900}
.partner-visit-invite-actions button.primary{background:#526c59;color:#fff}
.partner-visit-invite:not(.hidden){animation:multiplayerInviteIn .28s ease-out}
@keyframes multiplayerInviteIn{from{opacity:0;translate:0 -5px}to{opacity:1;translate:0 0}}

/* La visita parte solo dopo l'accettazione server-side */
#room:not(.partner-visit-active) .partner-room-visitor,
#room:not(.partner-visit-active) .partner-main-visit-bar,
#room:not(.partner-visit-active) .partner-main-visit-actions{display:none!important}

@media(max-width:520px){
  .partner-visit-invite{width:calc(100% - 20px);grid-template-columns:44px minmax(0,1fr);padding:11px;gap:9px}
  .partner-visit-invite-mark{width:44px;height:44px}
  .partner-visit-invite-mark i{left:11px;top:12px;width:22px;height:20px}
}


/* v8.23 — Social Hub: amici multipli */
.cloud-sheet{width:min(720px,calc(100% - 20px))}
.social-hub{display:grid;gap:9px}
.social-profile-hero{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:11px;align-items:center;padding:13px;border-radius:20px;background:linear-gradient(145deg,#e7efe8,#f3eee6);border:1px solid rgba(70,84,72,.08);position:relative;overflow:hidden}
.social-profile-hero::after{content:"";position:absolute;right:-46px;top:-62px;width:150px;height:150px;border-radius:50%;background:rgba(91,119,97,.07)}
.social-player-avatar{position:relative;width:58px;height:58px;border-radius:19px;background:#657b6a;display:grid;place-items:center;box-shadow:0 9px 20px rgba(67,82,70,.16);z-index:1}.social-player-avatar span{color:#fff;font-size:calc(17px + var(--tp-text-extra,0px));font-weight:950}.social-player-avatar i{position:absolute;right:4px;bottom:4px;width:10px;height:10px;border-radius:50%;background:#78aa80;border:2px solid #eef2ec}
.social-profile-copy{z-index:1}.social-profile-copy h3{font-size:calc(14px + var(--tp-text-extra,0px));margin-top:2px}.social-profile-copy p{font-size:calc(9.5px + var(--tp-text-extra,0px));margin-top:3px;color:#59665d;font-weight:800}.social-profile-copy small{display:block;margin-top:4px;font-size:calc(8px + var(--tp-text-extra,0px));color:var(--muted)}
.social-own-level{z-index:1;text-align:right}.social-own-level span{display:block;font-size:calc(7.5px + var(--tp-text-extra,0px));font-weight:950;color:#768178}.social-own-level strong{display:block;margin-top:2px;font-size:calc(9.5px + var(--tp-text-extra,0px));padding:5px 7px;border-radius:999px;background:rgba(255,255,255,.65)}
.social-code-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px 12px;border-radius:17px;background:#393633;color:#fff}.social-code-card strong{display:block;margin-top:3px;font-size:calc(17px + var(--tp-text-extra,0px));letter-spacing:.12em}.social-code-card small{display:block;margin-top:2px;font-size:calc(8px + var(--tp-text-extra,0px));color:rgba(255,255,255,.62)}.social-code-card .eyebrow{color:rgba(255,255,255,.55)}.social-code-card button{min-height:37px;border:0;border-radius:11px;padding:0 12px;background:#f4efe7;color:#4c4641;font-size:calc(9px + var(--tp-text-extra,0px));font-weight:950}
.social-stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.social-stats-row>div{padding:9px;border-radius:14px;background:#f5f1eb;text-align:center}.social-stats-row strong{display:block;font-size:calc(15px + var(--tp-text-extra,0px))}.social-stats-row span{display:block;margin-top:2px;font-size:calc(8px + var(--tp-text-extra,0px));color:var(--muted);font-weight:850}
.social-add-card{padding:11px;border-radius:17px;background:#f4f0ea}.social-add-card>div:first-child strong{display:block;margin-top:2px;font-size:calc(10.5px + var(--tp-text-extra,0px))}.social-add-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;margin-top:8px}.social-add-row input{height:41px;border:1px solid rgba(77,61,48,.10);border-radius:12px;background:#fff;padding:0 11px;font:inherit;font-size:calc(10.5px + var(--tp-text-extra,0px));font-weight:850;letter-spacing:.08em;text-transform:uppercase;color:inherit;outline:none}.social-add-row input:focus{border-color:#78927e;box-shadow:0 0 0 3px rgba(120,146,126,.10)}.social-add-row button{border:0;border-radius:12px;background:#536b59;color:#fff;padding:0 12px;font-size:calc(9px + var(--tp-text-extra,0px));font-weight:950}
.social-section-head{display:flex;align-items:end;justify-content:space-between;gap:10px;margin:4px 2px 7px}.social-section-head h3{font-size:calc(12px + var(--tp-text-extra,0px));margin-top:2px}.social-section-head>button{border:0;background:transparent;color:#617267;font-size:calc(9px + var(--tp-text-extra,0px));font-weight:900}
.social-request-list{display:grid;gap:6px}.social-request-card{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px;border-radius:15px;background:#eef5ef;border:1px solid rgba(78,108,85,.08)}.social-request-card>div:nth-child(2) strong{display:block;font-size:calc(10.5px + var(--tp-text-extra,0px))}.social-request-card>div:nth-child(2) small{display:block;margin-top:2px;font-size:calc(8px + var(--tp-text-extra,0px));color:var(--muted)}.social-request-actions{display:flex;gap:4px}.social-request-actions button{min-height:32px;border:0;border-radius:9px;background:#526d59;color:#fff;padding:0 8px;font-size:calc(8px + var(--tp-text-extra,0px));font-weight:900}.social-request-actions button.muted{background:#e2ddd7;color:#625a53}
.social-outgoing-section{padding:9px 10px;border-radius:15px;background:#f5f2ed}.social-outgoing-row{display:grid;grid-template-columns:9px 1fr;gap:7px;align-items:center;padding:6px 0}.social-outgoing-row>span{width:7px;height:7px;border-radius:50%;background:#c6a966}.social-outgoing-row strong{display:block;font-size:calc(9.5px + var(--tp-text-extra,0px))}.social-outgoing-row small{display:block;margin-top:2px;font-size:calc(8px + var(--tp-text-extra,0px));color:var(--muted)}
.social-friends-list{display:grid;gap:8px}.social-friends-empty{padding:20px 14px;border-radius:18px;background:#f5f2ed;text-align:center}.social-friends-empty strong{display:block;margin-top:8px;font-size:calc(11.5px + var(--tp-text-extra,0px))}.social-friends-empty p{margin-top:4px;font-size:calc(9px + var(--tp-text-extra,0px));line-height:1.4;color:var(--muted)}.social-empty-mark{position:relative;width:52px;height:42px;margin:0 auto}.social-empty-mark i,.social-empty-mark b{position:absolute;width:32px;height:32px;border-radius:50%;background:#d8dfd8}.social-empty-mark i{left:0}.social-empty-mark b{right:0;background:#e3ddd5}.social-empty-mark::after{content:"";position:absolute;left:17px;top:13px;width:18px;height:13px;border-radius:9px;background:#748679}
.social-friend-card{padding:11px;border-radius:19px;background:#fbf9f6;border:1px solid rgba(75,59,47,.08);box-shadow:0 7px 20px rgba(71,53,39,.045)}.social-friend-card.online{border-color:rgba(88,129,96,.17)}
.social-friend-main{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:10px;align-items:center}.social-friend-name{display:flex;align-items:center;gap:7px;min-width:0}.social-friend-name strong{font-size:calc(11.5px + var(--tp-text-extra,0px));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.social-friend-name span{display:flex;align-items:center;gap:3px;font-size:calc(7.5px + var(--tp-text-extra,0px));color:var(--muted)}.social-friend-name span i{width:6px;height:6px;border-radius:50%;background:#aaa}.social-friend-card.online .social-friend-name span i{background:#70a578;box-shadow:0 0 0 3px rgba(112,165,120,.09)}.social-friend-copy p{margin-top:3px;font-size:calc(9px + var(--tp-text-extra,0px));font-weight:800;color:#665e57}.social-friend-copy>small{display:block;margin-top:2px;font-size:calc(7.8px + var(--tp-text-extra,0px));color:#9a9189}.social-level-badge{padding:5px 7px;border-radius:999px;background:#eee9e2;font-size:calc(8px + var(--tp-text-extra,0px));color:#665e57}
.social-pet-avatar{position:relative;width:44px;height:44px;border-radius:15px;background:#d8b08e;overflow:hidden}.social-pet-avatar.large{width:52px;height:52px;border-radius:17px}.social-pet-avatar .head{position:absolute;left:11px;top:11px;width:25px;height:24px;border-radius:50% 50% 45% 45%;background:#ad7c57}.social-pet-avatar .ear-l,.social-pet-avatar .ear-r{position:absolute;top:6px;width:11px;height:17px;border-radius:70% 45% 55% 45%;background:#926748}.social-pet-avatar .ear-l{left:8px;transform:rotate(-20deg)}.social-pet-avatar .ear-r{right:8px;transform:scaleX(-1) rotate(-20deg)}.social-pet-avatar .muzzle{position:absolute;left:17px;top:25px;width:14px;height:9px;border-radius:50%;background:#dec1aa}.social-pet-avatar.fur-cream{background:#eee1cb}.social-pet-avatar.fur-cream .head,.social-pet-avatar.fur-cream .ear-l,.social-pet-avatar.fur-cream .ear-r{background:#d4b58d}.social-pet-avatar.fur-snow{background:#edf0ef}.social-pet-avatar.fur-snow .head,.social-pet-avatar.fur-snow .ear-l,.social-pet-avatar.fur-snow .ear-r{background:#d6d8d7}.social-pet-avatar.fur-gray{background:#d5d7d8}.social-pet-avatar.fur-gray .head,.social-pet-avatar.fur-gray .ear-l,.social-pet-avatar.fur-gray .ear-r{background:#96999c}.social-pet-avatar.fur-rust{background:#e3b08e}.social-pet-avatar.fur-rust .head,.social-pet-avatar.fur-rust .ear-l,.social-pet-avatar.fur-rust .ear-r{background:#b96b42}.social-pet-avatar.fur-chocolate{background:#b9967e}.social-pet-avatar.fur-chocolate .head,.social-pet-avatar.fur-chocolate .ear-l,.social-pet-avatar.fur-chocolate .ear-r{background:#79523e}.social-pet-avatar.species-cat .ear-l,.social-pet-avatar.species-cat .ear-r{height:14px;border-radius:80% 10% 70% 20%}.social-pet-avatar.species-rabbit .ear-l,.social-pet-avatar.species-rabbit .ear-r{height:25px;top:0;width:8px}.social-pet-avatar.species-fox .ear-l,.social-pet-avatar.species-fox .ear-r{border-radius:90% 5% 70% 15%;height:18px}.social-pet-avatar.species-bear .ear-l,.social-pet-avatar.species-bear .ear-r{width:10px;height:10px;border-radius:50%;top:8px}
.social-friend-relation{margin-top:9px;padding-top:8px;border-top:1px solid rgba(75,60,47,.06)}.social-friend-relation>div:first-child{display:flex;justify-content:space-between;gap:8px}.social-friend-relation span,.social-friend-relation strong{font-size:calc(8px + var(--tp-text-extra,0px));color:#6c756e}.social-relation-bar{height:5px;margin-top:5px;border-radius:999px;background:#e7e2dc;overflow:hidden}.social-relation-bar i{display:block;height:100%;background:#728a77;border-radius:inherit}
.social-friend-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:8px}.social-friend-meta span{padding:6px;border-radius:10px;background:#f3efe9;text-align:center;font-size:calc(7.5px + var(--tp-text-extra,0px));color:#8a8178}.social-friend-meta b{display:block;font-size:calc(9.5px + var(--tp-text-extra,0px));color:#5d5650;margin-bottom:1px}
.social-friend-actions{display:grid;grid-template-columns:1fr 38px;gap:5px;margin-top:8px}.social-friend-actions button{min-height:36px;border:0;border-radius:11px;background:#ece7e0;color:#615951;font-size:calc(9px + var(--tp-text-extra,0px));font-weight:900}.social-friend-actions button.primary{background:#4f6856;color:#fff}.social-friend-actions button:disabled{opacity:.42}
.legacy-cloud-panel{margin-top:10px;border-radius:17px;background:#f3f0eb;overflow:hidden;border:1px solid rgba(73,58,47,.07)}.legacy-cloud-panel summary{list-style:none;display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;padding:11px;cursor:pointer}.legacy-cloud-panel summary::-webkit-details-marker{display:none}.legacy-cloud-panel summary strong{display:block;margin-top:2px;font-size:calc(10.5px + var(--tp-text-extra,0px))}.legacy-cloud-panel summary small{display:block;margin-top:2px;font-size:calc(8px + var(--tp-text-extra,0px));color:var(--muted)}.legacy-cloud-panel summary>i{font-style:normal;color:#8a8179}.legacy-cloud-content{padding:0 9px 9px}.legacy-cloud-content .cloud-help{margin-bottom:0}
.social-unavailable{opacity:.65}.social-unavailable .social-add-card,.social-unavailable .social-code-card button{pointer-events:none}
@media(max-width:520px){.cloud-sheet{width:calc(100% - 12px)}.social-profile-hero{grid-template-columns:52px minmax(0,1fr)}.social-own-level{grid-column:2;text-align:left}.social-request-card{grid-template-columns:40px minmax(0,1fr)}.social-request-actions{grid-column:1/-1}.social-friend-main{grid-template-columns:48px minmax(0,1fr) auto}.social-friend-meta{gap:3px}.social-add-row{grid-template-columns:1fr}.social-add-row button{min-height:39px}}


/* ==========================================================
   v8.24 · Snack Puzzle — livello 1
   ========================================================== */
.snack-puzzle-feature{
  width:100%;
  border:0;
  border-radius:23px;
  padding:14px;
  display:grid;
  grid-template-columns:88px minmax(0,1fr) auto;
  gap:13px;
  align-items:center;
  text-align:left;
  background:linear-gradient(135deg,#4f6756,#6e806a 58%,#8b977b);
  color:#fff;
  box-shadow:0 14px 30px rgba(67,84,71,.18);
  overflow:hidden;
  position:relative;
}
.snack-puzzle-feature::after{
  content:"";
  position:absolute;right:-35px;top:-48px;width:150px;height:150px;border-radius:50%;
  background:rgba(255,255,255,.08);
}
.snack-feature-art{
  position:relative;height:76px;border-radius:20px;background:rgba(255,255,255,.13);
}
.snack-feature-art span{position:absolute;filter:drop-shadow(0 5px 6px rgba(34,30,24,.12))}
.snack-art-cookie{font-size:38px;left:20px;top:17px;transform:rotate(-9deg)}
.snack-art-berry{font-size:24px;right:9px;top:8px;transform:rotate(8deg)}
.snack-art-star{font-size:calc(18px + var(--tp-text-extra,0px));right:13px;bottom:8px}
.snack-feature-copy{min-width:0;position:relative;z-index:1}
.snack-feature-copy .eyebrow{color:rgba(255,255,255,.68)}
.snack-feature-copy>strong{display:block;margin-top:3px;font-size:calc(15px + var(--tp-text-extra,0px))}
.snack-feature-copy>small{display:block;margin-top:4px;font-size:calc(10.5px + var(--tp-text-extra,0px));color:rgba(255,255,255,.78);line-height:1.35}
.snack-feature-meta{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}
.snack-feature-meta em{padding:5px 7px;border-radius:999px;background:rgba(255,255,255,.12);font-size:calc(9px + var(--tp-text-extra,0px));font-style:normal;font-weight:800;color:rgba(255,255,255,.88)}
.snack-puzzle-feature>b{position:relative;z-index:1;padding:8px 10px;border-radius:999px;background:#fff;color:#4e6253;font-size:calc(10.5px + var(--tp-text-extra,0px))}
.arcade-divider-title{display:flex;justify-content:space-between;align-items:end;padding:6px 3px 0}
.arcade-divider-title span{font-size:calc(9px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.08em;color:#827970}
.arcade-divider-title small{font-size:calc(9px + var(--tp-text-extra,0px));color:var(--muted)}

.snack-puzzle-sheet{
  width:min(760px,calc(100% - 18px));
  max-height:94dvh;
  overflow-y:auto;
}
.snack-sheet-head p{margin-top:3px;font-size:calc(9.5px + var(--tp-text-extra,0px));color:var(--muted)}
.snack-economy-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:10px}
.snack-economy-strip>div{padding:9px 7px;border-radius:14px;background:#f2eee8;text-align:center}
.snack-economy-strip span{font-size:calc(15px + var(--tp-text-extra,0px))}.snack-economy-strip strong{display:block;margin-top:3px;font-size:calc(13px + var(--tp-text-extra,0px))}.snack-economy-strip small{display:block;margin-top:1px;font-size:calc(8px + var(--tp-text-extra,0px));color:var(--muted)}

.snack-level-selector{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin-bottom:8px}
.snack-level-selector button{border:1px solid rgba(77,61,47,.08);border-radius:15px;background:#f6f2ec;padding:8px;display:grid;grid-template-columns:31px minmax(0,1fr) auto;gap:7px;align-items:center;text-align:left;color:#5e5750}
.snack-level-selector button>span{width:31px;height:31px;border-radius:10px;background:#e5dfd6;display:grid;place-items:center;font-size:calc(12px + var(--tp-text-extra,0px));font-weight:950}
.snack-level-selector button strong{display:block;font-size:calc(9px + var(--tp-text-extra,0px))}.snack-level-selector button small{display:block;margin-top:2px;font-size:calc(7.5px + var(--tp-text-extra,0px));color:var(--muted)}.snack-level-selector button>b{font-size:calc(15px + var(--tp-text-extra,0px))}
.snack-level-selector button.active{background:#536a5a;color:#fff;border-color:transparent;box-shadow:0 7px 16px rgba(70,91,76,.16)}
.snack-level-selector button.active>span{background:rgba(255,255,255,.15)}.snack-level-selector button.active small{color:rgba(255,255,255,.65)}
.snack-level-selector button.completed:not(.active)>span{background:#dfeadf;color:#4d7054}.snack-level-selector button.locked{opacity:.52}

.snack-level-hero{
  display:grid;grid-template-columns:62px minmax(0,1fr) auto;gap:11px;align-items:center;
  padding:13px;border-radius:20px;background:linear-gradient(135deg,#f4eadd,#ede4d7);
  border:1px solid rgba(78,62,47,.06);
}
.snack-level-number{width:62px;height:62px;border-radius:19px;background:#536a5a;color:#fff;display:grid;place-items:center;align-content:center}
.snack-level-number small{font-size:calc(7.5px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.08em;opacity:.75}.snack-level-number strong{font-size:28px;line-height:1}
.snack-level-hero h3{margin-top:2px;font-size:calc(15px + var(--tp-text-extra,0px))}.snack-level-hero p{margin-top:4px;font-size:calc(9.5px + var(--tp-text-extra,0px));line-height:1.4;color:var(--muted)}
.snack-first-badge{padding:5px 7px;border-radius:999px;background:#fff8df;color:#8b6a22;font-size:calc(8px + var(--tp-text-extra,0px));font-weight:950;white-space:nowrap}
.snack-level-objectives{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:8px}
.snack-level-objectives>div{padding:9px 7px;border-radius:14px;background:#f7f4ef;text-align:center}
.snack-level-objectives span{font-size:calc(16px + var(--tp-text-extra,0px))}.snack-level-objectives small{display:block;margin-top:3px;font-size:calc(7.5px + var(--tp-text-extra,0px));font-weight:950;color:#8d847b}.snack-level-objectives strong{display:block;margin-top:2px;font-size:calc(9.5px + var(--tp-text-extra,0px))}
.snack-level-rules{margin-top:8px;padding:11px;border-radius:16px;background:#eef3ee}
.snack-level-rules>strong{display:block;font-size:calc(10.5px + var(--tp-text-extra,0px));margin-bottom:7px}.snack-level-rules-list>div{display:grid;grid-template-columns:22px 1fr;gap:7px;align-items:center;margin-top:5px}
.snack-level-rules i{width:22px;height:22px;border-radius:8px;background:#5e7463;color:#fff;display:grid;place-items:center;font-style:normal;font-size:calc(9px + var(--tp-text-extra,0px));font-weight:950}
.snack-level-rules span{font-size:calc(9px + var(--tp-text-extra,0px));line-height:1.35;color:#667066}
.snack-start-button{margin-top:9px;width:100%;border:0;border-radius:17px;background:#2e2b28;color:#fff;padding:11px;display:grid;grid-template-columns:36px 1fr auto;gap:9px;align-items:center;text-align:left}
.snack-start-button>span{font-size:25px}.snack-start-button strong{display:block;font-size:calc(11.5px + var(--tp-text-extra,0px))}.snack-start-button small{display:block;margin-top:2px;font-size:calc(8.5px + var(--tp-text-extra,0px));color:rgba(255,255,255,.65)}.snack-start-button b{padding:7px 9px;border-radius:999px;background:#fff;color:#34302c;font-size:calc(9px + var(--tp-text-extra,0px))}
.snack-coming-next{margin-top:7px;padding:9px;border-radius:15px;border:1px dashed rgba(82,66,51,.16);display:grid;grid-template-columns:35px 1fr auto;gap:8px;align-items:center;opacity:.72}
.snack-coming-next>span{width:35px;height:35px;border-radius:12px;background:#e9e4dd;display:grid;place-items:center;font-size:calc(14px + var(--tp-text-extra,0px));font-weight:950}.snack-coming-next strong{display:block;font-size:calc(9.5px + var(--tp-text-extra,0px))}.snack-coming-next small{display:block;margin-top:2px;font-size:calc(8px + var(--tp-text-extra,0px));color:var(--muted)}.snack-coming-next b{font-size:calc(7.5px + var(--tp-text-extra,0px));letter-spacing:.07em}
.snack-back-arcade{margin-top:8px;width:100%;border:0;background:transparent;color:#756d66;font-size:calc(9px + var(--tp-text-extra,0px));font-weight:850;padding:8px}

.snack-game-top{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:9px;align-items:center;margin-bottom:8px}
.snack-game-top button{border:0;border-radius:10px;background:#f1ede7;min-height:33px;padding:0 9px;color:#5f5852;font-size:calc(9px + var(--tp-text-extra,0px));font-weight:850}.snack-game-top>div strong{display:block;margin-top:2px;font-size:calc(11.5px + var(--tp-text-extra,0px))}
.snack-hud{display:grid;grid-template-columns:72px minmax(0,1fr) 90px;gap:7px;margin-bottom:7px}
.snack-hud>div{border-radius:14px;background:#f2eee8;padding:8px}
.snack-hud small{display:block;font-size:calc(7.5px + var(--tp-text-extra,0px));font-weight:950;color:#897f76}.snack-hud-moves strong,.snack-hud-score strong{display:block;margin-top:2px;font-size:calc(16px + var(--tp-text-extra,0px))}
.snack-hud-score{text-align:right}.snack-goal-values{display:flex;align-items:center;justify-content:center;gap:5px}.snack-goal-values>span{font-size:calc(17px + var(--tp-text-extra,0px))}.snack-goal-values>strong{font-size:calc(11.5px + var(--tp-text-extra,0px))}.snack-goal-values #snackSecondaryGoal{align-items:center;gap:3px;margin-left:3px;padding-left:6px;border-left:1px solid rgba(78,63,50,.12)}.snack-goal-values #snackSecondaryGoal i{font-style:normal;font-size:calc(14px + var(--tp-text-extra,0px))}.snack-goal-values #snackSecondaryGoal strong{font-size:calc(10.5px + var(--tp-text-extra,0px))}
.snack-goal-track{height:6px!important;padding:0!important;margin-top:6px;background:#ddd6cd!important;border-radius:999px!important;overflow:hidden}.snack-goal-track i{display:block;height:100%;width:0;background:#657b67;border-radius:999px;transition:width .28s ease}
.snack-tutorial{display:grid;grid-template-columns:30px 1fr;gap:7px;align-items:center;margin-bottom:7px;padding:8px;border-radius:13px;background:#fff7dc}.snack-tutorial i{font-style:normal;font-size:calc(8px + var(--tp-text-extra,0px));font-weight:950;color:#947224}.snack-tutorial span{font-size:calc(8.5px + var(--tp-text-extra,0px));line-height:1.35;color:#75633c}

.snack-board-wrap{position:relative;padding:8px;border-radius:23px;background:linear-gradient(180deg,#d7c9ba,#cab8a6);box-shadow:inset 0 0 0 1px rgba(75,55,39,.08)}
.snack-board{display:grid;grid-template-columns:repeat(var(--snack-cols,7),1fr);gap:5px;touch-action:none;user-select:none;-webkit-user-select:none}
.snack-cell{
  position:relative;aspect-ratio:1;border:0;border-radius:14px;background:#f7f1e9;
  display:grid;place-items:center;font-size:clamp(20px,4.5vw,34px);
  box-shadow:0 4px 8px rgba(69,50,34,.11),inset 0 1px 0 rgba(255,255,255,.8);
  transition:transform .13s ease,opacity .18s ease,box-shadow .14s ease;
  overflow:hidden;
}
.snack-cell:active{transform:scale(.92)}
.snack-cell.selected{box-shadow:0 0 0 3px #5e7c65,0 5px 10px rgba(58,76,61,.2);transform:scale(.95)}
.snack-cell.hint{animation:snackHintPulse .65s ease-in-out infinite alternate;box-shadow:0 0 0 3px #fff,0 0 0 6px rgba(90,123,97,.55)}
.snack-cell.invalid{animation:snackInvalid .2s ease-in-out 2}
.snack-cell.clearing{animation:snackClear .22s ease-in forwards}
.snack-cell.falling{animation:snackFall .18s ease-out}
.snack-cell.special-born{animation:snackSpecialBorn .32s ease-out}
.snack-cell>span{position:relative;z-index:1}.snack-wrapper{position:absolute;inset:3px;z-index:2;border:3px solid rgba(157,111,67,.78);border-radius:10px;background:repeating-linear-gradient(135deg,rgba(218,173,118,.18) 0 7px,rgba(170,120,72,.12) 7px 14px);box-shadow:inset 0 0 0 1px rgba(255,244,223,.7);pointer-events:none}.snack-wrapper i{position:absolute;left:50%;top:-3px;bottom:-3px;width:7px;transform:translateX(-50%);background:rgba(239,211,163,.82);box-shadow:0 0 0 1px rgba(132,90,51,.12)}
.snack-cell.wrapper-clearing .snack-wrapper{animation:snackWrapperBreak .22s ease-in forwards}
.snack-ice{position:absolute;inset:2px;z-index:2;border-radius:12px;border:2px solid rgba(179,226,241,.92);background:linear-gradient(135deg,rgba(241,253,255,.62),rgba(129,201,227,.28));box-shadow:inset 0 0 9px rgba(255,255,255,.85),0 0 0 1px rgba(93,171,203,.16);pointer-events:none}.snack-ice::before,.snack-ice::after,.snack-ice i{content:"";position:absolute;height:2px;background:rgba(93,156,183,.52);border-radius:999px;transform-origin:left center}.snack-ice::before{width:42%;left:12%;top:38%;transform:rotate(28deg)}.snack-ice::after{width:35%;right:5%;bottom:31%;transform:rotate(-39deg)}.snack-ice i{width:29%;left:43%;top:53%;transform:rotate(108deg)}
.snack-ice.ice-layer-2{border-width:3px;background:linear-gradient(135deg,rgba(245,254,255,.78),rgba(112,193,224,.42));box-shadow:inset 0 0 12px rgba(255,255,255,.95),0 0 0 1px rgba(77,158,192,.23)}
.snack-cell.ice-clearing .snack-ice{animation:snackIceCrack .24s ease-in-out}
.snack-cell.special-row::after,.snack-cell.special-col::after{content:"";position:absolute;background:rgba(255,255,255,.66);border-radius:999px;box-shadow:0 0 7px rgba(255,255,255,.85)}
.snack-cell.special-row::after{left:7px;right:7px;height:5px;top:50%;transform:translateY(-50%)}
.snack-cell.special-col::after{top:7px;bottom:7px;width:5px;left:50%;transform:translateX(-50%)}
.snack-cookie{background:#f1d9b5}.snack-apple{background:#efd0c9}.snack-berry{background:#d9d7ec}.snack-carrot{background:#f1d7b8}.snack-milk{background:#e7eef0}.snack-star{background:#f5e9ba}
.snack-puzzle-message{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:9;max-width:78%;padding:9px 12px;border-radius:14px;background:rgba(39,36,33,.91);color:#fff;text-align:center;font-size:calc(9px + var(--tp-text-extra,0px));font-weight:850;box-shadow:0 8px 24px rgba(50,37,27,.22);pointer-events:none}
.snack-combo{position:absolute;right:13px;top:12px;z-index:7;font-size:calc(9.5px + var(--tp-text-extra,0px));font-weight:950;color:#fff;text-shadow:0 2px 5px rgba(0,0,0,.3)}
.snack-game-actions{display:grid;grid-template-columns:150px 1fr;gap:7px;margin-top:7px}
.snack-game-actions>button{border:0;border-radius:14px;background:#eef3ee;padding:8px;text-align:left;display:grid;grid-template-columns:24px 1fr;column-gap:6px}.snack-game-actions>button span{grid-row:1/3;font-size:calc(15px + var(--tp-text-extra,0px))}.snack-game-actions>button strong{font-size:calc(9px + var(--tp-text-extra,0px))}.snack-game-actions>button small{font-size:calc(7.5px + var(--tp-text-extra,0px));color:var(--muted)}
.snack-reward-reminder{border-radius:14px;background:#f3efe9;padding:8px;display:grid;grid-template-columns:25px 1fr;gap:6px;align-items:center}.snack-reward-reminder>span{font-size:calc(16px + var(--tp-text-extra,0px))}.snack-reward-reminder strong{display:block;font-size:calc(9px + var(--tp-text-extra,0px))}.snack-reward-reminder small{display:block;margin-top:2px;font-size:calc(7.5px + var(--tp-text-extra,0px));color:var(--muted)}

.snack-result{text-align:center;padding:12px 2px 4px}.snack-result-icon{width:72px;height:72px;border-radius:24px;background:#eef3e9;display:grid;place-items:center;margin:0 auto 10px;font-size:36px}.snack-result h3{margin-top:3px;font-size:calc(18px + var(--tp-text-extra,0px))}.snack-result>p{max-width:520px;margin:6px auto 0;font-size:calc(9.5px + var(--tp-text-extra,0px));line-height:1.45;color:var(--muted)}
.snack-result-rewards{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:11px}.snack-result-rewards>div{padding:10px;border-radius:14px;background:#f3efe9}.snack-result-rewards span{font-size:calc(18px + var(--tp-text-extra,0px))}.snack-result-rewards strong{display:block;margin-top:4px;font-size:calc(9.5px + var(--tp-text-extra,0px))}
.snack-cap-note{margin-top:8px;padding:8px;border-radius:12px;background:#fff4d9;color:#776237;font-size:calc(8.5px + var(--tp-text-extra,0px));line-height:1.4}
.snack-result-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px}.snack-result-actions button{border:0;border-radius:13px;min-height:40px;background:#ece7df;font-size:calc(9.5px + var(--tp-text-extra,0px));font-weight:900}.snack-result-actions button.primary{background:#4f6756;color:#fff}

@keyframes snackHintPulse{from{transform:scale(.95)}to{transform:scale(1.04)}}
@keyframes snackInvalid{0%,100%{transform:translateX(0)}50%{transform:translateX(5px)}}
@keyframes snackClear{to{transform:scale(.2) rotate(12deg);opacity:0}}
@keyframes snackFall{from{transform:translateY(-15px);opacity:.35}to{transform:translateY(0);opacity:1}}
@keyframes snackSpecialBorn{0%{transform:scale(.65)}65%{transform:scale(1.15)}100%{transform:scale(1)}}
@keyframes snackWrapperBreak{to{transform:scale(1.22) rotate(8deg);opacity:0}}
@keyframes snackIceCrack{50%{transform:scale(1.08);filter:brightness(1.22)}100%{transform:scale(.96)}}

@media(max-width:560px){
  .snack-puzzle-feature{grid-template-columns:64px minmax(0,1fr) auto;padding:10px;gap:9px}.snack-feature-art{height:62px}.snack-art-cookie{font-size:31px;left:13px;top:15px}.snack-art-berry{font-size:calc(19px + var(--tp-text-extra,0px))}.snack-art-star{font-size:calc(15px + var(--tp-text-extra,0px))}
  .snack-feature-meta em:nth-child(2){display:none}
  .snack-level-hero{grid-template-columns:52px 1fr}.snack-level-number{width:52px;height:52px}.snack-first-badge{grid-column:1/-1;justify-self:start}
  .snack-level-selector{grid-template-columns:1fr}.snack-level-selector button{min-height:48px}
  .snack-level-objectives{grid-template-columns:repeat(2,1fr)}
  .snack-hud{grid-template-columns:60px 1fr 74px}
  .snack-board{gap:4px}.snack-cell{border-radius:11px;font-size:clamp(20px,7.4vw,31px)}
  .snack-game-actions{grid-template-columns:1fr}.snack-result-rewards{grid-template-columns:1fr 1fr 1fr}
}


/* v8.24.1 — touch affidabile Snack Puzzle */
.snack-board,
.snack-cell{
  touch-action:none !important;
  -webkit-user-select:none !important;
  user-select:none !important;
  -webkit-touch-callout:none !important;
  -webkit-tap-highlight-color:transparent !important;
  overscroll-behavior:contain;
}

.snack-cell{
  cursor:pointer;
  min-width:0;
  min-height:0;
}

.snack-cell.snack-empty{
  pointer-events:none;
  background:rgba(255,255,255,.22);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18);
  opacity:.45;
}

.snack-cell.pressed{
  transform:scale(.91);
  box-shadow:0 0 0 3px rgba(86,111,91,.28),0 3px 7px rgba(69,50,34,.13);
}

.snack-board-wrap{
  overscroll-behavior:contain;
}

@media(pointer:coarse){
  .snack-board{gap:4px}
  .snack-cell{
    border-radius:12px;
    font-size:clamp(22px,7vw,32px);
  }
}


/* v8.24.2 — input touch nativo + feedback più evidente */
.snack-cell.pressed{
  transform:scale(.88) !important;
  filter:brightness(.96);
}
@media(pointer:coarse){
  .snack-cell{
    min-height:42px;
  }
}


/* v8.27 — Sala giochi rinnovata, Snack Puzzle in primo piano */
.arcade-sheet{
  width:min(820px,calc(100% - 18px));
  max-height:94dvh;
  overflow-y:auto;
  background:linear-gradient(180deg,#fffdf9 0%,#faf7f2 100%);
}
.arcade-sheet-head{align-items:flex-start}.arcade-sheet-head p{margin-top:4px;color:var(--muted);font-size:calc(10.5px + var(--tp-text-extra,0px));font-weight:650;line-height:1.35}
.arcade-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:12px}
.arcade-summary>div{min-width:0;padding:11px 12px;border:1px solid rgba(76,59,45,.06);border-radius:18px;background:rgba(255,255,255,.78);display:grid;grid-template-columns:38px minmax(0,1fr);gap:9px;align-items:center;text-align:left;box-shadow:0 6px 18px rgba(70,52,38,.045)}
.arcade-summary>div>span{width:38px;height:38px;border-radius:13px;display:grid;place-items:center;background:#f1ede6;font-size:calc(19px + var(--tp-text-extra,0px))}.arcade-summary>div>div{min-width:0}.arcade-summary small{margin:0;font-size:calc(8px + var(--tp-text-extra,0px));letter-spacing:.09em}.arcade-summary strong{margin:2px 0 0;font-size:calc(18px + var(--tp-text-extra,0px));line-height:1}.arcade-summary em{display:block;margin-top:2px;color:#948a82;font-size:calc(8.5px + var(--tp-text-extra,0px));font-style:normal;font-weight:750}.arcade-summary-balance>span{background:#fff1c9!important}
.arcade-menu{gap:12px}.arcade-feature-section{padding:11px;border-radius:27px;background:#f1ede7;border:1px solid rgba(76,59,45,.055)}
.arcade-feature-heading{display:flex;align-items:end;justify-content:space-between;gap:12px;padding:1px 4px 9px}.arcade-feature-heading>div strong{display:block;margin-top:2px;font-size:calc(14px + var(--tp-text-extra,0px))}.arcade-feature-heading>span{padding:5px 7px;border-radius:999px;background:#fff;color:#766d65;font-size:calc(8px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.08em}
.snack-puzzle-feature{min-height:222px;padding:25px 17px 17px;border-radius:24px;grid-template-columns:152px minmax(0,1fr) 102px;gap:17px;background:linear-gradient(135deg,#405c4b 0%,#5e7965 58%,#86977b 100%);box-shadow:0 17px 34px rgba(57,78,63,.22);isolation:isolate;transition:transform .18s ease,box-shadow .18s ease}
.snack-puzzle-feature.level-2{background:linear-gradient(135deg,#654a35 0%,#88674a 58%,#aa8966 100%);box-shadow:0 17px 34px rgba(104,74,47,.21)}
.snack-puzzle-feature.level-3{background:linear-gradient(135deg,#365a66 0%,#527989 58%,#80a0aa 100%);box-shadow:0 17px 34px rgba(47,89,103,.22)}
.snack-puzzle-feature.level-4{background:linear-gradient(135deg,#5e466f 0%,#7c5d8d 58%,#a487ae 100%);box-shadow:0 17px 34px rgba(86,62,100,.23)}
.snack-puzzle-feature::before{content:"";position:absolute;z-index:-1;left:29%;bottom:-95px;width:280px;height:190px;border-radius:50%;background:rgba(255,255,255,.07);filter:blur(2px)}
.snack-puzzle-feature::after{z-index:-1;right:-40px;top:-62px;width:210px;height:210px;background:rgba(255,255,255,.085)}
.snack-puzzle-feature:hover{transform:translateY(-2px);box-shadow:0 21px 40px rgba(57,78,63,.25)}.snack-puzzle-feature:active{transform:scale(.992)}
.snack-feature-ribbon{position:absolute;left:15px;top:12px;padding:5px 8px;border-radius:999px;background:rgba(255,255,255,.14);color:rgba(255,255,255,.88);font-size:calc(8px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.11em}
.snack-feature-art{height:auto;aspect-ratio:1;border-radius:23px;padding:9px;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;background:rgba(255,255,255,.13);box-shadow:inset 0 1px rgba(255,255,255,.12)}
.snack-feature-art span{position:relative!important;inset:auto!important;transform:none!important;display:grid;place-items:center;min-width:0;border-radius:11px;background:rgba(255,255,255,.13);font-size:24px!important;filter:drop-shadow(0 4px 5px rgba(34,30,24,.14));transition:transform .2s ease}
.snack-feature-art span:nth-child(2),.snack-feature-art span:nth-child(5),.snack-feature-art span:nth-child(7){background:rgba(255,255,255,.22)}
.snack-puzzle-feature:hover .snack-feature-art span:nth-child(2){transform:scale(1.09) rotate(-4deg)!important}
.snack-feature-copy{align-self:center}.snack-feature-heading-line{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.snack-feature-heading-line>span{font-size:calc(9px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.12em;color:rgba(255,255,255,.67)}.snack-feature-heading-line>em{padding:4px 6px;border-radius:999px;background:rgba(255,255,255,.13);color:#fff;font-size:calc(8px + var(--tp-text-extra,0px));font-style:normal;font-weight:900;letter-spacing:.04em}
.snack-feature-copy>strong{margin-top:7px;font-size:23px;letter-spacing:-.035em;line-height:1.05}.snack-feature-copy>small{margin-top:6px;font-size:calc(10.5px + var(--tp-text-extra,0px));color:rgba(255,255,255,.79)}
.snack-feature-journey{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;margin-top:12px}.snack-feature-journey>span{position:relative;display:grid;grid-template-columns:21px minmax(0,1fr);gap:5px;align-items:center;padding:5px 6px;border-radius:10px;background:rgba(255,255,255,.09);color:rgba(255,255,255,.62)}.snack-feature-journey i{width:21px;height:21px;border-radius:8px;background:rgba(255,255,255,.11);display:grid;place-items:center;font-style:normal;font-size:calc(9px + var(--tp-text-extra,0px));font-weight:950}.snack-feature-journey small{font-size:calc(8px + var(--tp-text-extra,0px));font-weight:850;white-space:nowrap}.snack-feature-journey>span.completed{background:rgba(226,244,218,.17);color:#f4ffed}.snack-feature-journey>span.completed i{background:#e7f2de;color:#46604b}.snack-feature-journey>span.current{box-shadow:inset 0 0 0 1px rgba(255,255,255,.42);color:#fff}.snack-feature-journey>span.locked{opacity:.54}
.snack-feature-meta{gap:5px;margin-top:9px}.snack-feature-meta em{padding:5px 7px;background:rgba(255,255,255,.11);font-size:calc(8.5px + var(--tp-text-extra,0px))}
.snack-feature-cta{position:relative;z-index:1;align-self:center;padding:13px 11px;border-radius:18px;background:#fff;color:#42594a;display:grid;grid-template-columns:1fr auto;align-items:center;column-gap:7px;text-align:left;box-shadow:0 10px 24px rgba(36,48,39,.16)}.level-2 .snack-feature-cta{color:#76553b}.level-3 .snack-feature-cta{color:#426b78}.level-4 .snack-feature-cta{color:#745883}.snack-feature-cta small{grid-column:1/-1;font-size:calc(7.5px + var(--tp-text-extra,0px));letter-spacing:.08em;color:#978f88;font-weight:950}.snack-feature-cta strong{font-size:calc(13px + var(--tp-text-extra,0px));margin-top:3px}.snack-feature-cta i{grid-row:2;font-size:calc(15px + var(--tp-text-extra,0px));font-style:normal;font-weight:900}
.snack-feature-overview{display:grid;grid-template-columns:128px minmax(0,1fr) 128px;gap:8px;align-items:center;margin-top:8px}.snack-feature-overview>div:not(.snack-feature-overview-progress){min-width:0;padding:8px 10px;border-radius:14px;background:#fff;display:grid;grid-template-columns:24px 1fr;column-gap:6px;align-items:center}.snack-feature-overview>div>span{grid-row:1/3;font-size:calc(16px + var(--tp-text-extra,0px))}.snack-feature-overview strong{font-size:calc(11.5px + var(--tp-text-extra,0px))}.snack-feature-overview small{font-size:calc(8px + var(--tp-text-extra,0px));color:var(--muted);font-weight:750}.snack-feature-overview-progress{padding:2px 6px}.snack-feature-overview-progress>span{display:block;height:7px;border-radius:999px;background:#ddd6cd;overflow:hidden}.snack-feature-overview-progress i{display:block;height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,#607967,#9bb08f);transition:width .35s ease}.snack-feature-overview-progress small{display:block;margin-top:5px;text-align:center}
.arcade-divider-title{padding:4px 3px 0;align-items:center}.arcade-divider-title>div span{display:block;font-size:calc(8px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.12em;color:#8b827a}.arcade-divider-title>div strong{display:block;margin-top:2px;font-size:calc(14px + var(--tp-text-extra,0px))}.arcade-divider-title>small{padding:5px 7px;border-radius:999px;background:#f0ebe5;font-size:calc(8px + var(--tp-text-extra,0px));font-weight:800}
.arcade-quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.arcade-game-card{min-height:168px;padding:12px;border-radius:21px;grid-template-columns:48px minmax(0,1fr) 20px;gap:9px;align-items:start;background:#f5eee5;border:1px solid rgba(110,75,43,.08);box-shadow:0 7px 18px rgba(70,50,30,.045);transition:transform .16s ease,box-shadow .16s ease,opacity .16s ease}.arcade-game-card:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 11px 24px rgba(70,50,30,.08)}.arcade-game-card.ready{border-color:rgba(83,123,91,.17)}.arcade-game-card:disabled{opacity:.67}.arcade-game-bowls{background:#f3eee8}.arcade-game-reflex{background:#edf2ed;border-color:rgba(61,102,71,.08)}
.arcade-game-icon{width:48px;height:48px;border-radius:16px;font-size:24px}.arcade-game-paw .arcade-game-icon{background:#f6dfc9}.arcade-game-bowls .arcade-game-icon{background:#e8ded2}.arcade-game-reflex .arcade-game-icon{background:#dce9dc}.arcade-game-card>div{min-width:0}.arcade-game-kicker{display:block;margin:2px 0 5px;font-size:calc(7.5px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.1em;color:#9b8b7c}.arcade-game-card strong{font-size:calc(13px + var(--tp-text-extra,0px));line-height:1.1}.arcade-game-card small{font-size:calc(9.5px + var(--tp-text-extra,0px));line-height:1.35}.arcade-game-arrow{width:20px;height:20px;border-radius:8px;background:rgba(255,255,255,.72);display:grid;place-items:center;font-size:calc(15px + var(--tp-text-extra,0px));font-style:normal;color:#857a70}.arcade-game-footer{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin-top:9px}.arcade-game-card .arcade-game-footer em{margin:0;padding:5px 6px;font-size:calc(8.5px + var(--tp-text-extra,0px))}.arcade-game-card .arcade-game-footer b{padding:5px 6px;border-radius:999px;background:rgba(255,255,255,.72);color:#766d65;font-size:calc(8px + var(--tp-text-extra,0px))}.arcade-game-card.ready .arcade-game-footer em{position:relative;padding-left:14px}.arcade-game-card.ready .arcade-game-footer em::before{content:"";position:absolute;left:6px;top:50%;width:5px;height:5px;border-radius:50%;background:#67a273;transform:translateY(-50%);box-shadow:0 0 0 3px rgba(103,162,115,.11)}

@media(max-width:620px){
  .arcade-sheet{width:calc(100% - 10px);max-height:96dvh}.arcade-summary{gap:5px}.arcade-summary>div{padding:8px 5px;grid-template-columns:1fr;gap:4px;text-align:center}.arcade-summary>div>span{width:31px;height:31px;margin:0 auto;font-size:calc(16px + var(--tp-text-extra,0px))}.arcade-summary strong{font-size:calc(15px + var(--tp-text-extra,0px))}.arcade-summary em{font-size:calc(7.5px + var(--tp-text-extra,0px))}
  .arcade-feature-section{padding:8px;border-radius:22px}.snack-puzzle-feature{min-height:0;padding:26px 11px 11px;grid-template-columns:86px minmax(0,1fr);gap:10px;border-radius:20px}.snack-feature-ribbon{left:10px;top:8px;font-size:calc(7.5px + var(--tp-text-extra,0px))}.snack-feature-art{padding:5px;gap:4px;border-radius:17px}.snack-feature-art span{border-radius:8px;font-size:calc(17px + var(--tp-text-extra,0px))!important}.snack-feature-copy>strong{font-size:calc(18px + var(--tp-text-extra,0px))}.snack-feature-copy>small{font-size:calc(9px + var(--tp-text-extra,0px))}.snack-feature-journey{margin-top:8px;gap:3px}.snack-feature-journey>span{grid-template-columns:17px 1fr;padding:4px;gap:3px}.snack-feature-journey i{width:17px;height:17px;border-radius:6px}.snack-feature-journey small{font-size:calc(7.5px + var(--tp-text-extra,0px))}.snack-feature-meta{margin-top:7px}.snack-feature-meta em{font-size:calc(7.7px + var(--tp-text-extra,0px))}.snack-feature-meta em:nth-child(2){display:none}.snack-feature-cta{grid-column:1/-1;padding:9px 11px;border-radius:14px;grid-template-columns:1fr auto auto}.snack-feature-cta small{grid-column:auto;font-size:calc(7.5px + var(--tp-text-extra,0px))}.snack-feature-cta strong{margin:0;font-size:calc(11.5px + var(--tp-text-extra,0px))}.snack-feature-cta i{grid-row:auto}
  .snack-feature-overview{grid-template-columns:1fr 1fr;gap:5px}.snack-feature-overview-progress{grid-column:1/-1;grid-row:2}.snack-feature-overview>div:not(.snack-feature-overview-progress){padding:7px 8px}.arcade-quick-grid{grid-template-columns:1fr}.arcade-game-card{min-height:0;grid-template-columns:48px minmax(0,1fr) 20px;padding:10px}.arcade-game-kicker{margin-top:1px}.arcade-game-footer{margin-top:7px}
}
@media(max-width:360px){.arcade-sheet-head p{display:none}.arcade-summary small{font-size:calc(7.5px + var(--tp-text-extra,0px))}.arcade-summary em{display:none}.snack-feature-journey small{display:none}.snack-feature-journey>span{grid-template-columns:1fr;justify-items:center}.arcade-divider-title>small{display:none}}




/* v8.30 — Snack Puzzle Livello 4 */
@media(min-width:391px) and (max-width:520px){.snack-level-selector{grid-template-columns:repeat(2,1fr)}}


/* v8.31 — Snack Puzzle Livello 5 · casse rompibili */
.snack-crate-cell{
  opacity:1!important;
  background:linear-gradient(180deg,#dbc29c,#c49c6b)!important;
  box-shadow:inset 0 0 0 2px rgba(113,73,38,.13),0 4px 8px rgba(69,50,34,.12)!important;
}
.snack-crate{
  position:absolute;inset:5px;display:block;border-radius:9px;
  background:
    linear-gradient(90deg,transparent 0 15%,rgba(103,65,34,.16) 15% 19%,transparent 19% 81%,rgba(103,65,34,.16) 81% 85%,transparent 85%),
    repeating-linear-gradient(0deg,#c9955e 0 8px,#b8804d 8px 10px);
  border:2px solid #9b673c;
  box-shadow:inset 0 2px rgba(255,235,198,.24),inset 0 -3px rgba(91,54,28,.12);
}
.snack-crate::before,.snack-crate::after{
  content:"";position:absolute;left:6%;right:6%;height:5px;border-radius:4px;background:#a96f40;box-shadow:inset 0 1px rgba(255,255,255,.15)
}
.snack-crate::before{top:22%}.snack-crate::after{bottom:22%}
.snack-crate i{position:absolute;top:8%;bottom:8%;width:5px;border-radius:4px;background:#a66c3d;z-index:2}
.snack-crate i:first-child{left:22%;transform:rotate(38deg)}
.snack-crate i:nth-child(2){right:22%;transform:rotate(-38deg)}
.snack-crate em{position:absolute;left:50%;top:50%;width:10px;height:10px;transform:translate(-50%,-50%) rotate(45deg);background:#8f5b34;border-radius:2px;z-index:3}
.snack-cell.crate-clearing .snack-crate{animation:snackCrateBreak .25s ease-in forwards}
@keyframes snackCrateBreak{50%{transform:scale(1.08) rotate(-3deg);filter:brightness(1.15)}100%{transform:scale(.55) rotate(10deg);opacity:0}}
.snack-puzzle-feature.level-5{background:linear-gradient(135deg,#66503d,#88684d 58%,#a4815e)}
.snack-puzzle-feature.level-5 .snack-feature-cta strong{color:#6e523c}
@media(min-width:561px) and (max-width:760px){.snack-level-selector{grid-template-columns:repeat(3,1fr)}}
@media(min-width:391px) and (max-width:560px){.snack-level-selector{grid-template-columns:repeat(2,1fr)}}


/* v8.32 — Multiplayer Live: sync adattiva, presenza e ricerca amici */
.social-live-strip{display:grid;grid-template-columns:10px minmax(0,1fr);gap:9px;align-items:center;padding:9px 11px;border-radius:15px;background:#eef4ef;border:1px solid rgba(77,108,85,.08)}
.social-live-strip>span{width:9px;height:9px;border-radius:50%;background:#6fa078;box-shadow:0 0 0 4px rgba(111,160,120,.10)}
.social-live-strip strong{display:block;font-size:calc(9.5px + var(--tp-text-extra,0px))}.social-live-strip small{display:block;margin-top:2px;font-size:calc(8px + var(--tp-text-extra,0px));color:var(--muted)}
.social-live-strip.visit-live{background:#edf3f8;border-color:rgba(77,103,126,.10)}.social-live-strip.visit-live>span{background:#7596b2;box-shadow:0 0 0 4px rgba(117,150,178,.11);animation:socialLivePulse 1.35s ease-in-out infinite}
.social-live-strip.offline,.social-live-strip.error{background:#f6eeee}.social-live-strip.offline>span,.social-live-strip.error>span{background:#b8897f;box-shadow:0 0 0 4px rgba(184,137,127,.10)}
@keyframes socialLivePulse{0%,100%{transform:scale(.9);opacity:.72}50%{transform:scale(1.15);opacity:1}}
.social-code-actions{display:flex;gap:5px;align-items:center}.social-code-actions button+button{background:#dfe9e1;color:#425748}
.social-friends-tools{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;margin:-1px 0 8px}.social-friends-tools input{height:38px;border:1px solid rgba(77,61,48,.10);border-radius:12px;background:#fff;padding:0 10px;font:inherit;font-size:calc(9.5px + var(--tp-text-extra,0px));font-weight:750;color:inherit;outline:none}.social-friends-tools input:focus{border-color:#78927e;box-shadow:0 0 0 3px rgba(120,146,126,.10)}.social-friends-tools button{border:0;border-radius:12px;background:#ece7e0;color:#71685f;padding:0 11px;font-size:calc(9px + var(--tp-text-extra,0px));font-weight:900}.social-friends-tools button.active{background:#536b59;color:#fff}
.social-friend-card.active-visit{border-color:rgba(80,111,89,.30);box-shadow:0 8px 22px rgba(74,104,82,.10)}
.social-friend-card.active-visit .social-friend-actions .primary{position:relative;padding-left:22px}.social-friend-card.active-visit .social-friend-actions .primary::before{content:"";position:absolute;left:9px;top:50%;width:6px;height:6px;border-radius:50%;background:#fff;transform:translateY(-50%);animation:socialLivePulse 1.2s ease-in-out infinite}
@media(max-width:520px){.social-code-card{grid-template-columns:1fr}.social-code-actions{justify-content:stretch}.social-code-actions button{flex:1}.social-friends-tools{grid-template-columns:1fr}.social-friends-tools button{min-height:36px}}

/* v8.33 — attività condivise, intesa live e premi visita */
.partner-main-visit-actions{
  display:block!important;
  width:min(94%,430px)!important;
  padding:7px!important;
  bottom:8px!important;
  border-radius:17px!important;
}
.partner-visit-session{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:5px 10px;
  align-items:end;
  padding:6px 7px 7px;
  margin-bottom:5px;
  border-radius:11px;
  background:rgba(230,237,229,.76);
  overflow:hidden;
}
.partner-session-copy span{display:block;font-size:calc(7.2px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.08em;color:#6d7a70}
.partner-session-copy strong{display:inline-block;margin-top:2px;font-size:calc(10.5px + var(--tp-text-extra,0px));color:#46534a}
.partner-session-copy small{display:block;margin-top:1px;font-size:calc(7.2px + var(--tp-text-extra,0px));font-weight:750;color:#788179}
.partner-session-reward{text-align:right;min-width:112px}
.partner-session-reward em{display:block;font-style:normal;font-size:calc(7.3px + var(--tp-text-extra,0px));font-weight:900;color:#5a695e}
.partner-session-reward small{display:block;margin-top:2px;font-size:calc(7.3px + var(--tp-text-extra,0px));font-weight:750;color:#858e87}
.partner-session-track{grid-column:1/-1;height:4px;border-radius:999px;background:rgba(82,105,87,.10);overflow:hidden}
.partner-session-track i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#738b77,#9eb18f,#d1b36e);transition:width .35s ease}
.partner-visit-action-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.partner-main-visit-actions .partner-visit-action-grid button{
  min-width:0;min-height:38px;border:0;border-radius:10px;background:#f0ece6;color:#514c47;padding:5px 3px;
}
.partner-main-visit-actions .partner-visit-action-grid button>span{display:block;font-size:calc(7.2px + var(--tp-text-extra,0px));font-weight:950;color:#948a80}
.partner-main-visit-actions .partner-visit-action-grid button strong{display:block;margin-top:2px;font-size:calc(7.8px + var(--tp-text-extra,0px));line-height:1.05;white-space:normal}
.partner-main-visit-actions .partner-visit-action-grid button.special{background:#e7eee6;color:#46554a}
.partner-main-visit-actions .partner-visit-action-grid button.special>span{color:#6b826f}
.partner-main-visit-actions .partner-visit-action-grid button:active{transform:translateY(1px) scale(.98)}
.partner-main-visit-actions .partner-visit-action-grid button:disabled{opacity:.35}
.partner-activity-fx{position:absolute;inset:56px 15% 96px;z-index:19;pointer-events:none;overflow:hidden}
.partner-activity-fx>*{position:absolute;display:block;width:12px;height:12px;border-radius:50%;animation:visitFxFloat 1.7s ease-out forwards}
.partner-activity-fx>*:nth-child(1){left:17%;top:65%;animation-delay:0s}.partner-activity-fx>*:nth-child(2){left:42%;top:56%;animation-delay:.16s}.partner-activity-fx>*:nth-child(3){right:25%;top:64%;animation-delay:.28s}.partner-activity-fx>*:nth-child(4){right:9%;top:48%;animation-delay:.42s}
.partner-activity-fx.snack>*{background:radial-gradient(circle at 35% 32%,#fff4c8 0 18%,#d7a35a 20% 68%,#9a6a39 70% 100%);box-shadow:inset -2px -2px rgba(83,52,27,.12)}
.partner-activity-fx.paws>*{width:9px;height:12px;background:#8e755f;opacity:.48;transform:rotate(26deg)}
.partner-activity-fx.music>*{border-radius:3px 50% 50% 50%;background:#8a7ca0;box-shadow:7px -7px 0 -2px #b0937b}
@keyframes visitFxFloat{0%{opacity:0;transform:translateY(12px) scale(.65) rotate(0)}20%{opacity:.85}100%{opacity:0;transform:translateY(-70px) scale(1.12) rotate(28deg)}}
.pet-zone.visit-snack{animation:visitSnackOwn .7s ease-in-out 4!important}.partner-room-visitor.visit-snack{animation:visitSnackGuest .7s ease-in-out 4!important}
.pet-zone.visit-chase{animation:visitChaseOwn .62s ease-in-out 4!important}.partner-room-visitor.visit-chase{animation:visitChaseGuest .62s ease-in-out 4!important}
.pet-zone.visit-dance{animation:visitDanceOwn .48s ease-in-out 6!important}.partner-room-visitor.visit-dance{animation:visitDanceGuest .48s ease-in-out 6!important}
@keyframes visitSnackOwn{0%,100%{transform:translate(-50%,-50%)}50%{transform:translate(-50%,-50%) translateY(7px) scale(.97)}}
@keyframes visitSnackGuest{0%,100%{transform:translate(-50%,-50%)}50%{transform:translate(-50%,-50%) translateY(7px)}}
@keyframes visitChaseOwn{0%,100%{transform:translate(-50%,-50%) translateX(-12px)}50%{transform:translate(-50%,-50%) translateX(22px)}}
@keyframes visitChaseGuest{0%,100%{transform:translate(-50%,-50%) translateX(14px)}50%{transform:translate(-50%,-50%) translateX(-20px)}}
@keyframes visitDanceOwn{0%,100%{transform:translate(-50%,-50%) rotate(-3deg) translateY(0)}50%{transform:translate(-50%,-50%) rotate(4deg) translateY(-7px)}}
@keyframes visitDanceGuest{0%,100%{transform:translate(-50%,-50%) rotate(3deg) translateY(0)}50%{transform:translate(-50%,-50%) rotate(-4deg) translateY(-7px)}}
#room.partner-visit-active .partner-room-visitor,#room.partner-visit-active .pet-zone{will-change:transform}
@media(max-width:520px){
  .partner-main-visit-actions{width:calc(100% - 12px)!important;bottom:6px!important;padding:5px!important}
  .partner-visit-session{padding:5px 6px 6px;margin-bottom:4px}
  .partner-session-reward{min-width:102px}
  .partner-visit-action-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:3px}
  .partner-main-visit-actions .partner-visit-action-grid button{min-height:31px;padding:4px 2px}
  .partner-main-visit-actions .partner-visit-action-grid button strong{font-size:calc(7.4px + var(--tp-text-extra,0px))}
  .partner-main-visit-actions .partner-visit-action-grid button>span{font-size:calc(6.8px + var(--tp-text-extra,0px))}
  .partner-activity-fx{inset:52px 10% 116px}
}
.social-team-progress{margin:10px 0 12px;padding:12px 13px;border-radius:18px;background:linear-gradient(180deg,#f1f5ef,#e9efe7);border:1px solid rgba(83,106,88,.08)}
.social-team-progress>div:first-child>strong{display:block;margin-top:3px;font-size:calc(13px + var(--tp-text-extra,0px))}.social-team-progress>div:first-child>small{display:block;margin-top:4px;font-size:calc(9.5px + var(--tp-text-extra,0px));line-height:1.35;color:#758078;font-weight:650}
.social-team-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:10px}.social-team-metrics span{display:block;padding:8px 6px;border-radius:12px;background:rgba(255,255,255,.72);text-align:center;font-size:calc(9px + var(--tp-text-extra,0px));font-weight:750;color:#718077}.social-team-metrics b{display:block;margin-bottom:2px;font-size:calc(13px + var(--tp-text-extra,0px));color:#4e5d52}


/* v8.34 — cuccioli in movimento libero durante le visite */
.partner-auto-roam{margin-top:4px;border:0;border-radius:999px;padding:3px 6px;background:#5f7865;color:#fff;font-size:calc(7px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.05em;box-shadow:0 2px 6px rgba(64,83,69,.12)}
.partner-auto-roam.is-off{background:#d8d2ca;color:#766f68}
#room.partner-visit-active .pet-zone.visit-roaming{
  transition:left .9s cubic-bezier(.22,.76,.22,1),top .9s cubic-bezier(.22,.76,.22,1),transform .55s ease!important;
  transform:translate(-50%,-50%) scale(var(--pet-use-scale,.88))!important;
  z-index:10;
}
#room.partner-visit-active .partner-room-visitor.visit-roaming{transition:left .9s cubic-bezier(.22,.76,.22,1),top .9s cubic-bezier(.22,.76,.22,1)!important}
#room.partner-visit-active .visit-motion-walk .pet{animation:visitRoamWalk .46s ease-in-out 2!important}
#room.partner-visit-active .visit-motion-look .pet{animation:visitRoamLook 1.6s ease-in-out 1!important}
#room.partner-visit-active .visit-motion-rest .pet{animation:visitRoamRest 1.8s ease-in-out 1!important}
#room.partner-visit-active .visit-motion-play .pet{animation:visitRoamPlay .58s ease-in-out 2!important}
#room.partner-visit-active .visit-motion-sniff .pet{animation:visitRoamSniff .7s ease-in-out 2!important}
#room.partner-visit-active .visit-motion-walk .shadow{animation:visitRoamShadow .46s ease-in-out 2}
@keyframes visitRoamWalk{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-5px) rotate(2deg)}}
@keyframes visitRoamLook{0%,100%{transform:rotate(-2deg)}35%{transform:rotate(4deg)}70%{transform:rotate(-4deg)}}
@keyframes visitRoamRest{0%,100%{transform:translateY(0)}50%{transform:translateY(3px)}}
@keyframes visitRoamPlay{0%,100%{transform:translateY(0) rotate(0)}45%{transform:translateY(-7px) rotate(-3deg)}70%{transform:translateY(-3px) rotate(4deg)}}
@keyframes visitRoamSniff{0%,100%{transform:translateY(0)}50%{transform:translateY(4px)}}
@keyframes visitRoamShadow{0%,100%{transform:scale(1);opacity:.9}50%{transform:scale(.88);opacity:.62}}
#room.partner-visit-active .partner-room-visitor.visit-motion-walk::before{content:"IN GIRO"}
#room.partner-visit-active .partner-room-visitor.visit-motion-play::before{content:"GIOCA"}
#room.partner-visit-active .partner-room-visitor.visit-motion-rest::before{content:"RELAX"}
#room.partner-visit-active .partner-room-visitor.visit-motion-sniff::before{content:"CURIOSO"}
@media(max-width:520px){.partner-auto-roam{padding:3px 5px;font-size:calc(6.7px + var(--tp-text-extra,0px))}}


/* v8.35 — visite: interazioni reali con gli arredi dell’amico */
.partner-furniture-zone{margin-top:8px;padding:9px;border-radius:16px;background:linear-gradient(180deg,#eef4ef,#e8efe9);border:1px solid rgba(73,96,78,.08)}
.partner-furniture-head{display:flex;align-items:flex-end;justify-content:space-between;gap:8px;margin-bottom:7px}.partner-furniture-head>div{min-width:0}.partner-furniture-head span{display:block;font-size:calc(8px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.06em;color:#6d7e71}.partner-furniture-head strong{display:block;margin-top:2px;font-size:calc(10.5px + var(--tp-text-extra,0px))}.partner-furniture-head>small{max-width:48%;font-size:calc(7.8px + var(--tp-text-extra,0px));line-height:1.3;color:#758078;text-align:right}
.partner-furniture-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.partner-furniture-grid button{min-height:58px;border:1px solid rgba(72,91,76,.08);border-radius:13px;background:rgba(255,255,255,.82);padding:7px;display:grid;grid-template-columns:22px 1fr;align-items:center;gap:5px;text-align:left;color:inherit}.partner-furniture-grid button>i{width:22px;height:22px;border-radius:8px;background:#f5f8f5;display:grid;place-items:center;font-style:normal;font-size:calc(13px + var(--tp-text-extra,0px))}.partner-furniture-grid button span{min-width:0}.partner-furniture-grid button b{display:block;font-size:calc(7.8px + var(--tp-text-extra,0px));color:#5d7c64}.partner-furniture-grid button strong{display:block;margin-top:1px;font-size:calc(9px + var(--tp-text-extra,0px))}.partner-furniture-grid button small{display:block;margin-top:2px;font-size:calc(7.3px + var(--tp-text-extra,0px));color:var(--muted);line-height:1.2}.partner-furniture-grid button:disabled{opacity:.35;filter:grayscale(.45)}
.social-team-metrics{grid-template-columns:repeat(4,1fr)!important}
.visit-furniture-drink .pet .head{animation:visitDrinkHead .72s ease-in-out 3}.visit-furniture-drink .pet{animation:visitDrinkBody .72s ease-in-out 3}
.visit-furniture-toy .pet{animation:visitFurnitureToy .52s ease-in-out 5}.visit-furniture-toy .tail{animation-duration:.25s!important}
.visit-furniture-nap .pet{animation:visitFurnitureNap 3.4s ease-in-out both!important}.visit-furniture-nap .face-eye{height:3px!important;top:42px!important;border-radius:999px!important}.visit-furniture-nap .tail{animation:none!important}
.partner-activity-fx.water{position:absolute;z-index:14;left:64%;top:60%;width:58px;height:48px;pointer-events:none}.partner-activity-fx.water i,.partner-activity-fx.water b,.partner-activity-fx.water em{position:absolute;width:8px;height:12px;border-radius:60% 40% 65% 35%;background:#71bde1;transform:rotate(35deg);animation:visitWaterDrop 1.25s ease-in-out infinite}.partner-activity-fx.water i{left:5px;top:4px}.partner-activity-fx.water b{left:26px;top:15px;animation-delay:.2s}.partner-activity-fx.water em{right:4px;top:2px;animation-delay:.4s}
.partner-activity-fx.toy{position:absolute;z-index:14;left:58%;top:63%;width:64px;height:42px;pointer-events:none}.partner-activity-fx.toy i{position:absolute;left:6px;top:8px;width:19px;height:19px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#f4d56b,#d6a049 72%);animation:visitToyBounce .72s ease-in-out infinite}.partner-activity-fx.toy b,.partner-activity-fx.toy em{position:absolute;width:5px;height:5px;border-radius:50%;background:#fff3c8;animation:visitSpark .9s ease-in-out infinite}.partner-activity-fx.toy b{left:36px;top:5px}.partner-activity-fx.toy em{right:5px;bottom:5px;animation-delay:.35s}
.partner-activity-fx.nap{position:absolute;z-index:14;left:61%;top:42%;width:62px;height:58px;pointer-events:none}.partner-activity-fx.nap i,.partner-activity-fx.nap b,.partner-activity-fx.nap em{position:absolute;color:#7f718d;font-style:normal;font-weight:950}.partner-activity-fx.nap i::before{content:"z"}.partner-activity-fx.nap b::before{content:"Z"}.partner-activity-fx.nap em::before{content:"z"}.partner-activity-fx.nap i{left:5px;bottom:5px;font-size:calc(10.5px + var(--tp-text-extra,0px));animation:visitNapZ 1.8s ease-in-out infinite}.partner-activity-fx.nap b{left:25px;bottom:18px;font-size:calc(14px + var(--tp-text-extra,0px));animation:visitNapZ 1.8s ease-in-out infinite .35s}.partner-activity-fx.nap em{right:3px;top:2px;font-size:calc(17px + var(--tp-text-extra,0px));animation:visitNapZ 1.8s ease-in-out infinite .7s}
@keyframes visitDrinkHead{0%,100%{transform:translateY(0) rotate(0)}45%{transform:translateY(8px) rotate(8deg)}}
@keyframes visitDrinkBody{0%,100%{transform:translateY(0)}45%{transform:translateY(3px)}}
@keyframes visitFurnitureToy{0%,100%{transform:translateY(0) rotate(-2deg)}35%{transform:translateY(-6px) rotate(4deg)}70%{transform:translateX(4px) rotate(-3deg)}}
@keyframes visitFurnitureNap{0%{transform:translateY(0)}18%,82%{transform:translateY(8px)}100%{transform:translateY(0)}}
@keyframes visitWaterDrop{0%{opacity:0;transform:translateY(-5px) rotate(35deg) scale(.7)}35%{opacity:1}100%{opacity:0;transform:translateY(20px) rotate(35deg) scale(1)}}
@keyframes visitToyBounce{0%,100%{transform:translate(0,0) rotate(0)}45%{transform:translate(18px,-12px) rotate(120deg)}70%{transform:translate(31px,2px) rotate(210deg)}}
@keyframes visitSpark{0%,100%{opacity:.2;transform:scale(.7)}50%{opacity:1;transform:scale(1.35)}}
@keyframes visitNapZ{0%{opacity:0;transform:translate(0,5px) scale(.7)}40%{opacity:1}100%{opacity:0;transform:translate(12px,-22px) scale(1.2)}}
@media(max-width:390px){.partner-furniture-grid{grid-template-columns:1fr}.partner-furniture-grid button{min-height:48px}.social-team-metrics{grid-template-columns:repeat(2,1fr)!important}}


/* v8.36 — cooperazione vera tra due giocatori */
.partner-main-visit-actions{
  max-height:54%;
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-width:none;
}
.partner-main-visit-actions::-webkit-scrollbar{display:none}
.partner-coop-zone{
  margin-top:7px;
  padding:8px;
  border-radius:15px;
  background:linear-gradient(180deg,#f3efe8,#ebe5db);
  border:1px solid rgba(100,79,58,.08);
}
.partner-coop-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(130px,44%);
  align-items:end;
  gap:8px;
  margin-bottom:6px;
}
.partner-coop-head>div span{
  display:block;
  font-size:calc(7.7px + var(--tp-text-extra,0px));
  font-weight:950;
  letter-spacing:.07em;
  color:#8b745f;
}
.partner-coop-head>div strong{
  display:block;
  margin-top:2px;
  font-size:calc(10.5px + var(--tp-text-extra,0px));
  color:#4f463f;
}
.partner-coop-head>small{
  font-size:calc(7.5px + var(--tp-text-extra,0px));
  line-height:1.25;
  font-weight:750;
  color:#7f746a;
  text-align:right;
}
.partner-coop-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:5px;
}
.partner-main-visit-actions .partner-coop-grid button{
  min-height:53px;
  border:1px solid rgba(91,70,52,.08);
  border-radius:12px;
  background:rgba(255,255,255,.82);
  padding:6px;
  display:grid;
  grid-template-columns:24px minmax(0,1fr);
  gap:5px;
  align-items:center;
  text-align:left;
  color:inherit;
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease;
}
.partner-coop-grid button>i{
  width:24px;
  height:24px;
  border-radius:9px;
  display:grid;
  place-items:center;
  background:#f7f2eb;
  font-size:calc(14px + var(--tp-text-extra,0px));
  font-style:normal;
}
.partner-coop-grid button span{min-width:0}
.partner-coop-grid button b{
  display:block;
  font-size:calc(7.5px + var(--tp-text-extra,0px));
  line-height:1;
  letter-spacing:.06em;
  color:#9b7b60;
}
.partner-main-visit-actions .partner-coop-grid button strong{
  display:block;
  margin-top:2px;
  font-size:calc(9px + var(--tp-text-extra,0px));
  line-height:1.05;
}
.partner-coop-grid button small{
  display:block;
  margin-top:2px;
  font-size:calc(7.5px + var(--tp-text-extra,0px));
  line-height:1.15;
  color:#82776e;
}
.partner-coop-grid button.active{
  border-color:rgba(113,139,118,.34);
  background:#edf3eb;
  box-shadow:inset 0 0 0 1px rgba(113,139,118,.08),0 4px 11px rgba(68,89,72,.07);
}
.partner-coop-grid button.active>i{
  background:#dfeade;
  animation:coopButtonPulse 1.4s ease-in-out infinite;
}
.partner-coop-grid button:disabled{opacity:.5}
@keyframes coopButtonPulse{0%,100%{transform:scale(.94)}50%{transform:scale(1.06)}}

.social-team-metrics{grid-template-columns:repeat(3,1fr)}
.social-team-metrics span.coop{background:#f3ede3;color:#88715d}
.social-team-metrics span.coop b{color:#6c5847}

/* Pallina che passa realmente da un cucciolo all'altro */
.partner-activity-fx.coop-ball{
  position:absolute;
  left:19%;
  right:19%;
  top:49%;
  bottom:auto;
  height:62px;
  z-index:24;
  overflow:visible;
}
.partner-activity-fx.coop-ball i{
  position:absolute;
  left:4%;
  top:5px;
  width:19px;
  height:19px;
  border-radius:50%;
  background:
    linear-gradient(90deg,transparent 44%,rgba(255,247,207,.8) 45% 55%,transparent 56%),
    linear-gradient(0deg,transparent 44%,rgba(255,247,207,.8) 45% 55%,transparent 56%),
    radial-gradient(circle at 32% 27%,#f6db71,#d9a145 73%);
  box-shadow:0 5px 8px rgba(86,56,29,.20),inset 0 0 0 2px rgba(255,255,255,.22);
  animation:coopBallOwn 1.05s cubic-bezier(.35,.04,.28,1) 2 alternate;
}
.partner-activity-fx.coop-ball.from-guest i{animation-name:coopBallGuest}
.partner-activity-fx.coop-ball b{
  position:absolute;
  left:8%;
  top:46px;
  width:22px;
  height:6px;
  border-radius:50%;
  background:rgba(64,47,33,.12);
  filter:blur(2px);
  animation:coopBallShadow 1.05s ease-in-out 2 alternate;
}
@keyframes coopBallOwn{
  0%{left:3%;top:27px;transform:rotate(0deg) scale(.88)}
  48%{top:-7px;transform:rotate(180deg) scale(1.07)}
  100%{left:91%;top:27px;transform:rotate(360deg) scale(.88)}
}
@keyframes coopBallGuest{
  0%{left:91%;top:27px;transform:rotate(360deg) scale(.88)}
  48%{top:-7px;transform:rotate(180deg) scale(1.07)}
  100%{left:3%;top:27px;transform:rotate(0deg) scale(.88)}
}
@keyframes coopBallShadow{
  0%{left:5%;opacity:.22;transform:scale(.8)}
  50%{opacity:.06;transform:scale(.5)}
  100%{left:90%;opacity:.22;transform:scale(.8)}
}
.pet-zone.visit-coop-ball .pet,.partner-room-visitor.visit-coop-ball .pet{
  animation:coopPetCatch .52s ease-in-out 4!important;
}
@keyframes coopPetCatch{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-5px) rotate(2deg)}}

/* Merenda condivisa */
.partner-activity-fx.coop-snack{
  position:absolute;
  left:31%;
  right:31%;
  top:54%;
  height:55px;
  z-index:23;
  overflow:visible;
}
.partner-activity-fx.coop-snack>*{
  width:13px;
  height:13px;
  border-radius:50%;
  background:radial-gradient(circle at 34% 30%,#fff4c7 0 16%,#d6a05a 18% 68%,#8e6037 70%);
  box-shadow:inset -2px -2px rgba(80,48,25,.13);
  animation:coopSnackPop 1.45s ease-in-out infinite;
}
.partner-activity-fx.coop-snack.waiting>*{animation:coopSnackWait 1.55s ease-in-out infinite}
.partner-activity-fx.coop-snack>*:nth-child(1){left:12%;top:24px}
.partner-activity-fx.coop-snack>*:nth-child(2){left:38%;top:8px;animation-delay:.15s}
.partner-activity-fx.coop-snack>*:nth-child(3){right:31%;top:16px;animation-delay:.3s}
.partner-activity-fx.coop-snack>*:nth-child(4){right:5%;top:28px;animation-delay:.45s}
@keyframes coopSnackPop{0%,100%{transform:translateY(7px) scale(.78);opacity:.35}50%{transform:translateY(-8px) scale(1.08);opacity:1}}
@keyframes coopSnackWait{0%,100%{transform:rotate(-7deg) scale(.92);opacity:.65}50%{transform:rotate(7deg) scale(1.05);opacity:1}}
.pet-zone.visit-coop-snack .pet,.partner-room-visitor.visit-coop-snack .pet{animation:coopMunch .58s ease-in-out 5!important}
@keyframes coopMunch{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}

/* Nanna vicini */
.partner-activity-fx.coop-sleep{
  position:absolute;
  left:44%;
  top:34%;
  width:95px;
  height:80px;
  z-index:24;
  overflow:visible;
}
.partner-activity-fx.coop-sleep>*{
  position:absolute;
  width:auto;
  height:auto;
  background:none;
  color:#81738f;
  font-style:normal;
  font-weight:950;
  opacity:0;
  animation:coopSleepZ 2s ease-in-out infinite;
}
.partner-activity-fx.coop-sleep i::before{content:"z"}
.partner-activity-fx.coop-sleep b::before{content:"Z"}
.partner-activity-fx.coop-sleep em::before{content:"z"}
.partner-activity-fx.coop-sleep i{left:7px;bottom:4px;font-size:calc(12px + var(--tp-text-extra,0px))}
.partner-activity-fx.coop-sleep b{left:35px;bottom:24px;font-size:calc(17px + var(--tp-text-extra,0px));animation-delay:.35s}
.partner-activity-fx.coop-sleep em{right:8px;top:3px;font-size:23px;animation-delay:.7s}
.partner-activity-fx.coop-sleep.waiting b,.partner-activity-fx.coop-sleep.waiting em{display:none}
@keyframes coopSleepZ{0%{opacity:0;transform:translateY(8px) scale(.8)}30%{opacity:.75}100%{opacity:0;transform:translateY(-24px) scale(1.12)}}
.pet-zone.visit-coop-sleep .pet,.partner-room-visitor.visit-coop-sleep .pet{animation:coopSleepBreath 2.3s ease-in-out infinite!important}
.pet-zone.visit-coop-sleep .face-eye,.partner-room-visitor.visit-coop-sleep .face-eye{height:3px!important;top:42px!important;border-radius:999px!important}
.pet-zone.visit-coop-sleep .tail,.partner-room-visitor.visit-coop-sleep .tail{animation:none!important}
@keyframes coopSleepBreath{0%,100%{transform:translateY(2px)}50%{transform:translateY(4px)}}

@media(max-width:520px){
  .partner-main-visit-actions{max-height:50%}
  .partner-coop-head{grid-template-columns:1fr}
  .partner-coop-head>small{text-align:left}
  .partner-coop-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .partner-main-visit-actions .partner-coop-grid button{
    min-height:47px;
    grid-template-columns:19px minmax(0,1fr);
    padding:5px 4px;
  }
  .partner-coop-grid button>i{width:19px;height:19px;font-size:calc(11.5px + var(--tp-text-extra,0px))}
  .partner-main-visit-actions .partner-coop-grid button strong{font-size:calc(8px + var(--tp-text-extra,0px))}
  .partner-coop-grid button small{font-size:calc(7px + var(--tp-text-extra,0px))}
}
@media(max-width:390px){
  .partner-main-visit-actions{max-height:48%}
  .partner-coop-grid{grid-template-columns:1fr}
  .partner-main-visit-actions .partner-coop-grid button{min-height:42px}
  .social-team-metrics{grid-template-columns:repeat(2,1fr)}
}


/* v8.37 — ripristino profilo animale, personalità e allenamenti */
#growthSheet{max-height:min(88dvh,820px);overflow-y:auto;overscroll-behavior:contain}
.pet-profile-section{margin-top:14px;padding:13px;border-radius:20px;background:var(--surface-2);border:1px solid rgba(80,60,40,.05)}
.pet-profile-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:10px}
.pet-profile-section-head>div strong{display:block;margin-top:3px;font-size:calc(14px + var(--tp-text-extra,0px))}
.pet-profile-section-head>small{max-width:48%;text-align:right;color:var(--muted);font-size:calc(9.5px + var(--tp-text-extra,0px));line-height:1.3;font-weight:700}
.pet-profile-section .personality-list{gap:8px}
.pet-profile-section .personality-row{background:#fffdf9;border:1px solid rgba(80,60,40,.04)}
.training-command-list{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.training-command{border:1px solid rgba(80,60,40,.07);background:#fffdf9;border-radius:16px;padding:10px;display:grid;grid-template-columns:35px minmax(0,1fr) auto;align-items:center;gap:9px;text-align:left;min-width:0}
.training-command-icon{width:35px;height:35px;border-radius:13px;background:#f4eee6;display:grid;place-items:center;font-size:calc(19px + var(--tp-text-extra,0px))}
.training-command-copy{min-width:0}
.training-command-copy strong{display:block;font-size:calc(12px + var(--tp-text-extra,0px))}
.training-command-copy small{display:block;margin-top:3px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));line-height:1.25;font-weight:700}
.training-command-copy i{display:block;height:5px;margin-top:7px;border-radius:999px;background:rgba(70,55,45,.08);overflow:hidden}
.training-command-copy i b{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#91a98f,#c0a46f)}
.training-command>em{font-style:normal;font-size:calc(10.5px + var(--tp-text-extra,0px));font-weight:900;color:#6c6259}
.training-command.mastered{background:#edf4ea;border-color:rgba(91,126,88,.12)}
.training-command.mastered .training-command-icon{background:#dcebd8}
.training-command.locked{opacity:.48;filter:saturate(.55)}
.profile-habits{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.profile-habits>div{min-width:0;padding:9px 7px;border-radius:14px;background:#fffdf9;text-align:center}
.profile-habits span{display:block;font-size:calc(19px + var(--tp-text-extra,0px))}.profile-habits strong{display:block;margin-top:4px;font-size:calc(10.5px + var(--tp-text-extra,0px));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-habits small{display:block;margin-top:2px;color:var(--muted);font-size:calc(8px + var(--tp-text-extra,0px));font-weight:700}
.profile-life-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:8px}
.profile-life-stats span{padding:7px 4px;border-radius:12px;background:rgba(255,255,255,.7);text-align:center;font-size:calc(8px + var(--tp-text-extra,0px));color:var(--muted);font-weight:800}.profile-life-stats b{display:block;color:var(--text);font-size:calc(12px + var(--tp-text-extra,0px));margin-bottom:2px}
#growthSheet .profile-event{margin-bottom:6px}
@media(max-width:430px){.training-command-list{grid-template-columns:1fr}.pet-profile-section-head{align-items:flex-start}.pet-profile-section-head>small{max-width:45%}.profile-life-stats{grid-template-columns:repeat(2,1fr)}}


/* v8.38 — Centro TinyPal / fase sicurezza UI */
.core-feature-hub{padding:16px 16px 15px;margin:0;overflow:hidden;position:relative}
.core-feature-hub::before{content:"";position:absolute;right:-48px;top:-62px;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle,rgba(218,202,181,.28),rgba(218,202,181,0) 70%);pointer-events:none}
.core-feature-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:12px;position:relative;z-index:1}
.core-feature-head h2{font-size:calc(18px + var(--tp-text-extra,0px));margin-top:3px}.core-feature-head>small{max-width:180px;color:var(--muted);font-size:calc(10.5px + var(--tp-text-extra,0px));font-weight:750;line-height:1.35;text-align:right}
.core-feature-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;position:relative;z-index:1}
.core-feature-button{min-width:0;border:1px solid rgba(74,59,46,.07);border-radius:17px;background:#f8f4ee;padding:10px 7px 9px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;text-align:center;gap:5px;position:relative;min-height:91px;transition:transform .14s ease,background .14s ease}
.core-feature-button:active{transform:scale(.965)}
.core-feature-button>span:not(.core-feature-icon){display:block;min-width:0;width:100%}.core-feature-icon{width:34px;height:34px;border-radius:12px;background:rgba(255,255,255,.78);display:grid;place-items:center;font-size:calc(19px + var(--tp-text-extra,0px));box-shadow:0 3px 10px rgba(74,54,36,.05)}
.core-feature-button strong{display:block;font-size:calc(11.5px + var(--tp-text-extra,0px));line-height:1.12;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.core-feature-button small{display:block;margin-top:3px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));line-height:1.18;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.core-feature-button>b{display:none}.core-feature-button>i{position:absolute;right:8px;top:8px;width:7px;height:7px;border-radius:50%;background:#bbb2aa;box-shadow:0 0 0 3px rgba(255,255,255,.75)}.core-feature-button>i.online{background:#69a778}.core-feature-button>i.attention{background:#d49a42;box-shadow:0 0 0 3px rgba(255,255,255,.8),0 0 0 6px rgba(212,154,66,.14)}
.core-feature-button.profile{background:#faf4ef}.core-feature-button.progress{background:#f7f3fa}.core-feature-button.city{background:#f0f6f2}.core-feature-button.inventory{background:#f8f5ee}.core-feature-button.multiplayer{background:#eef4f8}
.settings-action-card.settings-action-core{background:linear-gradient(180deg,#fffdf9,#f4f0e8);border-color:rgba(94,73,54,.11)}
.settings-action-card.settings-action-core .icon{background:#fff}
@media(max-width:430px){
  .core-feature-hub{padding:14px}
  .core-feature-head{align-items:flex-start}.core-feature-head>small{display:none}
  .core-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .core-feature-button{min-height:68px;padding:9px 10px;display:grid;grid-template-columns:36px minmax(0,1fr) 12px;align-items:center;text-align:left;gap:8px}
  .core-feature-button.multiplayer{grid-column:1 / -1}
  .core-feature-button strong{font-size:calc(11.5px + var(--tp-text-extra,0px))}.core-feature-button small{font-size:calc(9.5px + var(--tp-text-extra,0px))}
  .core-feature-button>b{display:block;font-size:calc(18px + var(--tp-text-extra,0px));color:#a79d94;font-weight:500}
  .core-feature-button>i{right:27px;top:10px}
}
@media(min-width:700px){.core-feature-hub{padding:17px}.core-feature-button{min-height:96px}.core-feature-button strong{font-size:calc(12px + var(--tp-text-extra,0px))}.core-feature-button small{font-size:calc(9.5px + var(--tp-text-extra,0px))}}


/* v8.39 — bisogni più vivi, paure e piccole monellerie */
.pet.afraid{animation:fearTremble .32s ease-in-out infinite alternate!important;filter:drop-shadow(0 12px 10px rgba(80,50,30,.16)) saturate(.88)}
.pet.afraid .tail{animation:none!important;transform:rotate(-58deg) scale(.82)}
.pet.afraid .face-eye{height:14px;transform:scaleX(1.08)}
@keyframes fearTremble{from{transform:translateX(-1.5px) rotate(-.5deg)}to{transform:translateX(1.5px) rotate(.5deg)}}
.fear-list{display:grid;gap:8px}.fear-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:9px;align-items:center;padding:10px;border-radius:16px;background:#fffdf9;border:1px solid rgba(80,60,40,.05)}.fear-row.active{background:#fff4e8;border-color:rgba(181,111,73,.18);box-shadow:inset 0 0 0 1px rgba(181,111,73,.05)}.fear-row.overcome{background:#eef5ed}.fear-icon{width:38px;height:38px;border-radius:13px;background:var(--surface-2);display:grid;place-items:center;font-size:21px}.fear-copy{min-width:0}.fear-copy strong{display:block;font-size:calc(13px + var(--tp-text-extra,0px))}.fear-copy small{display:block;margin-top:3px;color:var(--muted);font-size:calc(9.5px + var(--tp-text-extra,0px));line-height:1.35;font-weight:650}.fear-copy i{display:block;height:6px;margin-top:7px;border-radius:999px;background:rgba(70,55,45,.08);overflow:hidden}.fear-copy i b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#d7aa84,#8fac91)}.fear-side{text-align:right;min-width:62px}.fear-side em{display:block;font-style:normal;color:var(--muted);font-size:calc(9.5px + var(--tp-text-extra,0px));font-weight:850}.fear-side button{margin-top:6px;border:0;border-radius:999px;background:#292522;color:#fff;padding:6px 8px;font-size:calc(9.5px + var(--tp-text-extra,0px));font-weight:850}.fear-row.active .fear-side button{background:#9b664c}.fear-empty{padding:12px;border-radius:15px;background:#fffdf9;color:var(--muted);font-size:calc(11.5px + var(--tp-text-extra,0px));font-weight:700;text-align:center}
.room-mischief{position:absolute;inset:0;z-index:4;pointer-events:none}.room-mischief i{position:absolute;width:24px;height:14px;border-radius:50%;background:#c79b74;box-shadow:0 3px 5px rgba(64,41,25,.14);transform:rotate(-18deg)}.room-mischief i:nth-child(1){left:25%;bottom:12%}.room-mischief i:nth-child(2){left:47%;bottom:8%;transform:rotate(22deg);width:18px}.room-mischief i:nth-child(3){right:17%;bottom:16%;transform:rotate(-5deg);width:28px}.room-mischief b{position:absolute;right:13px;bottom:12px;padding:5px 7px;border-radius:999px;background:rgba(255,253,249,.80);backdrop-filter:blur(8px);font-size:calc(9.5px + var(--tp-text-extra,0px));color:#7b6656;box-shadow:0 4px 12px rgba(70,45,25,.08)}
.room-mischief.mischief-water i{background:rgba(94,173,214,.45);height:9px;filter:blur(.3px)}.room-mischief.mischief-pawprints i{width:13px;height:10px;background:rgba(117,88,65,.27);box-shadow:8px -3px 0 -2px rgba(117,88,65,.20)}.room-mischief.mischief-toys i:nth-child(1){background:#e0b14f;border-radius:50%;width:22px;height:22px}.room-mischief.mischief-toys i:nth-child(2){background:#b98757;width:26px;height:18px}.room-mischief.mischief-cushion i{background:#d6aa98;width:34px;height:18px}.room-mischief.mischief-shelf i{background:#9a7356;border-radius:4px;width:28px;height:9px}.room-mischief.mischief-sock i{background:#c3b7aa;width:32px;height:12px;border-radius:12px 5px 12px 5px}
.profile-habits{grid-template-columns:repeat(4,1fr)!important}
@media(max-width:430px){.profile-habits{grid-template-columns:repeat(2,1fr)!important}.fear-row{grid-template-columns:34px minmax(0,1fr) auto}.fear-icon{width:34px;height:34px}.fear-side{min-width:58px}}


/* v8.40 — Home compatta a categorie */
.home-layout{display:block!important;max-width:980px;margin:0 auto;padding-bottom:118px}
.home-layout>.room{margin-top:10px}
.home-topbar{margin-bottom:8px}
.home-topbar-subtitle{margin-bottom:0}
.home-category-hub{margin:14px 0 0;padding:0 2px 10px}
.home-category-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin:0 2px 12px}
.home-category-head h2{margin:3px 0 0;font-size:1.2rem}
.home-category-head>small{max-width:310px;text-align:right;color:var(--muted,#746f68);font-size:.78rem;line-height:1.35}
.home-category-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.home-category-card{position:relative;border:0;border-radius:22px;padding:15px 14px;display:grid;grid-template-columns:44px 1fr 18px;align-items:center;gap:10px;text-align:left;background:var(--card,#fff);box-shadow:0 8px 25px rgba(65,49,36,.08);min-height:82px;color:inherit}
.home-category-card:active{transform:scale(.985)}
.home-category-icon{width:44px;height:44px;border-radius:16px;display:grid;place-items:center;font-size:1.38rem;background:rgba(255,255,255,.72)}
.home-category-card>span:nth-child(2){min-width:0;display:flex;flex-direction:column;gap:3px}
.home-category-card strong{font-size:.98rem}
.home-category-card small{font-size:.73rem;color:var(--muted,#746f68);line-height:1.22;white-space:normal}
.home-category-card>b{font-size:1.4rem;font-weight:400;opacity:.42}
.home-category-card.care{background:linear-gradient(145deg,#fff4f2,#fff)}
.home-category-card.profile{background:linear-gradient(145deg,#fff7e9,#fff)}
.home-category-card.house{background:linear-gradient(145deg,#eef7f2,#fff)}
.home-category-card.play{background:linear-gradient(145deg,#eef5ff,#fff)}
.home-category-card.progress{background:linear-gradient(145deg,#f6f0ff,#fff)}
.home-category-card.friends{background:linear-gradient(145deg,#eef8ff,#fff)}
.home-category-card>i{position:absolute;top:12px;right:13px;width:8px;height:8px;border-radius:50%;background:#c9c5bf;box-shadow:0 0 0 3px rgba(255,255,255,.8)}
.home-category-card>i.online{background:#38b66a}.home-category-card>i.attention{background:#d49a42;box-shadow:0 0 0 3px rgba(255,255,255,.85),0 0 0 6px rgba(212,154,66,.14)}
.home-legacy-hidden{display:none!important}
.home-category-sheet{max-height:min(88dvh,820px);overflow:auto;padding-bottom:max(28px,env(safe-area-inset-bottom))}
.home-category-sheet-head{position:sticky;top:0;z-index:4;background:inherit;padding-bottom:10px}
.home-category-sheet-body{display:grid;gap:12px}
.home-category-sheet-body>.card,.home-category-sheet-body>.player-home-card,.home-category-sheet-body>button.card{margin:0;width:100%}
.home-sheet-shortcuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:3px}
.home-sheet-shortcut{border:1px solid rgba(97,83,68,.08);border-radius:18px;background:rgba(255,255,255,.72);display:grid;grid-template-columns:38px 1fr 14px;align-items:center;gap:9px;text-align:left;padding:12px;color:inherit;min-height:70px}
.home-sheet-shortcut>span{font-size:1.25rem;width:38px;height:38px;border-radius:14px;background:rgba(246,241,234,.9);display:grid;place-items:center}
.home-sheet-shortcut>div{min-width:0;display:flex;flex-direction:column;gap:2px}
.home-sheet-shortcut strong{font-size:.9rem}.home-sheet-shortcut small{font-size:.7rem;color:var(--muted,#746f68);line-height:1.25}.home-sheet-shortcut>b{opacity:.35;font-size:1.15rem}
.home-friends-hero{display:flex;align-items:center;gap:12px;border-radius:20px;padding:14px;background:linear-gradient(135deg,#eef8ff,#fff7ef);margin-bottom:2px}
.home-friends-hero>span{font-size:1.8rem}.home-friends-hero>div{display:flex;flex-direction:column;gap:3px}.home-friends-hero small{color:var(--muted,#746f68)}
#homeDaySheet .routine-card,#homeDaySheet .day-rhythm-card,#homeDaySheet .behavior-home-card,#homeDaySheet .calendar-home-card,#homeDaySheet .weather-home-card{margin:0}
#homeProfileCategorySheet .player-home-card{margin:0 0 2px}
@media(max-width:520px){
  .home-layout{padding-left:12px;padding-right:12px}
  .home-category-grid{gap:8px}
  .home-category-card{border-radius:19px;padding:13px 11px;grid-template-columns:39px 1fr 12px;gap:8px;min-height:76px}
  .home-category-icon{width:39px;height:39px;border-radius:14px;font-size:1.23rem}
  .home-category-card strong{font-size:.91rem}.home-category-card small{font-size:.67rem}
  .home-category-head>small{display:none}
  .home-sheet-shortcuts{grid-template-columns:1fr 1fr;gap:8px}
  .home-sheet-shortcut{grid-template-columns:35px 1fr 10px;padding:10px;min-height:66px}
}
@media(max-width:330px){.home-category-grid,.home-sheet-shortcuts{grid-template-columns:1fr}}


/* TinyPal v8.42 — essenziali per specie */
.species-essentials-card{display:grid;gap:12px;padding:16px;border-radius:24px;background:linear-gradient(145deg,rgba(255,255,255,.97),rgba(246,242,234,.92));border:1px solid rgba(85,68,48,.10)}
.species-essentials-card.hidden{display:none!important}.species-essentials-head{display:flex;align-items:center;gap:12px}.species-essentials-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:17px;background:#fff4df;font-size:27px;box-shadow:0 7px 18px rgba(69,51,31,.08)}
.species-essentials-head h2{margin:1px 0 2px;font-size:calc(20px + var(--tp-text-extra,0px))}.species-essentials-head p{margin:0;color:var(--muted,#796f63);font-size:calc(14px + var(--tp-text-extra,0px))}.species-essential-track{height:8px;border-radius:999px;background:rgba(92,75,57,.10);overflow:hidden}.species-essential-track i{display:block;height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,#d8a34d,#8eb879);transition:width .3s ease}.species-essential-note{margin:0;font-size:calc(14px + var(--tp-text-extra,0px));line-height:1.45;color:#71685f}
.species-essential-list{display:grid;gap:8px}.species-essential-row{display:grid;grid-template-columns:38px 1fr 28px;align-items:center;gap:9px;padding:10px;border-radius:16px;background:rgba(255,255,255,.78);border:1px solid rgba(92,75,57,.08)}.species-essential-row>span{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#f6efe5;font-size:21px}.species-essential-row strong{display:block;font-size:calc(14px + var(--tp-text-extra,0px))}.species-essential-row small{display:block;margin-top:2px;color:#8a8075;font-size:calc(12px + var(--tp-text-extra,0px))}.species-essential-row>b{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;font-size:calc(14px + var(--tp-text-extra,0px))}.species-essential-row.owned>b{background:#e5f4df;color:#427b39}.species-essential-row.missing{border-style:dashed;background:#fffaf3}.species-essential-row.missing>b{background:#fff0d8;color:#a96d23}.species-essential-shop.complete{filter:saturate(.65)}.species-essential-footnote{display:block;line-height:1.4;color:#8b8175;font-size:calc(11.5px + var(--tp-text-extra,0px))}
.physical-essential-badge{display:inline-flex;width:max-content;margin-top:4px;padding:3px 7px;border-radius:999px;background:#fff0d7;color:#9b6425;font-size:calc(10.5px + var(--tp-text-extra,0px));font-style:normal;font-weight:800;letter-spacing:.05em}
.room-species-essentials{position:absolute;left:13px;bottom:18px;z-index:5;display:flex;gap:5px;align-items:flex-end;padding:6px 7px;border-radius:14px;background:rgba(250,245,235,.72);border:1px solid rgba(92,75,57,.12);backdrop-filter:blur(3px);pointer-events:none}.room-species-essentials.hidden{display:none!important}.species-room-object{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:linear-gradient(145deg,#fffdf8,#eadfce);box-shadow:0 3px 8px rgba(64,46,27,.14);font-size:calc(17px + var(--tp-text-extra,0px));transform-origin:50% 100%;animation:speciesObjectPop .28s ease both}.species-room-object:nth-child(2){transform:translateY(-4px)}.species-room-object:nth-child(3){transform:translateY(-1px)}.species-room-object:nth-child(4){transform:translateY(-5px)}
@keyframes speciesObjectPop{from{opacity:0;transform:translateY(5px) scale(.8)}to{opacity:1}}
@media(max-width:560px){.room-species-essentials{left:8px;bottom:12px;gap:3px;padding:5px}.species-room-object{width:24px;height:24px;font-size:calc(15px + var(--tp-text-extra,0px))}.species-essential-row{grid-template-columns:34px 1fr 24px;padding:9px}.species-essential-row>span{width:34px;height:34px}}


/* TinyPal v8.43 — stanza estesa + arredi riponibili */
.room-scroll-shell{position:relative;width:100%;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;border-radius:30px;margin-top:10px;scroll-snap-type:x proximity}
.room-scroll-shell::-webkit-scrollbar{display:none}
.room-scroll-shell>.room{width:max(100%,720px);min-width:720px;margin:0;scroll-snap-align:center}
.room-scroll-shell.arranging{overflow-x:auto;touch-action:none;cursor:grab}
.home-layout>.room-scroll-shell{margin-top:10px}
@media(min-width:900px){.room-scroll-shell>.room{width:max(100%,760px);min-width:760px}}
@media(max-width:560px){.room-scroll-shell{border-radius:24px}.room-scroll-shell>.room{min-width:700px;width:700px}}
.store-object-tool:not(:disabled){background:rgba(229,245,225,.18)!important;color:#e8ffdF!important}
.inventory-room-note{display:flex;align-items:flex-start;gap:10px;margin:-2px 0 12px;padding:12px;border-radius:17px;background:#f4f0e8;border:1px solid rgba(80,60,40,.06)}
.inventory-room-note>span{font-size:23px}.inventory-room-note strong{display:block;font-size:calc(13px + var(--tp-text-extra,0px))}.inventory-room-note small{display:block;margin-top:3px;color:var(--muted);font-size:calc(11.5px + var(--tp-text-extra,0px));line-height:1.4;font-weight:650}
.inventory-section-title{display:grid;grid-template-columns:28px 1fr;column-gap:8px;align-items:center;padding:7px 4px 2px;margin-top:4px}.inventory-section-title>span{grid-row:1/3;font-size:calc(20px + var(--tp-text-extra,0px))}.inventory-section-title strong{font-size:calc(13px + var(--tp-text-extra,0px))}.inventory-section-title small{font-size:calc(10.5px + var(--tp-text-extra,0px));color:var(--muted);font-weight:650}
.inventory-row.stored-room-item{background:linear-gradient(145deg,#fffaf0,var(--surface-2))}.inventory-action.room-place{background:#e6f1e4;color:#4a6f49}.inventory-action.room-store{background:#f1ebe4;color:#765f4d}
.inventory-essential-tag{display:inline-flex;margin-top:5px;padding:3px 6px;border-radius:999px;background:#fff0d7;color:#9b6425;font-size:calc(9.5px + var(--tp-text-extra,0px));font-style:normal;font-weight:850;letter-spacing:.05em}
.species-essential-row{grid-template-columns:38px 1fr auto}.species-essential-row.stored{background:#f5f1eb;border-style:solid}.species-essential-row.stored>span{opacity:.8}.species-essential-side{display:flex;align-items:center;gap:6px}.species-essential-side>b{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;font-size:calc(13px + var(--tp-text-extra,0px))}.species-essential-row.stored .species-essential-side>b{background:#ece5db;color:#6f6255}.species-essential-room-action{border:0;border-radius:999px;padding:6px 8px;background:#eee8e0;color:#6e6256;font-size:calc(10.5px + var(--tp-text-extra,0px));font-weight:850}.species-essential-room-action.place{background:#e6f1e4;color:#4c714a}
@media(max-width:560px){.species-essential-row{grid-template-columns:34px minmax(0,1fr) auto}.species-essential-side{flex-direction:column;gap:3px}.species-essential-room-action{padding:5px 7px;font-size:calc(9.5px + var(--tp-text-extra,0px))}}


/* v8.44 — taglia del TinyPal stabile in tutta la stanza
   La posizione e l'oggetto usato non devono più cambiare la grandezza.
   La sola taglia valida resta quella di specie + età (--pet-home-scale). */
.pet-zone,
.room:not(.pet-in-bed) .pet-zone.activity-near-object,
.pet-zone.using-object,
.pet-zone.activity-sleep,
#room.partner-visit-active .pet-zone.visit-roaming{
  transform:translate(-50%,-50%) scale(var(--pet-home-scale)) !important;
  transform-origin:center center !important;
}

/* Muoversi nella stanza cambia solo coordinate, non prospettiva/taglia. */
.pet-zone.routine-moving,
#room.partner-visit-active .pet-zone.visit-roaming{
  transition:left .65s cubic-bezier(.2,.75,.25,1),top .65s cubic-bezier(.2,.75,.25,1) !important;
}


/* v8.45 — navigazione della stanza durante Arredo Pro */
.room-scroll-shell.arranging{overflow-x:auto!important;overflow-y:hidden;overscroll-behavior-x:contain;scroll-snap-type:none}
.room-scroll-shell.arranging.panning{cursor:grabbing}
.room-scroll-shell.arranging.panning>.room{cursor:grabbing}
.room.arranging{cursor:grab}
.room.arranging .room-object:not(.hidden){cursor:grab}
.room.arranging .room-object.selected-object:not(.hidden){cursor:grabbing}
.external-arrange-toolbar{grid-template-areas:"selected tools" "pan pan"}
.external-arrange-toolbar .arrange-selected{grid-area:selected}
.external-arrange-toolbar .arrange-tools{grid-area:tools}
.arrange-pan-controls{grid-area:pan;display:grid;grid-template-columns:42px minmax(0,1fr) 42px;gap:8px;align-items:center;padding-top:8px;margin-top:1px;border-top:1px solid rgba(255,255,255,.10)}
.arrange-pan-controls span{min-width:0;text-align:center;display:flex;flex-direction:column;gap:1px;color:#fff}
.arrange-pan-controls small{font-size:calc(9.5px + var(--tp-text-extra,0px));letter-spacing:.12em;font-weight:900;opacity:.55}
.arrange-pan-controls strong{font-size:calc(11.5px + var(--tp-text-extra,0px));font-weight:780;opacity:.9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.arrange-pan-controls button{height:34px;border:0;border-radius:11px;background:rgba(255,255,255,.13);color:#fff;font-size:calc(19px + var(--tp-text-extra,0px));font-weight:950;display:grid;place-items:center;touch-action:manipulation}
.arrange-pan-controls button:active{transform:scale(.94);background:rgba(255,255,255,.22)}
@media(max-width:560px){
  .external-arrange-toolbar{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"selected tools" "pan pan"}
  .arrange-pan-controls{grid-template-columns:48px minmax(0,1fr) 48px}
  .arrange-pan-controls button{height:38px;font-size:21px}
  .arrange-pan-controls strong{font-size:calc(10.5px + var(--tp-text-extra,0px))}
}


/* v8.46 — Gacha giornaliero + guardaroba TinyPal */
.gacha-shortcut{background:linear-gradient(135deg,#fff7e6,#f6efff)!important;border-color:#eadcf9!important}
.gacha-sheet{max-height:min(92dvh,900px);overflow:auto}.gacha-sheet-head p{margin:5px 0 0;color:var(--muted);font-size:calc(13px + var(--tp-text-extra,0px));font-weight:650;max-width:520px}
.gacha-machine-card{display:grid;grid-template-columns:150px 1fr;gap:18px;align-items:center;margin:8px 0 18px;padding:18px;border-radius:26px;background:linear-gradient(145deg,#fff8e8,#f7efff);border:1px solid rgba(116,82,154,.12)}
.gacha-machine{position:relative;width:136px;height:166px;margin:auto;border-radius:28px 28px 22px 22px;background:linear-gradient(180deg,#9a79c8,#6f51a0);box-shadow:inset 0 -8px rgba(62,36,92,.16),0 14px 30px rgba(88,55,121,.18)}
.gacha-glass{position:absolute;left:18px;right:18px;top:16px;height:92px;border-radius:50% 50% 42% 42%;background:radial-gradient(circle at 50% 28%,#fff 0 16%,#f7ddff 17% 42%,#d7c2ef 70%,#aa8bc8 100%);border:4px solid rgba(255,255,255,.72);overflow:hidden;display:grid;place-items:center;font-size:40px}.gacha-glass i,.gacha-glass b,.gacha-glass em{position:absolute;font-style:normal;width:25px;height:25px;border-radius:50%;background:#ffe171;box-shadow:38px 18px 0 #ff9ab0,-34px 23px 0 #8dd8e9}.gacha-glass i{left:8px;top:10px}.gacha-glass b{right:14px;bottom:13px}.gacha-glass em{left:40px;bottom:-6px}
.gacha-knob{position:absolute;left:18px;bottom:19px;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#fff7c7;color:#76529e;font-weight:950;border:4px solid rgba(255,255,255,.5);box-shadow:0 4px 9px rgba(0,0,0,.12)}.gacha-slot{position:absolute;right:18px;bottom:25px;width:44px;height:17px;border-radius:5px;background:#49325f;box-shadow:inset 0 4px rgba(0,0,0,.22)}
.gacha-machine.rolling{animation:gachaShake .16s linear infinite}.gacha-machine.rolling .gacha-glass span{animation:gachaSpin .36s linear infinite}.gacha-machine.rolling .gacha-knob{animation:gachaKnob .45s linear infinite}
@keyframes gachaShake{0%,100%{transform:rotate(-1deg)}50%{transform:rotate(1deg) translateY(-2px)}}@keyframes gachaSpin{to{transform:rotate(360deg) scale(1.06)}}@keyframes gachaKnob{to{transform:rotate(360deg)}}
.gacha-machine-copy{display:flex;flex-direction:column;align-items:flex-start}.gacha-machine-copy>strong{font-size:calc(20px + var(--tp-text-extra,0px));line-height:1.15;margin:3px 0 5px}.gacha-machine-copy>small{color:var(--muted);font-weight:700}.gacha-pull{margin-top:14px;width:100%;min-height:46px}.gacha-machine-copy p{margin:9px 0 0;font-size:calc(12px + var(--tp-text-extra,0px));font-weight:800;color:#765f90}
.gacha-result{display:flex;align-items:center;gap:13px;padding:14px 16px;border-radius:21px;background:#f5f5f2;border:1px solid var(--line);margin-bottom:18px}.gacha-result[data-rarity="rare"]{background:#eef6ff;border-color:#c9def6}.gacha-result[data-rarity="epic"]{background:#f6efff;border-color:#d9c2f1}.gacha-result-icon{width:52px;height:52px;border-radius:17px;display:grid;place-items:center;background:white;font-size:28px;box-shadow:0 5px 14px rgba(0,0,0,.07)}.gacha-result strong{display:block;font-size:calc(15px + var(--tp-text-extra,0px))}.gacha-result small{display:block;color:var(--muted);font-weight:800;margin-top:3px}
.gacha-section{margin-top:18px}.gacha-section-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:9px}.gacha-section-head strong{font-size:calc(13px + var(--tp-text-extra,0px))}.gacha-pool{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.gacha-pool-item{display:flex;align-items:center;gap:10px;padding:10px;border-radius:16px;background:var(--surface-2);border:1px solid transparent}.gacha-pool-item>span{width:38px;height:38px;border-radius:13px;display:grid;place-items:center;background:white;font-size:22px}.gacha-pool-item strong,.gacha-pool-item small{display:block}.gacha-pool-item strong{font-size:calc(13px + var(--tp-text-extra,0px))}.gacha-pool-item small{font-size:calc(10.5px + var(--tp-text-extra,0px));color:var(--muted);margin-top:2px;font-weight:800}.gacha-pool-item.rare{border-color:#c9def6}.gacha-pool-item.epic{border-color:#d9c2f1;background:#f8f3ff}
.gacha-history{display:grid;gap:7px}.gacha-history>div{display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:8px;padding:9px 10px;border-radius:14px;background:var(--surface-2)}.gacha-history>div>span{font-size:21px}.gacha-history strong{font-size:calc(13px + var(--tp-text-extra,0px))}.gacha-history small{font-size:calc(10.5px + var(--tp-text-extra,0px));color:var(--muted);font-weight:850}.gacha-empty,.gacha-footnote{font-size:calc(12px + var(--tp-text-extra,0px));color:var(--muted);font-weight:700}.gacha-footnote{margin:18px 2px 2px;line-height:1.4}
.inventory-row .inventory-info em.inventory-gacha-tag{font-style:normal;font-size:calc(9.5px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.08em;color:#73549a;background:#f1e8fa;padding:3px 6px;border-radius:999px;display:inline-block;margin-top:4px}
/* Gli abiti seguono la scala del pet e non cambiano mai con la posizione nella stanza. */
@media(max-width:520px){.gacha-machine-card{grid-template-columns:118px 1fr;gap:12px;padding:14px}.gacha-machine{transform:scale(.84);transform-origin:center}.gacha-machine.rolling{animation:gachaShakeMobile .16s linear infinite}@keyframes gachaShakeMobile{0%,100%{transform:scale(.84) rotate(-1deg)}50%{transform:scale(.84) rotate(1deg) translateY(-2px)}}.gacha-pool{grid-template-columns:1fr}.gacha-machine-copy>strong{font-size:calc(17px + var(--tp-text-extra,0px))}}

/* v8.47 — Gacha: oggetti illustrati al posto delle emoji */
.pet[data-outfit]:not([data-outfit=""])::after{content:none!important;display:none!important}
.pet-wearable-object{position:absolute!important;display:block!important;pointer-events:none!important;user-select:none!important;object-fit:contain;filter:drop-shadow(0 3px 3px rgba(55,35,25,.18));transform-origin:center;z-index:15}
.pet-wearable-object.wearable-bandana{left:48px!important;top:76px!important;width:55px!important;height:47px!important;transform:rotate(-3deg);z-index:8}
.pet-wearable-object.wearable-cap{left:34px!important;top:-7px!important;width:79px!important;height:63px!important;transform:rotate(-4deg);z-index:12}
.pet-wearable-object.wearable-bow{left:51px!important;top:78px!important;width:49px!important;height:42px!important;z-index:9}
.pet-wearable-object.wearable-scarf{left:41px!important;top:72px!important;width:69px!important;height:68px!important;transform:rotate(2deg);z-index:8}
.pet-wearable-object.wearable-raincoat{left:31px!important;top:79px!important;width:88px!important;height:84px!important;z-index:5}
.pet-wearable-object.wearable-glasses{left:40px!important;top:37px!important;width:70px!important;height:43px!important;transform:rotate(-1deg);z-index:13}
.pet-wearable-object.wearable-crown{left:43px!important;top:-15px!important;width:64px!important;height:54px!important;transform:rotate(-2deg);z-index:13}

/* Piccoli aggiustamenti per sagome diverse */
.pet.species-cat .pet-wearable-object.wearable-cap,.pet.species-fox .pet-wearable-object.wearable-cap{top:-4px!important}
.pet.species-rabbit .pet-wearable-object.wearable-cap{top:4px!important}
.pet.species-rabbit .pet-wearable-object.wearable-crown{top:-3px!important}
.pet.species-bear .pet-wearable-object.wearable-raincoat{left:28px!important;width:94px!important}

.gacha-glass>span.gacha-capsule-main{position:relative;width:43px;height:54px;border-radius:22px;display:block;background:linear-gradient(180deg,#fff 0 47%,#f1b547 48% 100%);border:3px solid rgba(76,52,92,.35);box-shadow:inset 0 2px 0 rgba(255,255,255,.9),0 5px 10px rgba(65,43,82,.18);font-size:0}
.gacha-glass>span.gacha-capsule-main::after{content:"";position:absolute;left:2px;right:2px;top:46%;height:4px;background:rgba(81,55,94,.18);border-radius:999px}
.gacha-glass>i,.gacha-glass>b,.gacha-glass>em{width:27px!important;height:32px!important;border-radius:14px!important;border:2px solid rgba(76,52,92,.25)!important;background:linear-gradient(180deg,#fff 0 47%,#e9829b 48% 100%)!important;box-shadow:none!important}
.gacha-glass>i{transform:rotate(-18deg)}
.gacha-glass>b{background:linear-gradient(180deg,#fff 0 47%,#71bad3 48% 100%)!important;transform:rotate(14deg)}
.gacha-glass>em{background:linear-gradient(180deg,#fff 0 47%,#8bc47f 48% 100%)!important;transform:rotate(26deg)}
.gacha-knob>span{position:relative;width:24px;height:7px;border-radius:999px;background:#75549d;box-shadow:0 2px 0 rgba(255,255,255,.45);display:block}
.gacha-knob>span::after{content:"";position:absolute;width:7px;height:24px;left:8px;top:-8px;border-radius:999px;background:#75549d}

.gacha-result-icon{overflow:hidden;padding:5px}
.gacha-result-art,.gacha-pool-art,.gacha-history-art,.inventory-gacha-art{display:block;width:100%;height:100%;object-fit:contain}
.gacha-pool-item>span.gacha-pool-object{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:#fff;padding:4px;overflow:hidden;flex:0 0 auto;box-shadow:inset 0 0 0 1px rgba(80,55,45,.06)}
.gacha-history>div>span.gacha-history-object{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:#fff;padding:3px;overflow:hidden}
.inventory-icon.inventory-icon-object{padding:4px;overflow:hidden;background:#fff;border:1px solid rgba(70,50,35,.08)}
.gacha-object-placeholder{display:block;width:65%;height:65%;border-radius:10px;background:var(--surface-2)}
.gacha-object-fallback{font-size:calc(20px + var(--tp-text-extra,0px))}

/* Le rarità sono rese come finitura della card, non come pallini emoji. */
.gacha-pool-item.common{box-shadow:inset 3px 0 0 #c7c4bd}
.gacha-pool-item.uncommon{box-shadow:inset 3px 0 0 #83b98a}
.gacha-pool-item.rare{box-shadow:inset 3px 0 0 #78a9dd}
.gacha-pool-item.epic{box-shadow:inset 3px 0 0 #a986d0}
.gacha-result[data-rarity="common"]{box-shadow:inset 4px 0 0 #c7c4bd}
.gacha-result[data-rarity="uncommon"]{box-shadow:inset 4px 0 0 #83b98a}
.gacha-result[data-rarity="rare"]{box-shadow:inset 4px 0 0 #78a9dd}
.gacha-result[data-rarity="epic"]{box-shadow:inset 4px 0 0 #a986d0}


/* v8.48 — TinyPal sempre appoggiato al pavimento */
#room{--pet-floor-line:58.5%}
#room .pet-zone{transform-origin:center center!important}
#room .pet-zone .shadow{transform-origin:center center}
/* Le animazioni del corpo possono muovere testa/corpo, ma non il punto di appoggio della zona. */
#room:not(.pet-in-bed) .pet-zone.routine-moving{will-change:left,top}


/* v8.49 — pappa davvero a contatto con le ciotole
   TinyPal resta appoggiato al pavimento, ma avvicina corpo e muso al bordo
   del recipiente. La posa segue anche le ciotole spostate in Arredo Pro. */
.pet-zone.activity-bowl.bowl-contact{z-index:8!important}
.room-bowl.bowl-active{z-index:10!important}

/* Piccolo piegamento: i piedi restano sul pavimento, si abbassa solo la parte alta. */
.pet-zone.activity-bowl.bowl-contact .pet .body{transform:translateY(3px) scaleY(.97)}
.pet-zone.activity-bowl.bowl-contact .pet .tail{transform-origin:left center}

/* Il capo va fisicamente verso il recipiente, non resta verticale sopra il corpo. */
.pet-zone.activity-bowl.bowl-contact.object-side-right .pet:not(.react-eat):not(.react-drink) .head{
  animation:bowlContactSniffRight .85s ease-in-out infinite alternate!important;
}
.pet-zone.activity-bowl.bowl-contact.object-side-left .pet:not(.react-eat):not(.react-drink) .head{
  animation:bowlContactSniffLeft .85s ease-in-out infinite alternate!important;
}
.pet-zone.activity-bowl.bowl-contact.object-side-right .ear-left{transform:translate(9px,10px) rotate(25deg)}
.pet-zone.activity-bowl.bowl-contact.object-side-right .ear-right{transform:translate(9px,10px) scaleX(-1) rotate(17deg)}
.pet-zone.activity-bowl.bowl-contact.object-side-left .ear-left{transform:translate(-9px,10px) rotate(16deg)}
.pet-zone.activity-bowl.bowl-contact.object-side-left .ear-right{transform:translate(-9px,10px) scaleX(-1) rotate(25deg)}

@keyframes bowlContactSniffRight{
  from{transform:translate(10px,15px) rotate(10deg)}
  to{transform:translate(14px,21px) rotate(14deg)}
}
@keyframes bowlContactSniffLeft{
  from{transform:translate(-10px,15px) rotate(-10deg)}
  to{transform:translate(-14px,21px) rotate(-14deg)}
}

/* Durante il vero pasto la masticazione mantiene il muso sul bordo della ciotola. */
.pet-zone.activity-bowl.bowl-contact.object-side-right .pet.react-eat .head{
  animation:bowlEatContactRight .42s ease-in-out infinite alternate!important;
}
.pet-zone.activity-bowl.bowl-contact.object-side-left .pet.react-eat .head{
  animation:bowlEatContactLeft .42s ease-in-out infinite alternate!important;
}
.pet-zone.activity-bowl.bowl-contact.object-side-right .pet.react-drink .head{
  animation:bowlDrinkContactRight .48s ease-in-out infinite alternate!important;
}
.pet-zone.activity-bowl.bowl-contact.object-side-left .pet.react-drink .head{
  animation:bowlDrinkContactLeft .48s ease-in-out infinite alternate!important;
}
@keyframes bowlEatContactRight{from{transform:translate(12px,19px) rotate(12deg)}to{transform:translate(16px,25px) rotate(16deg)}}
@keyframes bowlEatContactLeft{from{transform:translate(-12px,19px) rotate(-12deg)}to{transform:translate(-16px,25px) rotate(-16deg)}}
@keyframes bowlDrinkContactRight{from{transform:translate(13px,22px) rotate(13deg)}to{transform:translate(17px,28px) rotate(17deg)}}
@keyframes bowlDrinkContactLeft{from{transform:translate(-13px,22px) rotate(-13deg)}to{transform:translate(-17px,28px) rotate(-17deg)}}

/* La ciotola passa davanti alla parte bassa del muso: visivamente sembra che
   stia davvero mangiando dentro il recipiente invece che dietro/a distanza. */
.room-bowl.bowl-active .pet-bowl{box-shadow:inset 0 5px 0 rgba(255,255,255,.20),inset 0 -5px 0 rgba(70,40,25,.11),0 3px 0 rgba(94,54,34,.10)!important}


/* v8.50 — muso realmente sul bordo della ciotola */
/* Il set di ciotole passa davanti al pet solo nella zona bassa: il corpo può
   sovrapporsi leggermente e il muso sembra entrare davvero nel recipiente. */
.pet-zone.activity-bowl.bowl-contact{z-index:8!important}
.room-bowl.bowl-active{z-index:10!important}
.pet-zone.activity-bowl.bowl-contact .pet{transform-origin:center bottom!important}
.pet-zone.activity-bowl.bowl-contact[data-bowl-focus="food"] .pet-bowl-food,
.pet-zone.activity-bowl.bowl-contact[data-bowl-focus="water"] .pet-bowl-water{filter:none}
/* Piegamento più deciso ma senza muovere le zampe. */
.pet-zone.activity-bowl.bowl-contact.object-side-right .pet.react-eat .head{animation:bowlEatTouchRight .40s ease-in-out infinite alternate!important}
.pet-zone.activity-bowl.bowl-contact.object-side-left .pet.react-eat .head{animation:bowlEatTouchLeft .40s ease-in-out infinite alternate!important}
.pet-zone.activity-bowl.bowl-contact.object-side-right .pet.react-drink .head{animation:bowlDrinkTouchRight .46s ease-in-out infinite alternate!important}
.pet-zone.activity-bowl.bowl-contact.object-side-left .pet.react-drink .head{animation:bowlDrinkTouchLeft .46s ease-in-out infinite alternate!important}
@keyframes bowlEatTouchRight{from{transform:translate(15px,24px) rotate(14deg)}to{transform:translate(19px,30px) rotate(18deg)}}
@keyframes bowlEatTouchLeft{from{transform:translate(-15px,24px) rotate(-14deg)}to{transform:translate(-19px,30px) rotate(-18deg)}}
@keyframes bowlDrinkTouchRight{from{transform:translate(16px,27px) rotate(15deg)}to{transform:translate(20px,33px) rotate(19deg)}}
@keyframes bowlDrinkTouchLeft{from{transform:translate(-16px,27px) rotate(-15deg)}to{transform:translate(-20px,33px) rotate(-19deg)}}


/* =========================================================
   TinyPal v8.51 — 4 STAGIONI REALI + FESTIVITÀ
   Decorazioni CSS, sincronizzate al calendario del dispositivo.
   ========================================================= */

.seasonal-decor-layer{
  position:absolute;inset:0;overflow:hidden;border-radius:inherit;
  pointer-events:none;z-index:3;
}
.room>.seasonal-decor-layer{z-index:2}
.city-location-scene>.seasonal-decor-layer{z-index:3}
.city-map-world>.seasonal-decor-layer{z-index:3}
.walk-scene>.seasonal-decor-layer{z-index:3}

.season-piece{
  position:absolute;display:block;width:8px;height:6px;opacity:.78;
  left:var(--sx);top:-12px;transform:rotate(var(--sr));
  animation:seasonFloat var(--sd) linear infinite;
  animation-delay:var(--delay);
}
.sp-1{--sx:8%;--sr:18deg;--sd:8.4s;--delay:-1s}
.sp-2{--sx:19%;--sr:-22deg;--sd:10.2s;--delay:-5s}
.sp-3{--sx:33%;--sr:38deg;--sd:9.1s;--delay:-3s}
.sp-4{--sx:47%;--sr:-11deg;--sd:11.4s;--delay:-7s}
.sp-5{--sx:61%;--sr:27deg;--sd:8.8s;--delay:-4s}
.sp-6{--sx:73%;--sr:-32deg;--sd:10.8s;--delay:-8s}
.sp-7{--sx:84%;--sr:14deg;--sd:9.7s;--delay:-2s}
.sp-8{--sx:94%;--sr:-18deg;--sd:12s;--delay:-6s}
@keyframes seasonFloat{
  0%{transform:translate3d(0,-14px,0) rotate(var(--sr));opacity:0}
  12%{opacity:.78}
  50%{transform:translate3d(15px,190px,0) rotate(calc(var(--sr) + 140deg))}
  100%{transform:translate3d(-8px,430px,0) rotate(calc(var(--sr) + 320deg));opacity:.15}
}

/* Primavera: petali delicati */
.season-spring .season-piece{
  width:8px;height:5px;border-radius:90% 20% 90% 20%;
  background:linear-gradient(135deg,#f5cad7,#f9e4cb);
  box-shadow:0 0 0 1px rgba(255,255,255,.28);
}
.city-location-scene.season-spring.place-park{
  background:linear-gradient(#d8e9df 0 39%,#99cd7f 39% 100%);
}
.city-location-scene.season-spring.place-lake{
  background:linear-gradient(#cce8f0 0 37%,#96c981 37% 64%,#a8d8e1 64% 100%);
}
.city-location-scene.season-spring.place-square{
  background:linear-gradient(#dbe9ec 0 37%,#d8d2c3 37% 100%);
}
.season-spring .location-tree b,.season-spring .lake-tree b,.season-spring .walk-tree b,.season-spring .park-tree b{
  background:#65a45a!important;
  box-shadow:-16px 15px 0 -7px #83ba6c,18px 13px 0 -8px #5a954f!important;
}
.city-map-world.season-spring{background:linear-gradient(145deg,#dfeee1,#c9dfc7)!important}
.walk-scene.season-spring{background:linear-gradient(#c8e5f2 0 43%,#a9d18e 43% 68%,#91bc78 68%)!important}
.walk-scene.season-spring .walk-park-scene{background:linear-gradient(#c8e5f2 0 39%,#9dcc82 39%)!important}

/* Estate: più luminosa, meno particelle */
.season-summer .season-piece{
  width:4px;height:4px;border-radius:50%;
  background:#f6d97b;opacity:.36;
  box-shadow:0 0 7px rgba(246,217,123,.34);
  animation-duration:13s;
}
.city-location-scene.season-summer.place-park{
  background:linear-gradient(#c6e1ee 0 39%,#8fc36f 39% 100%);
}
.city-location-scene.season-summer.place-lake{
  background:linear-gradient(#bfe0ef 0 37%,#87bd70 37% 64%,#91cad8 64% 100%);
}
.city-location-scene.season-summer.place-square{
  background:linear-gradient(#d3e4ea 0 37%,#d8cdb9 37% 100%);
}
.city-map-world.season-summer{background:linear-gradient(145deg,#dbe9c5,#c7ddb0)!important}
.walk-scene.season-summer{background:linear-gradient(#b9dff0 0 43%,#9fc77b 43% 68%,#88b568 68%)!important}
.walk-scene.season-summer .walk-park-scene{background:linear-gradient(#b9dff0 0 39%,#8fc672 39%)!important}

/* Autunno: foglie vere in CSS e vegetazione calda */
.season-autumn .season-piece{
  width:10px;height:6px;border-radius:85% 18% 85% 18%;
  background:linear-gradient(135deg,#d58a42,#9f5938);
  box-shadow:inset 2px 0 rgba(255,220,140,.18);
}
.city-location-scene.season-autumn.place-park{
  background:linear-gradient(#d6dfdc 0 39%,#a6ad70 39% 100%);
}
.city-location-scene.season-autumn.place-lake{
  background:linear-gradient(#cedde1 0 37%,#9cab72 37% 64%,#93bdc4 64% 100%);
}
.city-location-scene.season-autumn.place-square{
  background:linear-gradient(#d9e0df 0 37%,#cfc2aa 37% 100%);
}
.season-autumn .location-tree b,.season-autumn .lake-tree b,.season-autumn .walk-tree b,.season-autumn .park-tree b{
  background:#b66d3f!important;
  box-shadow:-17px 15px 0 -7px #ca8b47,19px 13px 0 -8px #96553a!important;
}
.season-autumn .location-bush,.season-autumn .park-bush{background:#8f8f52!important}
.city-map-world.season-autumn{background:linear-gradient(145deg,#e2d8bd,#c8bd94)!important}
.walk-scene.season-autumn{background:linear-gradient(#cbdcdf 0 43%,#aaa978 43% 68%,#918e62 68%)!important}
.walk-scene.season-autumn .walk-park-scene{background:linear-gradient(#cbdcdf 0 39%,#a7a06a 39%)!important}

/* Inverno: neve, terreno freddo, acqua ghiacciata */
.season-winter .season-piece{
  width:7px;height:7px;border-radius:50%;
  background:rgba(255,255,255,.92);
  box-shadow:0 0 0 1px rgba(170,205,222,.20),0 0 6px rgba(255,255,255,.35);
}
.city-location-scene.season-winter.place-park{
  background:linear-gradient(#d9e5ec 0 39%,#e8ece8 39% 100%);
}
.city-location-scene.season-winter.place-lake{
  background:linear-gradient(#d6e6ed 0 37%,#dfe6df 37% 64%,#c4dce2 64% 100%);
}
.city-location-scene.season-winter.place-square{
  background:linear-gradient(#dce6eb 0 37%,#e4e2dc 37% 100%);
}
.season-winter .location-tree b,.season-winter .lake-tree b,.season-winter .walk-tree b,.season-winter .park-tree b{
  background:#879786!important;
  box-shadow:-16px 15px 0 -7px #a5b1a2,18px 13px 0 -8px #748473!important;
}
.season-winter .location-bush,.season-winter .park-bush{background:#abb6aa!important}
.season-winter .lake-water{background:linear-gradient(#c6dfe5,#abcbd4)!important;box-shadow:inset 0 10px rgba(255,255,255,.34)!important}
.city-map-world.season-winter{background:linear-gradient(145deg,#e3ecee,#d2ddda)!important}
.city-map-world.season-winter .city-block{filter:saturate(.65) brightness(1.08)}
.walk-scene.season-winter{background:linear-gradient(#d6e5ec 0 43%,#dce3dc 43% 68%,#e7e9e5 68%)!important}
.walk-scene.season-winter .walk-park-scene{background:linear-gradient(#d6e5ec 0 39%,#e5e9e5 39%)!important}
.room.season-winter .room-window{background:linear-gradient(180deg,#c6deeb,#eef5f7)!important}
.room.season-autumn .room-window{background:linear-gradient(180deg,#b9d7e5,#ecd9bc)!important}
.room.season-spring .room-window{background:linear-gradient(180deg,#afe0f3,#e7f3de)!important}
.room.season-summer .room-window{background:linear-gradient(180deg,#8fd1ef,#eaf5d0)!important}
.room.night.season-winter .room-window,.room.night.season-autumn .room-window,
.room.night.season-spring .room-window,.room.night.season-summer .room-window{
  background:linear-gradient(180deg,#25324d,#354869)!important;
}

/* Interni del negozio e veterinario seguono le stagioni con tinte leggere */
.city-location-scene.place-shop.season-spring{background:linear-gradient(#edf0e5 0 32%,#e5e3cf 32% 73%,#b78e6f 73% 100%)}
.city-location-scene.place-shop.season-summer{background:linear-gradient(#f2ead9 0 32%,#eadcc5 32% 73%,#bd9069 73% 100%)}
.city-location-scene.place-shop.season-autumn{background:linear-gradient(#eadfcf 0 32%,#dec8ad 32% 73%,#a97958 73% 100%)}
.city-location-scene.place-shop.season-winter{background:linear-gradient(#e8edf0 0 32%,#dfe6e7 32% 73%,#9e8878 73% 100%)}
.city-location-scene.place-vet.season-spring{background:linear-gradient(#e9f3ec 0 34%,#ebe9df 34% 75%,#b8afa4 75% 100%)}
.city-location-scene.place-vet.season-summer{background:linear-gradient(#edf4f0 0 34%,#eee9dd 34% 75%,#bcb0a0 75% 100%)}
.city-location-scene.place-vet.season-autumn{background:linear-gradient(#ede8df 0 34%,#e9dfd2 34% 75%,#b4a18f 75% 100%)}
.city-location-scene.place-vet.season-winter{background:linear-gradient(#e4edf2 0 34%,#e6e9e7 34% 75%,#aaaeb0 75% 100%)}

/* Badge discreto: mostra che il mondo usa il calendario reale */
.seasonal-world-badge{
  position:absolute;left:10px;top:10px;display:grid;gap:1px;
  min-width:70px;padding:6px 9px;border-radius:11px;
  background:rgba(255,255,255,.72);border:1px solid rgba(60,70,65,.09);
  backdrop-filter:blur(10px);box-shadow:0 5px 14px rgba(42,42,35,.07);
  color:#514b43;z-index:30;
}
.room .seasonal-world-badge{left:50%;transform:translateX(-50%);top:7px}
.walk-scene .seasonal-world-badge{left:50%;transform:translateX(-50%);top:7px}
.seasonal-world-badge>b{font-size:calc(9px + var(--tp-text-extra,0px));line-height:1;letter-spacing:.12em;font-weight:950}
.seasonal-world-badge>small{font-size:calc(8px + var(--tp-text-extra,0px));line-height:1.2;font-weight:800;opacity:.65}
.seasonal-world-badge.holiday-active{background:rgba(255,250,242,.86)}

/* Gli oggetti festivi esistono sempre nel DOM ma sono invisibili fuori evento. */
.holiday-line,.holiday-object{display:none;position:absolute}
.holiday-line{left:12%;right:12%;top:24px;height:3px;z-index:12}
.holiday-object{bottom:35px;width:34px;height:34px;z-index:12}
.holiday-object.ho-1{left:5%}.holiday-object.ho-2{right:5%}

/* NATALE — lucine, ghirlanda e pacchetto, tutto in CSS */
.holiday-christmas .holiday-line{
  display:block;background:#557452;border-radius:999px;
  box-shadow:0 2px 4px rgba(50,65,45,.12);
}
.holiday-christmas .holiday-line::after{
  content:"";position:absolute;left:5%;top:-2px;width:6px;height:6px;border-radius:50%;background:#d95a55;
  box-shadow:28px 2px 0 #e3b54d,56px -1px 0 #6f9bc7,84px 2px 0 #d95a55,112px -1px 0 #e3b54d,140px 2px 0 #6f9bc7,168px -1px 0 #d95a55,196px 2px 0 #e3b54d;
}
.holiday-christmas .ho-1{
  display:block;border:8px solid #52774f;border-radius:50%;
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.18);
}
.holiday-christmas .ho-1::after{
  content:"";position:absolute;left:8px;bottom:-9px;width:9px;height:13px;background:#a94e48;
  clip-path:polygon(0 0,100% 0,78% 100%,50% 70%,22% 100%);
}
.holiday-christmas .ho-2{
  display:block;width:34px;height:28px;bottom:33px;border-radius:4px;background:#b9534e;
  box-shadow:inset 14px 0 #e7c56f;
}
.holiday-christmas .ho-2::before{
  content:"";position:absolute;left:-3px;right:-3px;top:-6px;height:7px;border-radius:3px;background:#9e4743;
}
.holiday-christmas .ho-2::after{
  content:"";position:absolute;left:12px;top:-10px;width:10px;height:10px;border:3px solid #e7c56f;border-radius:50%;
}

/* HALLOWEEN — festone scuro e zucche CSS */
.holiday-halloween .holiday-line{
  display:block;height:8px;background:repeating-linear-gradient(90deg,#4d3f56 0 16px,transparent 16px 25px);
  clip-path:polygon(0 0,100% 0,100% 30%,96% 100%,92% 30%,88% 100%,84% 30%,80% 100%,76% 30%,72% 100%,68% 30%,64% 100%,60% 30%,56% 100%,52% 30%,48% 100%,44% 30%,40% 100%,36% 30%,32% 100%,28% 30%,24% 100%,20% 30%,16% 100%,12% 30%,8% 100%,4% 30%,0 100%);
}
.holiday-halloween .holiday-object{
  display:block;border-radius:48% 52% 48% 52%;background:linear-gradient(90deg,#d8732d,#f29a3c 48%,#c96329);
  box-shadow:inset 8px 0 rgba(255,193,90,.14),inset -7px 0 rgba(121,57,29,.12);
}
.holiday-halloween .holiday-object::before{
  content:"";position:absolute;left:14px;top:-7px;width:7px;height:10px;border-radius:3px 3px 0 0;background:#5b7444;transform:rotate(9deg);
}
.holiday-halloween .holiday-object::after{
  content:"";position:absolute;left:8px;top:12px;width:5px;height:4px;background:#4c392f;
  box-shadow:13px 0 #4c392f,7px 9px 0 2px #4c392f;transform:rotate(-3deg);
}

/* CAPODANNO — luci e sfere metalliche */
.holiday-newyear .holiday-line{
  display:block;height:2px;background:#7c8091;box-shadow:0 0 8px rgba(255,223,129,.35);
}
.holiday-newyear .holiday-line::after{
  content:"";position:absolute;left:10%;top:-3px;width:7px;height:7px;border-radius:50%;background:#e6c66e;
  box-shadow:34px 0 #d8dce5,68px 1px #e6c66e,102px -1px #d8dce5,136px 1px #e6c66e,170px 0 #d8dce5;
}
.holiday-newyear .holiday-object{
  display:block;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#d8dce6 32%,#8c93a5);
  box-shadow:0 7px 13px rgba(40,45,60,.18);
}
.holiday-newyear .holiday-object::before{content:"";position:absolute;left:15px;top:-25px;width:2px;height:26px;background:#747985}

/* SAN VALENTINO — cuori geometrici */
.holiday-valentine .holiday-line{display:block;background:#c87987}
.holiday-valentine .holiday-object{
  display:block;width:24px;height:24px;bottom:40px;background:#d97f8f;transform:rotate(45deg);border-radius:3px;
}
.holiday-valentine .holiday-object::before,.holiday-valentine .holiday-object::after{
  content:"";position:absolute;width:24px;height:24px;border-radius:50%;background:#d97f8f;
}
.holiday-valentine .holiday-object::before{left:-12px}.holiday-valentine .holiday-object::after{top:-12px}

/* PASQUA — uova pastello */
.holiday-easter .holiday-object{
  display:block;width:25px;height:34px;border-radius:50% 50% 46% 46%;
  background:repeating-linear-gradient(0deg,#f0b9c7 0 6px,#f7e2a8 6px 11px,#a9d8cf 11px 17px);
  box-shadow:0 5px 8px rgba(75,65,55,.12);
}
.holiday-easter .holiday-line{display:block;background:linear-gradient(90deg,#a9d8cf,#f0b9c7,#f7e2a8,#a9d8cf);height:4px;border-radius:999px}

/* CARNEVALE — coriandoli e bandierine */
.holiday-carnival .holiday-line{
  display:block;height:12px;background:repeating-linear-gradient(90deg,#d46f78 0 14px,#e0b950 14px 28px,#6fa6b5 28px 42px,#7ba46b 42px 56px);
  clip-path:polygon(0 0,100% 0,100% 25%,94% 100%,88% 25%,82% 100%,76% 25%,70% 100%,64% 25%,58% 100%,52% 25%,46% 100%,40% 25%,34% 100%,28% 25%,22% 100%,16% 25%,10% 100%,4% 25%,0 100%);
}
.holiday-carnival .holiday-object{
  display:block;width:30px;height:16px;bottom:46px;border-radius:50%;background:linear-gradient(90deg,#d46f78 0 50%,#6fa6b5 50%);
  transform:rotate(-10deg);
}
.holiday-carnival .holiday-object::after{content:"";position:absolute;left:3px;top:5px;width:6px;height:5px;border-radius:50%;background:#2f3136;box-shadow:17px 0 #2f3136}

/* FERRAGOSTO — festone estivo e coccarde solari */
.holiday-ferragosto .holiday-line{
  display:block;height:8px;background:repeating-linear-gradient(90deg,#e5b955 0 18px,#fff1c9 18px 36px,#75a9bf 36px 54px);
  clip-path:polygon(0 0,100% 0,100% 40%,95% 100%,90% 40%,85% 100%,80% 40%,75% 100%,70% 40%,65% 100%,60% 40%,55% 100%,50% 40%,45% 100%,40% 40%,35% 100%,30% 40%,25% 100%,20% 40%,15% 100%,10% 40%,5% 100%,0 40%);
}
.holiday-ferragosto .holiday-object{
  display:block;border-radius:50%;background:#f0c559;box-shadow:0 0 0 6px rgba(240,197,89,.18);
}
.holiday-ferragosto .holiday-object::after{
  content:"";position:absolute;inset:7px;border-radius:50%;border:2px dashed rgba(255,255,255,.65);
}

/* Evita che le decorazioni stagionali coprano animali, pulsanti o arredi importanti */
.city-location-pet-zone,.city-location-label,.city-location-weather-badge,.city-location-visitors{z-index:8}
.city-map-world .city-place,.city-map-world .city-you-are-here{z-index:6}
.room .pet-zone,.room .pet-name-wrap,.room .partner-room-visitor,.room .partner-main-visit-bar,.room .arrange-toolbar{z-index:6}
.walk-scene .walk-place-badge,.walk-scene .walk-pet-marker{z-index:6}

@media(max-width:390px){
  .seasonal-world-badge{padding:5px 7px;min-width:61px}
  .seasonal-world-badge>b{font-size:calc(8px + var(--tp-text-extra,0px))}.seasonal-world-badge>small{font-size:calc(7.5px + var(--tp-text-extra,0px))}
  .holiday-line{left:10%;right:10%}
  .holiday-object{transform:scale(.86);transform-origin:center bottom}
  .holiday-valentine .holiday-object{transform:rotate(45deg) scale(.86)}
}


/* =========================================================
   TinyPal v8.52 — illuminazione stanza più realistica di notte
   ========================================================= */
.room{
  --night-cool-top:rgba(18,25,44,.42);
  --night-cool-side:rgba(13,18,32,.22);
  --night-floor-shadow:rgba(8,10,16,.28);
  --night-window-cool:rgba(160,198,228,.16);
  --night-window-beam:rgba(152,193,226,.15);
  --night-warm-core:rgba(255,221,164,.56);
  --night-warm-soft:rgba(255,214,140,.22);
  --night-warm-floor:rgba(244,194,120,.12);
}
.room.night{
  background:
    radial-gradient(180px 120px at 79% 18%,rgba(171,206,232,.14),transparent 70%),
    linear-gradient(180deg,var(--wall1) 0%,var(--wall2) 52%,var(--floor1) 52%,var(--floor2) 100%);
}
.room.night::before{
  content:"";position:absolute;inset:0;z-index:9;pointer-events:none;
  background:
    linear-gradient(180deg,var(--night-cool-top),rgba(15,19,30,.08) 38%,rgba(10,10,12,0) 56%,rgba(0,0,0,.08) 72%,var(--night-floor-shadow) 100%),
    radial-gradient(110% 92% at 50% 52%,transparent 44%,rgba(5,7,11,.12) 76%,rgba(5,7,11,.22) 100%),
    linear-gradient(90deg,var(--night-cool-side),transparent 18%,transparent 82%,var(--night-cool-side));
  mix-blend-mode:multiply;
}
.room.night::after{
  background:rgba(255,255,255,.055);
  box-shadow:0 1px 0 rgba(255,255,255,.02);
}
.room.night .room-window{
  box-shadow:
    inset 0 0 0 2px rgba(223,236,247,.06),
    inset 0 -14px 22px rgba(33,47,74,.28),
    0 0 0 1px rgba(255,255,255,.04),
    0 10px 26px rgba(13,20,30,.18);
}
.room.night .room-window::before{
  background:rgba(196,208,218,.26);
  box-shadow:0 2px 0 rgba(10,16,22,.22);
}
.room.night .room-window::after{
  box-shadow:inset 0 0 18px rgba(220,235,245,.05);
}
.room.night .sky-orb::after{
  content:"";position:absolute;left:50%;top:50%;width:44px;height:44px;transform:translate(-50%,-50%);
  border-radius:50%;background:radial-gradient(circle,rgba(244,239,214,.22),rgba(244,239,214,0) 72%);
  filter:blur(3px);pointer-events:none;
}
.room.night .light-glow{
  z-index:4;opacity:1;
  background:
    radial-gradient(circle,rgba(255,233,178,calc(.82*var(--glow-strength,1))) 0%,rgba(255,222,159,calc(.46*var(--glow-strength,1))) 28%,rgba(255,214,144,calc(.18*var(--glow-strength,1))) 52%,rgba(255,206,137,0) 74%),
    radial-gradient(60% 42% at 50% 78%,rgba(243,198,122,calc(.18*var(--glow-strength,1))) 0%,rgba(243,198,122,0) 100%);
  filter:blur(2px);
}
.room.night.night-lighting-double .light-glow{
  background:
    radial-gradient(circle,rgba(255,234,182,.86) 0%,rgba(255,223,164,.5) 24%,rgba(255,217,151,.22) 49%,rgba(255,209,145,0) 76%),
    radial-gradient(88% 58% at 52% 74%,rgba(245,196,121,.18) 0%,rgba(245,196,121,0) 100%);
}
.room.night .room-lamp:not(.is-off) .lamp-shade,
.room.night .room-floorlamp:not(.is-off) .floorlamp-shade{
  filter:brightness(1.08) saturate(1.02);
}
.room.night .room-lamp:not(.is-off)::before,
.room.night .room-floorlamp:not(.is-off)::before{
  box-shadow:0 0 16px 7px rgba(255,223,150,.46),0 0 38px 12px rgba(255,214,138,.18);
}
.room.night .room-lamp:not(.is-off)::after,
.room.night .room-floorlamp:not(.is-off)::after{
  box-shadow:0 7px 12px rgba(8,12,18,.35);
}
.room.night.night-lighting-on .pet{
  filter:drop-shadow(0 13px 10px rgba(8,10,16,.30)) brightness(1.02);
}
.room.night.night-lighting-on .head,
.room.night.night-lighting-on .body,
.room.night.night-lighting-on .belly,
.room.night.night-lighting-on .muzzle{
  box-shadow:inset -14px -6px 18px rgba(0,0,0,.08), inset 12px 10px 16px rgba(255,243,214,.05);
}
.room.night.night-lighting-on .room-bed,
.room.night.night-lighting-on .room-rug,
.room.night.night-lighting-on .room-bowl,
.room.night.night-lighting-on .room-nightstand,
.room.night.night-lighting-on .room-stool,
.room.night.night-lighting-on .room-dresser,
.room.night.night-lighting-on .room-cushion,
.room.night.night-lighting-on .roomToy,
.room.night.night-lighting-on .room-object:not(.hidden){
  filter:drop-shadow(0 10px 10px rgba(7,10,16,.28));
}
.room.night.night-lighting-on .room-floor-lines,
.room.night.night-lighting-on .room-rug,
.room.night.night-lighting-on .room-bed::after,
.room.night.night-lighting-on .shadow{
  opacity:.95;
}
.room.night.night-lighting-moon .pet{
  filter:drop-shadow(0 12px 10px rgba(8,10,16,.28)) brightness(.96);
}
.room.night.night-lighting-moon .room-rug,
.room.night.night-lighting-moon .room-bed,
.room.night.night-lighting-moon .room-bowl,
.room.night.night-lighting-moon .room-nightstand,
.room.night.night-lighting-moon .room-object:not(.hidden){
  filter:drop-shadow(0 11px 10px rgba(7,10,18,.28)) brightness(.94);
}
.room.night.night-lighting-moon .room-window{
  box-shadow:
    inset 0 0 0 2px rgba(210,229,241,.08),
    0 0 24px rgba(117,159,191,.12),
    0 10px 22px rgba(10,14,21,.18);
}
.room.night.night-lighting-moon .room-window::before{
  box-shadow:0 2px 0 rgba(10,16,22,.22), 0 18px 36px 2px rgba(150,191,222,.08);
}
.room.night.night-lighting-on .name-button,
.room.night.night-lighting-on .room-meta span{
  background:rgba(255,255,255,.14);
  box-shadow:0 6px 16px rgba(5,7,11,.18);
}
.room.night.night-lighting-moon .name-button,
.room.night.night-lighting-moon .room-meta span{
  background:rgba(255,255,255,.11);
  box-shadow:0 5px 14px rgba(5,7,11,.16);
}
.room.night .age-text{color:rgba(244,244,248,.72)}
@media(max-width:390px){
  .room.night .light-glow{filter:blur(1.6px)}
}


/* v8.54 — animali ridisegnati, più espressivi e riconoscibili */
.pet{
  --fur-hi:#ecc58f;
  --fur:#d7a467;
  --fur-lo:#b97d49;
  --fur-deep:#80543a;
  --body-fur:#c99559;
  --ear-fur:#986944;
  --ear-inner:#d9958e;
  --tail-fur:#b77e4e;
  --belly-fur:#f0d8b2;
  --eye:#2d241e;
  --eye-warm:#75502f;
  --nose:#2b221e;
  --detail-line:rgba(75,48,31,.22);
  filter:drop-shadow(0 13px 9px rgba(67,43,28,.18)) drop-shadow(0 2px 1px rgba(255,255,255,.16));
}

.pet.fur-caramel{
  --fur-hi:#efca92;--fur:#d7a467;--fur-lo:#b97b47;--fur-deep:#805238;
  --body-fur:#c99559;--ear-fur:#986944;--ear-inner:#d69088;--tail-fur:#b77e4e;
  --belly-fur:#f0dab8;--eye-warm:#704628;
}
.pet.fur-cream{
  --fur-hi:#f5e8d1;--fur:#ead8b9;--fur-lo:#cbb08a;--fur-deep:#92775e;
  --body-fur:#ddc59e;--ear-fur:#c6aa83;--ear-inner:#e6aaa6;--tail-fur:#ceb38c;
  --belly-fur:#fff4e4;--eye-warm:#7a5839;
}
.pet.fur-snow{
  --fur-hi:#fffefd;--fur:#f3f0ea;--fur-lo:#d5d1cb;--fur-deep:#9d9993;
  --body-fur:#e6e2db;--ear-fur:#d4cec5;--ear-inner:#e8b8bb;--tail-fur:#ded8d0;
  --belly-fur:#fffdfa;--eye-warm:#6d5446;
}
.pet.fur-gray{
  --fur-hi:#c9c8c7;--fur:#aaa8a7;--fur-lo:#858281;--fur-deep:#5c5958;
  --body-fur:#92908f;--ear-fur:#767473;--ear-inner:#c38f91;--tail-fur:#878584;
  --belly-fur:#dfddda;--eye-warm:#7a563b;
}
.pet.fur-rust{
  --fur-hi:#f1a166;--fur:#d9824b;--fur-lo:#b75d32;--fur-deep:#75402d;
  --body-fur:#c56d39;--ear-fur:#8e4b2d;--ear-inner:#bf7068;--tail-fur:#b95d31;
  --belly-fur:#f4d0a7;--eye-warm:#74411e;
}
.pet.fur-chocolate{
  --fur-hi:#b68a69;--fur:#8c6248;--fur-lo:#684634;--fur-deep:#3f2c24;
  --body-fur:#74503c;--ear-fur:#573a2c;--ear-inner:#a86f70;--tail-fur:#674532;
  --belly-fur:#dcb994;--eye-warm:#9a6b37;
}

.pet .head{
  left:25px;top:13px;width:100px;height:92px;
  border:1px solid rgba(83,53,34,.12);
  background:
    radial-gradient(ellipse at 34% 23%,rgba(255,255,255,.30),transparent 28%),
    linear-gradient(145deg,var(--fur-hi) 0%,var(--fur) 43%,var(--fur-lo) 100%);
  box-shadow:inset 7px 8px 10px rgba(255,255,255,.13),inset -9px -8px 12px rgba(77,45,27,.09),0 2px 1px rgba(77,45,27,.06);
}
.pet .body{
  left:40px;top:85px;width:72px;height:69px;
  border:1px solid rgba(83,53,34,.10);
  background:
    radial-gradient(ellipse at 35% 18%,rgba(255,255,255,.17),transparent 34%),
    linear-gradient(145deg,var(--fur) 0%,var(--body-fur) 48%,var(--fur-lo) 100%);
  box-shadow:inset 6px 7px 9px rgba(255,255,255,.10),inset -8px -7px 10px rgba(70,42,27,.08);
}
.pet .belly{
  left:15px;top:11px;width:40px;height:48px;
  border-radius:48% 52% 44% 56% / 38% 40% 60% 62%;
  background:radial-gradient(ellipse at 38% 25%,rgba(255,255,255,.45),transparent 36%),linear-gradient(155deg,var(--belly-fur),var(--fur-hi));
  opacity:.92;
  box-shadow:inset -4px -5px 7px rgba(99,60,36,.06);
}
.pet .ear{
  border:1px solid rgba(76,45,30,.13);
  background:linear-gradient(145deg,var(--fur),var(--ear-fur) 56%,var(--fur-deep));
  box-shadow:inset 5px 5px 7px rgba(255,255,255,.10),inset -5px -5px 7px rgba(58,37,27,.10);
  overflow:hidden;
}
.pet .ear::before{
  content:"";position:absolute;display:block;
  left:9px;top:11px;width:17px;height:39px;border-radius:60% 48% 60% 45%;
  background:linear-gradient(160deg,rgba(255,220,213,.72),var(--ear-inner));
  opacity:.72;box-shadow:inset -2px -3px 4px rgba(85,44,38,.10);
}
.pet .face-eye{
  top:35px;width:11px;height:14px;
  background:radial-gradient(circle at 38% 30%,var(--eye-warm),var(--eye) 60%,#17120f 100%);
  border:1px solid rgba(28,20,15,.24);
  box-shadow:0 1px 0 rgba(255,255,255,.16),0 2px 2px rgba(55,35,24,.08);
}
.pet .eye-left{left:26px}.pet .eye-right{right:26px}
.pet .face-eye::before{
  content:"";position:absolute;display:block;left:2px;top:2px;width:4px;height:4px;border-radius:50%;
  background:rgba(255,255,255,.92);box-shadow:4px 6px 0 -1px rgba(255,255,255,.32);
}
.pet .muzzle{
  left:27px;top:50px;width:46px;height:34px;
  background:
    radial-gradient(ellipse at 37% 30%,rgba(255,255,255,.34),transparent 32%),
    linear-gradient(155deg,var(--belly-fur),var(--fur-hi));
  border:1px solid rgba(86,55,36,.09);
  box-shadow:inset -4px -5px 7px rgba(85,50,31,.05);
}
.pet .nose{
  left:14px;top:4px;width:17px;height:12px;
  background:linear-gradient(150deg,#57463d 0%,var(--nose) 42%,#171310 100%);
  border:1px solid rgba(20,15,12,.25);
  box-shadow:0 2px 2px rgba(55,34,23,.16);
}
.pet .nose::before{
  content:"";position:absolute;display:block;left:3px;top:2px;width:6px;height:3px;border-radius:50%;
  background:rgba(255,255,255,.38);transform:rotate(-13deg);
}
.pet .nose::after{
  content:"";position:absolute;display:block;left:7px;top:10px;width:2px;height:7px;border-radius:999px;
  background:rgba(69,45,33,.56);
}
.pet .mouth{left:16px;top:18px;width:14px;height:8px;border-bottom-color:rgba(75,47,35,.82)}
.pet .leg{
  top:135px;width:31px;height:29px;
  border:1px solid rgba(76,46,30,.09);
  background:linear-gradient(150deg,var(--fur),var(--body-fur) 52%,var(--fur-lo));
  box-shadow:inset 4px 4px 5px rgba(255,255,255,.09),inset -4px -4px 5px rgba(70,42,27,.07);
}
.pet .leg-left{left:42px}.pet .leg-right{right:42px}
.pet .leg::before{
  content:"";position:absolute;display:block;left:7px;bottom:5px;width:3px;height:4px;border-radius:999px;
  background:rgba(83,53,37,.24);box-shadow:6px 1px 0 rgba(83,53,37,.22),12px 0 0 rgba(83,53,37,.20);
}
.pet .leg::after{
  content:"";position:absolute;display:block;left:5px;right:5px;bottom:1px;height:4px;border-radius:50%;
  background:rgba(255,255,255,.12);
}
.pet .tail{
  border:1px solid rgba(73,43,28,.10);
  background:linear-gradient(145deg,var(--fur),var(--tail-fur) 48%,var(--fur-deep));
  box-shadow:inset 4px 4px 5px rgba(255,255,255,.10),inset -4px -4px 5px rgba(62,37,25,.08);
}
.pet .tail::after{
  content:"";position:absolute;display:block;right:1px;top:2px;width:13px;height:12px;border-radius:50%;
  background:linear-gradient(145deg,var(--fur-hi),var(--tail-fur));opacity:.78;
}

/* Cane: orecchie morbide, muso ampio e proporzioni da cucciolo. */
.pet.species-dog .ear{top:8px;width:39px;height:67px;border-radius:64% 44% 68% 42%}
.pet.species-dog .ear-left{left:14px;transform:rotate(20deg)}
.pet.species-dog .ear-right{right:14px;transform:scaleX(-1) rotate(20deg)}
.pet.species-dog .head{
  border-radius:50% 50% 45% 45% / 47% 47% 53% 53%;
  background:radial-gradient(ellipse at 49% -3%,var(--fur-hi) 0 12%,transparent 29%),radial-gradient(ellipse at 32% 24%,rgba(255,255,255,.24),transparent 30%),linear-gradient(145deg,var(--fur-hi),var(--fur) 45%,var(--fur-lo));
}
.pet.species-dog .muzzle{width:48px;left:26px;border-radius:49% 49% 56% 56%}
.pet.species-dog .body{border-radius:50% 50% 42% 42%}

/* Gatto: mascherina tigrata, occhi a mandorla, baffi e coda arcuata. */
.pet.species-cat .head{
  left:27px;top:16px;width:96px;height:88px;border-radius:46% 46% 48% 48% / 43% 43% 56% 56%;
  background:
    linear-gradient(71deg,transparent 0 44%,var(--fur-lo) 45% 47%,transparent 48%),
    linear-gradient(109deg,transparent 0 44%,var(--fur-lo) 45% 47%,transparent 48%),
    linear-gradient(90deg,transparent 0 47%,var(--fur-lo) 48% 51%,transparent 52%),
    radial-gradient(ellipse at 34% 24%,rgba(255,255,255,.22),transparent 28%),
    linear-gradient(145deg,var(--fur-hi),var(--fur) 45%,var(--fur-lo));
}
.pet.species-cat .ear{top:-1px;width:36px;height:51px;border-radius:7px;clip-path:polygon(50% 0,100% 100%,0 100%)}
.pet.species-cat .ear-left{left:18px;transform:rotate(-9deg)}
.pet.species-cat .ear-right{right:18px;transform:rotate(9deg)}
.pet.species-cat .ear::before{left:9px;top:14px;width:17px;height:29px;border-radius:3px;clip-path:polygon(50% 0,100% 100%,0 100%)}
.pet.species-cat .face-eye{top:35px;width:12px;height:14px;border-radius:55% 45% 52% 48%;transform:rotate(5deg)}
.pet.species-cat .eye-right{transform:rotate(-5deg)}
.pet.species-cat .muzzle{left:29px;top:51px;width:38px;height:30px}
.pet.species-cat .muzzle::before,.pet.species-cat .muzzle::after{
  content:"";position:absolute;display:block;top:14px;width:22px;height:1px;border-radius:999px;background:rgba(67,50,40,.42);
  box-shadow:1px -5px 0 rgba(67,50,40,.32),1px 5px 0 rgba(67,50,40,.30);
}
.pet.species-cat .muzzle::before{left:-19px;transform:rotate(4deg)}
.pet.species-cat .muzzle::after{right:-19px;transform:rotate(-4deg)}
.pet.species-cat .nose{left:12px;width:14px;height:10px;background:linear-gradient(150deg,#d99a9c,#8d5a5b)}
.pet.species-cat .mouth{left:12px;top:16px}
.pet.species-cat .body{left:43px;width:64px;border-radius:48% 48% 44% 44%}
.pet.species-cat .belly{left:13px;width:38px}
.pet.species-cat .leg-left{left:45px}.pet.species-cat .leg-right{right:45px}
.pet.species-cat .tail{right:8px;top:97px;width:57px;height:14px;border-radius:999px;transform:rotate(-48deg)}
.pet.species-cat .tail::before{content:"";position:absolute;display:block;right:-11px;top:-11px;width:26px;height:14px;border-radius:999px;background:linear-gradient(145deg,var(--fur),var(--tail-fur));transform:rotate(-52deg);border:1px solid rgba(73,43,28,.08)}

/* Coniglio: orecchie vellutate, guance soffici e grandi zampe posteriori. */
.pet.species-rabbit .ear{top:-31px;width:29px;height:87px;border-radius:52% 52% 44% 44%}
.pet.species-rabbit .ear-left{left:32px;transform:rotate(-7deg)}
.pet.species-rabbit .ear-right{right:32px;transform:rotate(7deg)}
.pet.species-rabbit .ear::before{left:7px;top:10px;width:13px;height:61px;border-radius:50%;opacity:.82}
.pet.species-rabbit .head{left:25px;top:20px;width:100px;height:90px;border-radius:52% 52% 48% 48%}
.pet.species-rabbit .face-eye{top:35px;width:12px;height:15px}
.pet.species-rabbit .muzzle{left:29px;top:52px;width:42px;height:31px;background:linear-gradient(155deg,var(--belly-fur),var(--fur-hi))}
.pet.species-rabbit .nose{left:14px;width:13px;height:10px;background:linear-gradient(145deg,#e9abae,#a86568)}
.pet.species-rabbit .mouth{left:14px;top:16px;width:13px}
.pet.species-rabbit .body{left:38px;top:90px;width:76px;height:64px;border-radius:54% 54% 46% 46%}
.pet.species-rabbit .leg{top:139px;width:37px;height:25px;border-radius:50% 44% 48% 45%}
.pet.species-rabbit .leg-left{left:35px;transform:rotate(-5deg)}.pet.species-rabbit .leg-right{right:35px;transform:rotate(5deg)}
.pet.species-rabbit .tail{right:16px;top:111px;width:29px;height:29px;border-radius:50%;transform:none;background:radial-gradient(circle at 35% 30%,#fff,var(--belly-fur) 45%,var(--fur-hi));box-shadow:inset -5px -5px 7px rgba(79,51,35,.07),0 1px 2px rgba(79,51,35,.10)}
.pet.species-rabbit .tail::after{right:5px;top:4px;width:11px;height:10px;background:#fff;opacity:.48}

/* Volpe: maschera chiara, zampe scure e grande coda con punta crema. */
.pet.species-fox .head{
  left:25px;top:14px;width:100px;height:92px;border-radius:46% 46% 54% 54% / 42% 42% 62% 62%;
  background:
    radial-gradient(ellipse at 27% 63%,var(--belly-fur) 0 19%,transparent 20%),
    radial-gradient(ellipse at 73% 63%,var(--belly-fur) 0 19%,transparent 20%),
    radial-gradient(ellipse at 34% 22%,rgba(255,255,255,.20),transparent 27%),
    linear-gradient(145deg,var(--fur-hi),var(--fur) 43%,var(--fur-lo));
}
.pet.species-fox .ear{top:-2px;width:39px;height:55px;border-radius:5px;clip-path:polygon(50% 0,100% 100%,0 100%);background:linear-gradient(180deg,var(--fur-deep) 0 25%,var(--fur) 27%,var(--ear-fur))}
.pet.species-fox .ear-left{left:16px;transform:rotate(-8deg)}.pet.species-fox .ear-right{right:16px;transform:rotate(8deg)}
.pet.species-fox .ear::before{left:10px;top:17px;width:18px;height:28px;border-radius:3px;clip-path:polygon(50% 0,100% 100%,0 100%)}
.pet.species-fox .face-eye{top:36px;height:12px;border-radius:60% 42% 58% 45%}
.pet.species-fox .muzzle{left:28px;top:52px;width:44px;height:37px;border-radius:45% 45% 64% 64%;background:linear-gradient(155deg,#fff8ea,var(--belly-fur))}
.pet.species-fox .body{left:39px;width:74px}
.pet.species-fox .leg{background:linear-gradient(180deg,var(--body-fur) 0 42%,var(--fur-deep) 44% 100%)}
.pet.species-fox .tail{right:-7px;top:94px;width:73px;height:29px;border-radius:66% 34% 66% 34%;transform:rotate(-30deg)}
.pet.species-fox .tail::after{right:-1px;top:1px;width:25px;height:24px;border-radius:66% 34% 66% 34%;background:linear-gradient(145deg,#fff8e9,var(--belly-fur));opacity:1}

/* Orso: silhouette compatta, orecchie tonde e muso largo. */
.pet.species-bear .ear{top:5px;width:35px;height:35px;border-radius:50%}
.pet.species-bear .ear-left{left:16px;transform:none}.pet.species-bear .ear-right{right:16px;transform:none}
.pet.species-bear .ear::before{left:8px;top:7px;width:17px;height:17px;border-radius:50%;opacity:.72}
.pet.species-bear .head{left:22px;top:13px;width:106px;height:96px;border-radius:51% 51% 47% 47%}
.pet.species-bear .face-eye{top:37px;width:10px;height:12px}
.pet.species-bear .eye-left{left:30px}.pet.species-bear .eye-right{right:30px}
.pet.species-bear .muzzle{left:28px;top:52px;width:50px;height:37px;border-radius:52% 52% 58% 58%}
.pet.species-bear .nose{left:16px;width:18px}
.pet.species-bear .mouth{left:18px}
.pet.species-bear .body{left:37px;top:86px;width:78px;height:70px;border-radius:53% 53% 42% 42%}
.pet.species-bear .belly{left:17px;width:44px}
.pet.species-bear .leg{width:33px}.pet.species-bear .leg-left{left:40px}.pet.species-bear .leg-right{right:40px}
.pet.species-bear .tail{right:24px;top:116px;width:22px;height:22px;border-radius:50%;transform:none}
.pet.species-bear .tail::after{right:3px;top:3px;width:9px;height:8px}

/* La scala continua a dipendere solo dalla crescita, mai dalla posizione. */
.pet-zone .pet,.city-location-pet-zone .pet,.partner-room-visitor .pet{transform-origin:center bottom}
.pet.sleeping .face-eye::before{opacity:0}
.pet.mood-happy .face-eye::before{opacity:.96}
.room.night .pet .face-eye{box-shadow:0 0 5px rgba(255,214,145,.10)}
@media(max-width:390px){
  .pet{filter:drop-shadow(0 11px 8px rgba(67,43,28,.17))}
}


/* =========================================================
   TinyPal v8.55 — COLLEZIONE ARREDI RIDISEGNATA
   Stile soft-3D coerente: legno, tessuto, ceramica e metallo.
   Le dimensioni esterne restano compatibili con Arredo Pro.
   ========================================================= */

/* Materiali condivisi e varianti reali, non semplici filtri colore. */
.room-shelf,.room-dresser,.room-nightstand,.room-stool{
  --furn-hi:#d7ab82;--furn-main:#b87e59;--furn-mid:#9d6648;--furn-low:#71452f;
  --furn-line:rgba(82,48,29,.18);--furn-shine:rgba(255,255,255,.18);--furn-metal:#b9a793;
}
.room-shelf.tone-walnut,.room-dresser.tone-walnut,.room-nightstand.tone-walnut,.room-stool.tone-walnut{
  --furn-hi:#b78161;--furn-main:#8d5b42;--furn-mid:#754731;--furn-low:#4d2d21;--furn-line:rgba(48,27,19,.26);--furn-metal:#c0aa91;
}
.room-shelf.tone-oak,.room-dresser.tone-oak,.room-nightstand.tone-oak,.room-stool.tone-oak{
  --furn-hi:#e5c39c;--furn-main:#c79a6e;--furn-mid:#aa774d;--furn-low:#7d5033;--furn-line:rgba(100,63,34,.17);--furn-metal:#c4ad8f;
}
.room-shelf.tone-cream,.room-dresser.tone-cream,.room-nightstand.tone-cream,.room-stool.tone-cream{
  --furn-hi:#f3eadc;--furn-main:#ddcdb7;--furn-mid:#c2ad94;--furn-low:#917b67;--furn-line:rgba(104,86,69,.14);--furn-metal:#a38f7a;
}
.room-shelf.tone-sage,.room-dresser.tone-sage,.room-nightstand.tone-sage,.room-stool.tone-sage{
  --furn-hi:#bdc9bd;--furn-main:#91a291;--furn-mid:#758776;--furn-low:#526354;--furn-line:rgba(57,75,60,.18);--furn-metal:#c8bda9;
}

/* CUCCE — tre modelli davvero distinti. */
.room-bed{
  --bed-accent-hi:#c7ddd1;--bed-accent:#9fbcac;--bed-accent-low:#6e9682;
  width:204px!important;height:114px!important;
  filter:drop-shadow(0 12px 8px rgba(55,36,23,.18))!important;
}
.room-bed.tone-sage{--bed-accent-hi:#c8ded2;--bed-accent:#9ebdac;--bed-accent-low:#6e947f}
.room-bed.tone-rose{--bed-accent-hi:#f0ccd9;--bed-accent:#d8a4b8;--bed-accent-low:#aa728b}
.room-bed.tone-sky{--bed-accent-hi:#cfdfed;--bed-accent:#a7c2da;--bed-accent-low:#6f94b5}
.room-bed.tone-cream{--bed-accent-hi:#f0e3c9;--bed-accent:#d8c39e;--bed-accent-low:#a58b61}
.room-bed .bed-back{
  left:4px!important;right:4px!important;top:2px!important;height:74px!important;
  border-radius:60px 60px 26px 26px!important;
  background:
    repeating-linear-gradient(108deg,transparent 0 14px,rgba(255,255,255,.025) 15px 16px),
    linear-gradient(145deg,#d9ac83 0%,#b87e57 50%,#865337 100%)!important;
  border:1px solid rgba(83,48,28,.16)!important;
  box-shadow:inset 0 8px rgba(255,255,255,.11),inset 0 -9px rgba(69,39,23,.08),0 4px 0 rgba(67,42,26,.08)!important;
}
.room-bed .bed-back::before{
  inset:9px 13px 17px!important;border-radius:48px 48px 19px 19px!important;
  border:2px solid rgba(255,255,255,.13)!important;border-bottom-color:rgba(75,44,27,.12)!important;
}
.room-bed .bed-back::after{
  left:22px!important;right:22px!important;top:17px!important;height:30px!important;
  background:radial-gradient(circle at 25% 50%,rgba(255,255,255,.22) 0 2px,transparent 2.5px),radial-gradient(circle at 50% 28%,rgba(255,255,255,.20) 0 2px,transparent 2.5px),radial-gradient(circle at 75% 50%,rgba(255,255,255,.22) 0 2px,transparent 2.5px)!important;
  box-shadow:none!important;
}
.room-bed .bed-matress{
  left:12px!important;right:12px!important;top:50px!important;height:52px!important;border-radius:50%!important;
  background:radial-gradient(ellipse at 42% 25%,#fffdf8 0%,#f4e8d9 58%,#d9c0a6 100%)!important;
  border:1px solid rgba(112,76,49,.12)!important;
  box-shadow:inset 0 6px 8px rgba(255,255,255,.56),inset 0 -9px 11px rgba(104,70,45,.10),0 5px 0 rgba(73,47,29,.11)!important;
}
.room-bed .bed-matress::before{
  content:"";position:absolute;left:20px;right:20px;top:9px;height:26px;border-radius:50%;
  border:1px dashed rgba(139,103,73,.15);box-shadow:inset 0 4px 7px rgba(255,255,255,.22);
}
.room-bed .bed-matress::after{left:31px!important;right:31px!important;top:18px!important;border-top-color:rgba(125,91,64,.13)!important}
.room-bed .bed-pillows{
  display:flex!important;left:30px!important;top:58px!important;gap:7px!important;z-index:3;
}
.room-bed .bed-pillows span{
  width:36px!important;height:21px!important;border-radius:48% 52% 46% 54%!important;
  background:linear-gradient(145deg,#fffdf8,#eadcca)!important;border:1px solid rgba(120,87,59,.09)!important;
  box-shadow:inset 0 4px rgba(255,255,255,.50),inset 0 -4px rgba(96,65,43,.05),0 2px 3px rgba(71,45,28,.08)!important;
  transform:rotate(-4deg);
}
.room-bed .bed-pillows span+span{transform:rotate(5deg);margin-left:-10px}
.room-bed .bed-blanket{
  left:75px!important;right:20px!important;top:65px!important;height:31px!important;border-radius:50% 43% 51% 44%!important;
  background:
    repeating-linear-gradient(105deg,transparent 0 10px,rgba(255,255,255,.045) 11px 12px),
    linear-gradient(145deg,var(--bed-accent-hi),var(--bed-accent) 58%,var(--bed-accent-low))!important;
  border:1px solid rgba(68,86,76,.11)!important;
  box-shadow:inset 0 6px rgba(255,255,255,.16),inset 0 -5px rgba(61,70,63,.07),0 3px 4px rgba(60,40,27,.08)!important;
}
.room-bed .bed-blanket::after{left:12px!important;right:12px!important;bottom:6px!important;border-top:1px dashed rgba(255,255,255,.38)!important}
.room-bed .bed-deco{right:29px!important;top:70px!important;background:rgba(255,255,255,.30)!important;z-index:4}
.room-bed::before{bottom:6px!important;height:22px!important;background:linear-gradient(180deg,#9d6947,#70442f)!important;box-shadow:inset 0 4px rgba(255,255,255,.06)!important}
.room.bed-basic .room-bed .bed-back{background:repeating-linear-gradient(108deg,transparent 0 14px,rgba(255,255,255,.025) 15px 16px),linear-gradient(145deg,#d9ac83,#b87e57 50%,#865337)!important}
.room.bed-deluxe .room-bed .bed-back{
  background:radial-gradient(circle at 25% 45%,rgba(255,220,155,.26) 0 3px,transparent 3.5px),radial-gradient(circle at 50% 28%,rgba(255,220,155,.24) 0 3px,transparent 3.5px),radial-gradient(circle at 75% 45%,rgba(255,220,155,.26) 0 3px,transparent 3.5px),linear-gradient(145deg,#bd8958,#93613f 58%,#603923)!important;
  border-color:rgba(92,55,29,.20)!important;box-shadow:inset 0 8px rgba(255,224,173,.12),inset 0 -9px rgba(46,27,16,.13),0 4px 0 rgba(60,36,21,.10)!important;
}
.room.bed-deluxe .room-bed .bed-back::before{border-color:rgba(224,186,126,.24)!important;border-width:2px!important}
.room.bed-deluxe .room-bed::before{background:linear-gradient(180deg,#885638,#5c3624)!important}
.room.bed-fluffy .room-bed .bed-back{
  left:9px!important;right:9px!important;border-radius:55% 55% 27px 27px!important;
  background:radial-gradient(circle at 15% 34%,#f0d9e8 0 22px,transparent 23px),radial-gradient(circle at 36% 18%,#f5e2ee 0 27px,transparent 28px),radial-gradient(circle at 61% 18%,#efd7e6 0 28px,transparent 29px),radial-gradient(circle at 84% 34%,#e6c4da 0 23px,transparent 24px),linear-gradient(145deg,#edcfe2,#c898b7 66%,#9c6b8b)!important;
  box-shadow:inset 0 8px rgba(255,255,255,.20),inset 0 -8px rgba(109,64,91,.08),0 4px 0 rgba(84,51,70,.09)!important;
}
.room.bed-fluffy .room-bed .bed-matress{background:radial-gradient(ellipse at 42% 25%,#fffefe,#faedf5 58%,#e6cadb 100%)!important}
.room.bed-fluffy .room-bed::before{background:linear-gradient(180deg,#ba88a8,#865b77)!important}

/* MENSOLA — tavola spessa, vere staffe, libri e piccolo vaso. */
.room-shelf{
  width:124px!important;height:21px!important;padding:0 9px 11px!important;gap:6px!important;
  border:1px solid var(--furn-line)!important;border-radius:8px 8px 5px 5px!important;
  background:
    repeating-linear-gradient(105deg,transparent 0 18px,rgba(68,37,21,.055) 19px 20px),
    linear-gradient(180deg,var(--furn-hi),var(--furn-main) 49%,var(--furn-mid) 70%,var(--furn-low))!important;
  box-shadow:inset 0 4px var(--furn-shine),0 5px 0 rgba(70,42,26,.10),0 8px 8px rgba(51,33,22,.10)!important;
}
.room-shelf::before{
  left:18px!important;right:18px!important;bottom:-15px!important;height:15px!important;
  background:linear-gradient(90deg,var(--furn-low) 0 8px,transparent 8px calc(100% - 8px),var(--furn-low) calc(100% - 8px))!important;
  clip-path:polygon(0 0,100% 0,86% 100%,14% 100%)!important;opacity:.95!important;
}
.room-shelf::after{left:7px!important;right:7px!important;bottom:-5px!important;height:5px!important;background:rgba(50,31,19,.16)!important;filter:blur(2px)}
.room-shelf .shelf-book{position:relative;border-radius:3px 3px 1px 1px!important;border:1px solid rgba(47,39,32,.12)!important;box-shadow:inset 3px 0 rgba(255,255,255,.13),1px 1px 2px rgba(48,31,20,.09)!important}
.room-shelf .shelf-book::after{content:"";position:absolute;left:2px;right:2px;bottom:4px;border-bottom:1px solid rgba(255,255,255,.34)}
.room-shelf .shelf-frame{width:24px!important;height:22px!important;border-color:var(--furn-low)!important;background:linear-gradient(145deg,var(--furn-hi),var(--furn-main))!important;box-shadow:0 2px 3px rgba(48,31,20,.13),inset 0 0 0 1px rgba(255,255,255,.18)!important}
.room-shelf .shelf-frame::after{inset:4px!important;background:linear-gradient(150deg,#b9d4dd 0 52%,#e9d5bb 53% 100%)!important}
.room-shelf .shelf-box{height:18px!important;background:linear-gradient(145deg,#f0d98f,#c39b4e)!important;border:1px solid rgba(104,75,33,.12);position:relative}
.room-shelf .shelf-box::before{content:"";position:absolute;left:4px;right:4px;top:6px;height:3px;border-radius:99px;background:rgba(255,255,255,.44)}
.room-shelf .shelf-vase{align-self:flex-end;position:relative;width:15px;height:18px;border-radius:4px 4px 8px 8px;background:linear-gradient(120deg,#e7efe9,#8fafa0 64%,#668779);box-shadow:inset 3px 0 rgba(255,255,255,.22),0 2px 2px rgba(45,35,25,.10)}
.room-shelf .shelf-vase::before{content:"";position:absolute;left:4px;right:4px;top:-4px;height:6px;border-radius:4px;background:#789789}
.room-shelf .shelf-vase i{position:absolute;left:7px;bottom:14px;width:2px;height:13px;background:#4f7657;transform:rotate(-12deg);transform-origin:bottom}
.room-shelf .shelf-vase i::before,.room-shelf .shelf-vase i::after{content:"";position:absolute;bottom:7px;width:7px;height:4px;border-radius:70% 20% 70% 20%;background:#6f9b71}
.room-shelf .shelf-vase i::before{right:0;transform:rotate(-30deg)}.room-shelf .shelf-vase i::after{left:0;transform:scaleX(-1) rotate(-30deg)}

/* COMÒ — scocca, quattro cassetti incassati, ferramenta e piedini. */
.room-dresser{width:122px!important;height:112px!important;filter:drop-shadow(0 11px 7px rgba(49,31,19,.17))!important}
.room-dresser .dresser-top{
  left:-4px!important;right:-4px!important;top:0!important;height:16px!important;
  border-radius:9px 9px 4px 4px!important;border:1px solid var(--furn-line)!important;
  background:repeating-linear-gradient(100deg,transparent 0 20px,rgba(62,36,21,.045) 21px 22px),linear-gradient(180deg,var(--furn-hi),var(--furn-main) 58%,var(--furn-mid))!important;
  box-shadow:inset 0 4px var(--furn-shine),0 2px 2px rgba(55,34,21,.10)!important;
}
.room-dresser .dresser-top::after{content:"";position:absolute;left:9px;right:9px;top:5px;height:1px;background:rgba(255,255,255,.23)}
.room-dresser .dresser-body{
  left:3px!important;right:3px!important;top:16px!important;height:88px!important;padding:8px!important;gap:7px!important;
  border-radius:5px 5px 10px 10px!important;border:1px solid var(--furn-line)!important;
  background:repeating-linear-gradient(100deg,transparent 0 26px,rgba(68,39,23,.045) 27px 28px),linear-gradient(100deg,var(--furn-mid),var(--furn-main) 28%,var(--furn-main) 70%,var(--furn-low))!important;
  box-shadow:inset 7px 0 rgba(255,255,255,.045),inset -7px 0 rgba(48,28,17,.055)!important;
}
.room-dresser .dresser-body::before{content:"";position:absolute;left:50%;top:6px;bottom:6px;width:1px;background:rgba(55,33,21,.13);box-shadow:1px 0 rgba(255,255,255,.08)}
.room-dresser .dresser-body span{
  border-radius:5px!important;border:1px solid var(--furn-line)!important;
  background:linear-gradient(180deg,var(--furn-hi),var(--furn-main) 34%,var(--furn-mid))!important;
  box-shadow:inset 0 3px var(--furn-shine),inset 0 -3px rgba(53,31,19,.05),0 1px 2px rgba(48,30,19,.08)!important;
}
.room-dresser .dresser-body span::before{left:6px!important;right:6px!important;top:5px!important;background:rgba(255,255,255,.18)!important}
.room-dresser .dresser-body span::after{
  width:15px!important;height:5px!important;border-radius:99px!important;
  background:linear-gradient(180deg,#d9cbbb,var(--furn-metal) 52%,#7d6c5c)!important;
  border:1px solid rgba(65,52,43,.18)!important;box-shadow:0 1px 2px rgba(43,31,23,.22),inset 0 1px rgba(255,255,255,.40)!important;
}
.room-dresser::before{left:13px!important;right:13px!important;bottom:0!important;height:10px!important;background:linear-gradient(90deg,transparent 0 6%,var(--furn-low) 6% 17%,transparent 17% 83%,var(--furn-low) 83% 94%,transparent 94%)!important}
.room-dresser::after{bottom:-5px!important;background:rgba(48,29,18,.15)!important;filter:blur(4px)}

/* COMODINO — frontale più leggibile e base solida. */
.room-nightstand{width:76px!important;height:74px!important;filter:drop-shadow(0 9px 6px rgba(49,31,19,.16))!important}
.room-nightstand .nightstand-top{
  left:-3px!important;right:-3px!important;top:0!important;height:15px!important;
  border-radius:8px 8px 3px 3px!important;border:1px solid var(--furn-line)!important;
  background:linear-gradient(180deg,var(--furn-hi),var(--furn-main) 58%,var(--furn-mid))!important;
  box-shadow:inset 0 4px var(--furn-shine),0 2px 2px rgba(50,31,19,.09)!important;
}
.room-nightstand .nightstand-top::after{content:"";position:absolute;left:8px;right:8px;top:5px;height:1px;background:rgba(255,255,255,.22)}
.room-nightstand .nightstand-drawer{
  left:4px!important;right:4px!important;top:15px!important;height:38px!important;border-radius:3px 3px 7px 7px!important;
  border:1px solid var(--furn-line)!important;background:linear-gradient(180deg,var(--furn-hi),var(--furn-main) 38%,var(--furn-mid))!important;
  box-shadow:inset 0 4px var(--furn-shine),inset 0 -4px rgba(49,29,18,.05)!important;
}
.room-nightstand .nightstand-drawer::before{left:8px!important;right:8px!important;top:7px!important;width:auto!important;height:20px!important;transform:none!important;border-radius:4px!important;background:transparent!important;border:1px solid rgba(70,42,25,.10)!important}
.room-nightstand .nightstand-drawer::after{left:50%!important;top:14px!important;width:14px!important;height:5px!important;transform:translateX(-50%)!important;background:linear-gradient(180deg,#d7c9b8,var(--furn-metal) 58%,#7b6a5c)!important;border:1px solid rgba(65,51,41,.17);box-shadow:0 1px 1px rgba(43,30,22,.20)!important}
.room-nightstand .nightstand-leg{top:52px!important;width:9px!important;height:19px!important;border-radius:1px 1px 5px 5px!important;background:linear-gradient(180deg,var(--furn-mid),var(--furn-low))!important;box-shadow:inset 2px 0 rgba(255,255,255,.06)}
.room-nightstand .nightstand-leg.left{left:11px!important}.room-nightstand .nightstand-leg.right{right:11px!important}
.room-nightstand::before{content:"";position:absolute;left:11px;right:11px;bottom:11px;height:5px;border-radius:2px;background:linear-gradient(180deg,var(--furn-main),var(--furn-low));box-shadow:inset 0 1px rgba(255,255,255,.10)}

/* SGABELLO — seduta imbottita, piping e traversa. */
.room-stool{width:64px!important;height:58px!important}
.room-stool span{
  left:4px!important;right:4px!important;top:0!important;height:22px!important;border-radius:14px 14px 8px 8px!important;
  border:1px solid var(--furn-line)!important;background:radial-gradient(ellipse at 40% 15%,var(--furn-hi),var(--furn-main) 58%,var(--furn-mid))!important;
  box-shadow:inset 0 5px var(--furn-shine),inset 0 -4px rgba(52,31,19,.06),0 3px 3px rgba(48,30,19,.09)!important;
}
.room-stool span::before{content:"";position:absolute;left:7px;right:7px;top:4px;bottom:4px;border:1px solid rgba(255,255,255,.16);border-radius:10px}
.room-stool span::after{left:8px!important;right:8px!important;bottom:4px!important;border-bottom:1px dashed rgba(69,42,26,.25)!important}
.room-stool::before,.room-stool::after{top:20px!important;width:9px!important;height:35px!important;background:linear-gradient(180deg,var(--furn-mid),var(--furn-low))!important;box-shadow:inset 2px 0 rgba(255,255,255,.07)!important}
.room-stool::before{left:12px!important}.room-stool::after{right:12px!important}
.room-stool{background:linear-gradient(180deg,transparent 0 39px,var(--furn-low) 39px 44px,transparent 44px)!important}

/* PIANTA — chioma più piena, venature e vaso in ceramica. */
.room-plant{width:88px!important;height:104px!important;filter:drop-shadow(0 9px 5px rgba(41,35,22,.17))!important}
.room-plant .plant-pot{
  left:20px!important;bottom:0!important;width:47px!important;height:31px!important;border-radius:5px 5px 19px 19px!important;
  background:radial-gradient(ellipse at 30% 22%,rgba(255,255,255,.30),transparent 34%),linear-gradient(105deg,#dfb58f,#b97d58 58%,#89543a)!important;
  border:1px solid rgba(91,55,35,.13)!important;box-shadow:inset 0 6px rgba(255,255,255,.15),inset -5px -3px rgba(64,38,24,.06),0 3px 3px rgba(48,31,20,.09)!important;
}
.room-plant .plant-pot::before{left:-3px!important;right:-3px!important;top:-8px!important;height:11px!important;background:linear-gradient(180deg,#d6a57f,#a96d4c)!important;border:1px solid rgba(80,48,30,.11)!important;box-shadow:inset 0 3px rgba(255,255,255,.14)}
.room-plant .plant-pot::after{left:8px!important;right:8px!important;top:2px!important;height:6px!important;background:radial-gradient(ellipse,#6a4b35,#3f3026)!important;box-shadow:inset 0 2px 2px rgba(20,14,10,.22)}
.room-plant .plant-leaf{
  width:21px!important;border-radius:66% 34% 64% 36%!important;
  background:linear-gradient(100deg,#9dca88 0%,#5d9b68 45%,#34734b 100%)!important;
  border:1px solid rgba(37,91,54,.12)!important;box-shadow:inset -3px -2px rgba(255,255,255,.10),0 2px 2px rgba(35,60,39,.08)!important;
}
.room-plant .plant-leaf::before{content:"";position:absolute;left:4px;right:5px;top:12px;height:1px;background:rgba(227,255,225,.20);transform:rotate(26deg);box-shadow:0 8px rgba(227,255,225,.13)}
.room-plant .plant-leaf::after{left:49%!important;top:5px!important;bottom:5px!important;background:rgba(231,255,229,.30)!important}
.room-plant .leaf-1{left:10px!important;height:43px!important;transform:rotate(-39deg)!important}
.room-plant .leaf-2{left:24px!important;height:60px!important;transform:rotate(-18deg)!important}
.room-plant .leaf-3{left:42px!important;height:61px!important;transform:rotate(11deg)!important}
.room-plant .leaf-4{left:58px!important;height:46px!important;transform:rotate(37deg)!important}
.room-plant .leaf-5{left:19px!important;bottom:25px!important;height:39px!important;transform:rotate(-61deg)!important;filter:brightness(.92)}
.room-plant .leaf-6{left:55px!important;bottom:25px!important;height:38px!important;transform:rotate(59deg)!important;filter:brightness(.90)}
.room-plant::before{left:40px!important;bottom:25px!important;height:43px!important;background:linear-gradient(90deg,#3e6845,#62875a,#31593b)!important;box-shadow:-8px 8px 0 -1px #496f4b,8px 7px 0 -1px #446c49}
.room-plant::after{content:"";position:absolute;left:22px;right:19px;bottom:-3px;height:8px;border-radius:50%;background:rgba(48,32,21,.14);filter:blur(3px)}

/* CESTA — intreccio completo, bordo e manico con profondità. */
.room-basket{--basket-hi:#d2a46f;--basket-main:#b27d4e;--basket-low:#75472c;width:86px!important;height:62px!important}
.room-basket.tone-tan{--basket-hi:#d2a46f;--basket-main:#b27d4e;--basket-low:#75472c}
.room-basket.tone-rose{--basket-hi:#e0b2b8;--basket-main:#bd838d;--basket-low:#81545e}
.room-basket.tone-sage{--basket-hi:#b7c8b7;--basket-main:#8fa48f;--basket-low:#586e5a}
.room-basket .basket-shell{
  left:5px!important;right:5px!important;bottom:0!important;height:39px!important;border-radius:9px 9px 20px 20px!important;
  background:repeating-linear-gradient(90deg,transparent 0 6px,rgba(58,35,21,.11) 6px 8px),repeating-linear-gradient(0deg,rgba(255,255,255,.09) 0 5px,rgba(65,38,23,.09) 5px 8px),linear-gradient(180deg,var(--basket-hi),var(--basket-main) 62%,var(--basket-low))!important;
  border:1px solid rgba(73,43,26,.16)!important;box-shadow:inset 0 5px rgba(255,255,255,.10),inset 0 -5px rgba(51,30,18,.07),0 4px 4px rgba(49,31,19,.10)!important;
}
.room-basket .basket-shell::before{left:4px!important;right:4px!important;top:6px!important;bottom:5px!important;background:repeating-linear-gradient(90deg,rgba(255,255,255,.07) 0 3px,rgba(58,34,20,.10) 3px 7px),repeating-linear-gradient(0deg,transparent 0 6px,rgba(52,31,19,.15) 6px 8px)!important;border-radius:7px!important}
.room-basket .basket-shell::after{left:14px!important;right:14px!important;top:-13px!important;height:17px!important;border:5px solid var(--basket-low)!important;border-bottom:0!important;box-shadow:inset 0 2px rgba(255,255,255,.10)}
.room-basket .basket-ball{left:14px!important;bottom:24px!important;width:22px!important;height:22px!important;background:radial-gradient(circle at 30% 25%,#ffe98c,#e0a443 58%,#a86528)!important}
.room-basket .basket-bear{left:43px!important;bottom:23px!important;width:23px!important;height:21px!important;background:radial-gradient(circle at 38% 42%,#403027 0 1px,transparent 1.6px),radial-gradient(circle at 63% 42%,#403027 0 1px,transparent 1.6px),radial-gradient(circle at 50% 62%,#684735 0 2px,transparent 2.6px),linear-gradient(145deg,#d3a16e,#a86f43)!important;box-shadow:inset 0 4px rgba(255,255,255,.09),0 2px 2px rgba(51,32,19,.10)!important}

/* CUSCINO — tessuto, bordino e pieghe dipendono dal colore scelto. */
.room-cushion{--cush-hi:#f3c9d7;--cush-main:#d9a0b5;--cush-low:#a86f86;width:74px!important;height:57px!important}
.room-cushion.tone-rose{--cush-hi:#f3c9d7;--cush-main:#d9a0b5;--cush-low:#a86f86}
.room-cushion.tone-sky{--cush-hi:#d2e2ee;--cush-main:#a3bfd6;--cush-low:#6f91ad}
.room-cushion.tone-cream{--cush-hi:#f2e6d1;--cush-main:#dac7a9;--cush-low:#a68d69}
.room-cushion.tone-sage{--cush-hi:#cfddcf;--cush-main:#a4bba6;--cush-low:#718d76}
.room-cushion .cushion-core{
  inset:4px 2px 2px!important;border-radius:49% 51% 46% 54%!important;
  background:radial-gradient(circle at 34% 25%,var(--cush-hi),var(--cush-main) 57%,var(--cush-low))!important;
  border:1px solid rgba(87,55,47,.11)!important;box-shadow:inset 0 8px rgba(255,255,255,.16),inset 0 -7px rgba(72,42,46,.07),0 7px 9px rgba(53,34,23,.14)!important;
}
.room-cushion .cushion-core::before{width:10px!important;height:10px!important;background:linear-gradient(180deg,var(--cush-main),var(--cush-low))!important;border:1px solid rgba(67,43,38,.13)!important;box-shadow:inset 0 3px rgba(255,255,255,.14),0 1px 1px rgba(52,33,26,.11)!important}
.room-cushion .cushion-core::after{left:9px!important;right:9px!important;top:7px!important;height:14px!important;border-top:2px solid rgba(255,255,255,.18)!important;box-shadow:0 10px 0 -1px rgba(79,49,42,.06)}
.room-cushion .cushion-stitch{inset:10px 9px 7px!important;border:1px dashed rgba(83,53,45,.29)!important;box-shadow:0 0 0 2px rgba(255,255,255,.04)}

/* LAMPADE — paralume in tessuto, bulbo, metallo e luce credibile. */
.room-lamp{--shade-hi:#fae5af;--shade-main:#e5be6f;--shade-low:#bd8f42;width:56px!important;height:126px!important}
.room-lamp.tone-honey{--shade-hi:#fae5af;--shade-main:#e5be6f;--shade-low:#bd8f42}
.room-lamp.tone-rose{--shade-hi:#f0cad0;--shade-main:#d79ca9;--shade-low:#a96b7a}
.room-lamp.tone-mint{--shade-hi:#d5e6df;--shade-main:#9fc2b4;--shade-low:#6e9385}
.room-floorlamp{--shade-hi:#f8edd8;--shade-main:#dfcba4;--shade-low:#aa8e68;width:62px!important;height:162px!important}
.room-floorlamp.tone-cream{--shade-hi:#f8edd8;--shade-main:#dfcba4;--shade-low:#aa8e68}
.room-floorlamp.tone-honey{--shade-hi:#f9e1a8;--shade-main:#dfba6a;--shade-low:#a87b36}
.room-floorlamp.tone-mint{--shade-hi:#d8e8e0;--shade-main:#a7c7ba;--shade-low:#74978a}
.room-lamp .lamp-shade,.room-floorlamp .floorlamp-shade{
  clip-path:polygon(14% 0,86% 0,100% 100%,0 100%)!important;
  background:repeating-linear-gradient(90deg,rgba(255,255,255,.12) 0 2px,transparent 2px 8px),linear-gradient(110deg,var(--shade-hi),var(--shade-main) 56%,var(--shade-low))!important;
  border:1px solid rgba(92,65,38,.14)!important;box-shadow:inset 0 6px rgba(255,255,255,.18),inset -6px 0 rgba(70,47,28,.05),0 2px 2px rgba(49,32,20,.07)!important;
}
.room-lamp .lamp-shade{left:2px!important;width:52px!important;height:35px!important;border-radius:9px 9px 14px 14px!important}
.room-floorlamp .floorlamp-shade{left:3px!important;width:56px!important;height:39px!important;border-radius:11px 11px 17px 17px!important}
.room-lamp .lamp-shade::before,.room-floorlamp .floorlamp-shade::before{content:"";position:absolute;left:5px;right:5px;top:3px;height:3px;border-radius:99px;background:rgba(255,255,255,.28)}
.room-lamp .lamp-shade::after,.room-floorlamp .floorlamp-shade::after{left:6px!important;right:6px!important;bottom:4px!important;border-bottom:2px solid rgba(84,58,34,.16)!important}
.lamp-bulb,.floorlamp-bulb{position:absolute;border-radius:50%;background:radial-gradient(circle at 40% 32%,#fffbe8,#ffe59d 46%,#c8953f 100%);border:1px solid rgba(107,74,31,.16);box-shadow:inset 0 2px rgba(255,255,255,.50);z-index:-1}
.lamp-bulb{left:23px;top:29px;width:10px;height:10px}.floorlamp-bulb{left:26px;top:33px;width:11px;height:10px}
.room-lamp.is-off .lamp-bulb,.room-floorlamp.is-off .floorlamp-bulb{filter:grayscale(.65);opacity:.45;box-shadow:none}
.room.night .room-lamp:not(.is-off) .lamp-bulb,.room.night .room-floorlamp:not(.is-off) .floorlamp-bulb{box-shadow:0 0 13px 6px rgba(255,222,143,.54),inset 0 2px rgba(255,255,255,.6)}
.room-lamp .lamp-stick,.room-floorlamp .floorlamp-stick{background:linear-gradient(90deg,#5e5148,#b0a092 44%,#716258 72%,#4e443e)!important;border:1px solid rgba(61,52,46,.13);box-shadow:inset 1px 0 rgba(255,255,255,.18)}
.room-lamp .lamp-stick{left:25px!important;top:32px!important;height:73px!important}.room-floorlamp .floorlamp-stick{left:29px!important;top:36px!important;height:108px!important}
.room-lamp .lamp-base,.room-floorlamp .floorlamp-base{background:radial-gradient(ellipse at 42% 22%,#b8a697,#77685c 58%,#4f453e)!important;border:1px solid rgba(55,47,42,.14);box-shadow:inset 0 3px rgba(255,255,255,.12),0 4px 5px rgba(44,31,23,.17)!important}
.room-lamp .lamp-base{left:6px!important;width:43px!important;height:12px!important}.room-floorlamp .floorlamp-base{left:7px!important;width:47px!important;height:13px!important}

/* TAPPETO — trama intrecciata, doppio bordino e frange. */
.room-rug{--rug-hi:#d9a28d;--rug-main:#c1816b;--rug-low:#965b4d;width:270px!important;height:84px!important}
.room-rug.tone-clay{--rug-hi:#d9a28d;--rug-main:#c1816b;--rug-low:#965b4d}
.room-rug.tone-sage{--rug-hi:#b6cdbf;--rug-main:#8faf9d;--rug-low:#617f70}
.room-rug.tone-sky{--rug-hi:#b7cce0;--rug-main:#8faeca;--rug-low:#607f9c}
.room-rug.tone-lavender{--rug-hi:#d3c4df;--rug-main:#ad98c2;--rug-low:#7e6794}
.room .room-rug{
  border:0!important;
  background:
    radial-gradient(ellipse at center,rgba(255,255,255,.16),transparent 58%),
    repeating-linear-gradient(45deg,rgba(255,255,255,.035) 0 2px,transparent 2px 5px),
    repeating-linear-gradient(-45deg,rgba(62,38,30,.025) 0 2px,transparent 2px 5px),
    linear-gradient(180deg,var(--rug-hi),var(--rug-main) 58%,var(--rug-low))!important;
  box-shadow:inset 0 0 0 5px rgba(255,255,255,.10),inset 0 0 0 7px rgba(74,45,36,.09),inset 0 8px rgba(255,255,255,.05),0 8px 12px rgba(52,35,24,.10)!important;
}
.room-rug::before{inset:11px 18px!important;border:2px dotted rgba(255,255,255,.20)!important;box-shadow:inset 0 0 0 2px rgba(73,46,37,.035)}
.room-rug::after{left:24px!important;right:24px!important;bottom:-6px!important;height:7px!important;background:repeating-linear-gradient(90deg,var(--rug-low) 0 2px,transparent 2px 6px)!important;opacity:.58!important;filter:drop-shadow(0 2px 1px rgba(52,33,23,.10))}

/* OROLOGIO — cornice materica, vetro, numeri e tacche leggibili. */
.room-clock{--clock-rim:#a87550;--clock-face:#fffaf1;--clock-ink:#6e503c;width:62px!important;height:62px!important}
.room-clock.tone-cream{--clock-rim:#ad805b;--clock-face:#fffaf1;--clock-ink:#71523e}
.room-clock.tone-walnut{--clock-rim:#6d432d;--clock-face:#ead6bc;--clock-ink:#563b2b}
.room-clock.tone-sky{--clock-rim:#668ba8;--clock-face:#edf6fb;--clock-ink:#4f6e87}
.room-clock{
  padding:0!important;border:5px solid var(--clock-rim)!important;
  background:radial-gradient(circle at 35% 28%,rgba(255,255,255,.9),transparent 28%),radial-gradient(circle,var(--clock-face) 0 69%,rgba(173,151,128,.22) 70% 100%)!important;
  color:var(--clock-ink)!important;box-shadow:inset 0 0 0 2px rgba(85,59,41,.08),inset 5px 6px 10px rgba(255,255,255,.30),0 9px 12px rgba(48,32,21,.14)!important;
}
.room-clock::before{inset:8px!important;background:repeating-conic-gradient(from 0deg,var(--clock-ink) 0 1.4deg,transparent 1.4deg 30deg)!important;opacity:.58;-webkit-mask:radial-gradient(circle,transparent 0 18px,#000 18px 21px,transparent 21px)!important;mask:radial-gradient(circle,transparent 0 18px,#000 18px 21px,transparent 21px)!important}
.room-clock span,.room-clock em,.room-clock strong,.room-clock small{display:block!important;position:absolute!important;z-index:2;font-style:normal!important;font-size:calc(8px + var(--tp-text-extra,0px))!important;line-height:1!important;font-weight:950!important;color:var(--clock-ink)!important}
.room-clock span{left:50%;top:6px;transform:translateX(-50%)}.room-clock em{right:6px;top:50%;transform:translateY(-50%)}.room-clock strong{left:50%;bottom:5px;transform:translateX(-50%)}.room-clock small{left:6px;top:50%;transform:translateY(-50%)}
.room-clock i,.room-clock b{left:50%!important;top:50%!important;transform-origin:1px 1px!important;background:var(--clock-ink)!important;z-index:3!important;box-shadow:1px 0 rgba(255,255,255,.20)}
.room-clock i{height:15px!important;transform:translate(-1px,-1px) rotate(35deg)!important}.room-clock b{height:19px!important;transform:translate(-1px,-1px) rotate(125deg)!important}
.room-clock::after{width:8px!important;height:8px!important;background:radial-gradient(circle at 35% 30%,#d7b99b,var(--clock-rim) 58%,#5d4434)!important;border:1px solid rgba(68,47,34,.20)!important;z-index:4}

/* CIOTOLE — ceramica smaltata, bordo spesso e medaglione a zampa. */
.room-bowl{width:116px!important;height:62px!important;gap:10px!important;filter:drop-shadow(0 9px 6px rgba(49,31,20,.18))!important}
.room-bowl.tone-terracotta{--bowl-color:#c47758;--bowl-dark:#87472f;--bowl-rim:#d99270}
.room-bowl.tone-sage{--bowl-color:#91aa91;--bowl-dark:#5f795f;--bowl-rim:#afc1aa}
.room-bowl.tone-sky{--bowl-color:#86aecb;--bowl-dark:#557b9a;--bowl-rim:#abc9dd}
.room-bowl .pet-bowl{
  width:51px!important;height:35px!important;border-radius:10px 10px 20px 20px!important;
  background:radial-gradient(ellipse at 33% 22%,rgba(255,255,255,.28),transparent 28%),linear-gradient(110deg,var(--bowl-color),var(--bowl-rim) 44%,var(--bowl-color) 62%,var(--bowl-dark))!important;
  border:1px solid rgba(64,40,27,.16)!important;box-shadow:inset 0 7px rgba(255,255,255,.16),inset 0 -7px rgba(58,35,23,.09),0 4px 3px rgba(47,29,18,.10)!important;
}
.room-bowl .pet-bowl::before{left:3px!important;right:3px!important;top:1px!important;height:14px!important;background:radial-gradient(ellipse,rgba(53,35,25,.36),rgba(35,24,18,.24))!important;border:2px solid var(--bowl-rim)!important;box-shadow:inset 0 3px 4px rgba(25,17,13,.25),0 1px rgba(255,255,255,.24)!important}
.room-bowl .pet-bowl::after{left:18px!important;right:18px!important;bottom:5px!important;height:5px!important;background:rgba(255,255,255,.18)!important;box-shadow:none!important}
.bowl-emblem{position:absolute!important;left:50%!important;bottom:5px!important;width:12px!important;height:9px!important;transform:translateX(-50%)!important;z-index:3!important;opacity:.40}
.bowl-emblem::before{content:"";position:absolute;left:4px;bottom:0;width:5px;height:5px;border-radius:55% 55% 48% 48%;background:#fff}
.bowl-emblem::after{content:"";position:absolute;left:0;top:0;width:3px;height:3px;border-radius:50%;background:#fff;box-shadow:4px -1px #fff,8px 0 #fff}
.bowl-emblem i{display:none!important}
.pet-bowl-food .bowl-content::before{top:5px!important;height:12px!important;z-index:2}.pet-bowl-water .bowl-content::before{top:5px!important;height:12px!important;z-index:2}

/* TAPPETINO — cornice più solida, superficie tessile e angoli fissati. */
.room-pad{--pad-hi:#f4eee6;--pad-main:#ddd2c7;--pad-low:#b7a99c;width:98px!important;height:61px!important;filter:drop-shadow(0 8px 5px rgba(52,37,27,.14))!important}
.room-pad.tone-cream{--pad-hi:#f4eee6;--pad-main:#ddd2c7;--pad-low:#b7a99c}
.room-pad.tone-sky{--pad-hi:#eaf3f7;--pad-main:#cbdde5;--pad-low:#9eb8c4}
.room-pad.tone-sage{--pad-hi:#e8f0e7;--pad-main:#cbd9c8;--pad-low:#9eb39c}
.room-pad .pad-rim{background:linear-gradient(145deg,var(--pad-hi),var(--pad-main) 58%,var(--pad-low))!important;border:1px solid rgba(79,66,55,.11);box-shadow:inset 0 3px rgba(255,255,255,.58),inset 0 -3px rgba(64,50,39,.07),0 2px 2px rgba(45,33,24,.06)!important}
.room-pad .pad-rim::before{content:"";position:absolute;inset:4px;border-radius:12px;border:1px solid rgba(255,255,255,.46)}
.room-pad .pad-surface{inset:7px!important;background:repeating-linear-gradient(0deg,rgba(105,125,122,.07) 0 1px,transparent 1px 7px),repeating-linear-gradient(90deg,rgba(105,125,122,.055) 0 1px,transparent 1px 9px),linear-gradient(180deg,#fbfcfa,#edf1ed)!important;border-color:rgba(77,99,95,.11)!important;box-shadow:inset 0 2px 3px rgba(78,96,92,.08)}
.room-pad .pad-surface::before{inset:6px 8px!important;border:1px dashed rgba(92,116,111,.20)!important;box-shadow:-24px -12px 0 -5px rgba(112,125,121,.25),24px -12px 0 -5px rgba(112,125,121,.25),-24px 12px 0 -5px rgba(112,125,121,.25),24px 12px 0 -5px rgba(112,125,121,.25)}
.room-pad .pad-clean-bar{left:15px!important;right:15px!important;bottom:-7px!important;height:5px!important;border:1px solid rgba(66,54,45,.06)}

/* GIOCATTOLI — materiali più leggibili anche sul pavimento. */
.toy-floor.toy-ball-shape{width:40px!important;height:40px!important;background:radial-gradient(circle at 29% 23%,#fff1a4 0%,#efc25c 42%,#ce8935 73%,#9e5d28 100%)!important;border:1px solid rgba(111,68,29,.16)!important;box-shadow:0 8px 8px rgba(48,31,19,.20),inset 0 0 0 2px rgba(255,255,255,.19),inset -5px -5px 7px rgba(96,51,19,.08)!important}
.toy-floor.toy-ball-shape::before{left:18px!important;top:2px!important;bottom:2px!important;width:3px!important;box-shadow:0 0 0 1px rgba(122,76,30,.08)}.toy-floor.toy-ball-shape::after{left:2px!important;right:2px!important;top:18px!important;height:3px!important}
.toy-floor.toy-bear-shape{width:42px!important;height:37px!important;border-radius:18px 18px 14px 14px!important;background:radial-gradient(circle at 38% 42%,#38281f 0 1.7px,transparent 2.2px),radial-gradient(circle at 62% 42%,#38281f 0 1.7px,transparent 2.2px),radial-gradient(circle at 50% 61%,#5b3827 0 2.5px,transparent 3px),linear-gradient(145deg,#daa873,#b77646 62%,#865133)!important;border:1px solid rgba(78,46,28,.14)!important;box-shadow:0 8px 9px rgba(47,30,19,.19),inset 0 5px rgba(255,255,255,.10),inset 0 -4px rgba(64,37,23,.08)!important}
.toy-floor.toy-bear-shape::before,.toy-floor.toy-bear-shape::after{top:-7px!important;width:14px!important;height:14px!important;background:radial-gradient(circle at 38% 35%,#d39c68,#955b38)!important;border:1px solid rgba(79,46,28,.10)}

/* Finiture fisse: finestra e quadro coerenti con la nuova collezione. */
.room-window{border-color:#eee1d2!important;box-shadow:inset 0 0 0 2px rgba(74,105,121,.07),inset 7px 6px 12px rgba(255,255,255,.12),0 13px 24px rgba(55,37,24,.14)!important}
.window-sill{height:15px!important;background:linear-gradient(180deg,#faf1e7,#d8c4b0 68%,#b99e87)!important;border:1px solid rgba(94,71,52,.10);box-shadow:inset 0 3px rgba(255,255,255,.38),0 6px 8px rgba(53,36,24,.12)!important}
.window-curtain{background:repeating-linear-gradient(90deg,rgba(255,255,255,.09) 0 4px,transparent 4px 11px),linear-gradient(90deg,#dfbba4,#c98f73 56%,#a96a52)!important;box-shadow:inset -6px 0 rgba(75,43,31,.07),inset 5px 0 rgba(255,255,255,.08),0 6px 12px rgba(55,37,25,.10)!important}
.window-curtain::before{content:"";position:absolute;left:4px;right:4px;top:55%;height:9px;border-radius:99px;background:linear-gradient(180deg,#d6b793,#9f7056);box-shadow:inset 0 2px rgba(255,255,255,.16),0 2px 2px rgba(52,34,23,.10)}
.window-curtain::after{content:"";position:absolute;left:7px;right:7px;bottom:5px;height:1px;border-top:1px dashed rgba(255,255,255,.22)}
.wall-art{width:74px!important;height:66px!important;border:8px solid #9d6d49!important;background:linear-gradient(145deg,#f7ead8,#d9c09e)!important;box-shadow:inset 0 0 0 2px rgba(255,255,255,.13),0 10px 14px rgba(53,35,22,.15)!important}
.wall-art::before{inset:3px!important;border:2px solid rgba(255,255,255,.52)!important;background:radial-gradient(circle at 50% 35%,rgba(255,255,255,.22),transparent 52%)}
.wall-art span{width:43px!important;height:35px!important;background:radial-gradient(circle at 50% 45%,#fff7df,#edd7b4 70%)!important;color:#a27045!important;text-shadow:0 1px rgba(255,255,255,.60);box-shadow:inset 0 0 0 1px rgba(120,82,49,.10)!important}

/* Ombre di contatto uniformi e resa notturna senza perdere i materiali. */
.room:not(.arranging) .room-shelf,.room:not(.arranging) .room-dresser,.room:not(.arranging) .room-nightstand,.room:not(.arranging) .room-stool,.room:not(.arranging) .room-plant,.room:not(.arranging) .room-basket,.room:not(.arranging) .room-cushion,.room:not(.arranging) .room-lamp,.room:not(.arranging) .room-floorlamp,.room:not(.arranging) .room-bowl,.room:not(.arranging) .room-pad{filter:drop-shadow(0 9px 6px rgba(49,31,19,.16))!important}
.room.night .room-object:not(.hidden){filter:drop-shadow(0 10px 7px rgba(7,9,14,.27)) brightness(.97)}
.room.night.night-lighting-on .room-object:not(.hidden){filter:drop-shadow(0 10px 8px rgba(7,9,14,.25)) brightness(1.01)}
.room.arranging .room-object.selected-object{filter:drop-shadow(0 0 8px rgba(255,235,176,.52)) brightness(1.04)!important}
@media(max-width:390px){
  .room-bed{width:194px!important}
  .room-shelf{transform-origin:center bottom}
  .room-clock{width:58px!important;height:58px!important}
}

/* Mantieni colori scelti dall'utente su ogni modello di cuccia. */
.room .room-bed .bed-blanket{
  background:repeating-linear-gradient(105deg,transparent 0 10px,rgba(255,255,255,.045) 11px 12px),linear-gradient(145deg,var(--bed-accent-hi),var(--bed-accent) 58%,var(--bed-accent-low))!important;
}
.room.bed-deluxe .room-bed .bed-matress{background:radial-gradient(ellipse at 42% 25%,#fffdf8 0%,#f5e7d3 58%,#d6b88f 100%)!important}

/* Le tende continuano a seguire il tema della parete. */
.room{--curtain-hi:#e7c5af;--curtain-main:#c99074;--curtain-low:#a96a52}
.room.theme-mint{--curtain-hi:#c4dad1;--curtain-main:#8db5a8;--curtain-low:#648f82}
.room.theme-sky{--curtain-hi:#c8d4e7;--curtain-main:#94abcd;--curtain-low:#6d84ab}
.room.theme-peach{--curtain-hi:#efc9c1;--curtain-main:#cf9b92;--curtain-low:#ad706b}
.room.theme-night{--curtain-hi:#8c8ba4;--curtain-main:#68677e;--curtain-low:#47475c}
.window-curtain{background:repeating-linear-gradient(90deg,rgba(255,255,255,.09) 0 4px,transparent 4px 11px),linear-gradient(90deg,var(--curtain-hi),var(--curtain-main) 56%,var(--curtain-low))!important}


/* =========================================================
   TinyPal v8.56 — LOTTI COMUNITARI COMPLETAMENTE RIDISEGNATI
   Parco, negozio, veterinario, piazza e laghetto.
   ========================================================= */

/* Scena comune: maggiore profondità, riflessi e finitura soft-3D. */
.city-location-scene{
  height:410px;
  isolation:isolate;
  border:1px solid rgba(54,67,55,.12);
  box-shadow:
    inset 0 1px rgba(255,255,255,.72),
    inset 0 -24px 40px rgba(44,55,45,.06),
    0 14px 30px rgba(47,54,43,.09);
}
.city-location-scene::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:7;
  border-radius:inherit;
  pointer-events:none;
  background:
    linear-gradient(115deg,rgba(255,255,255,.11),transparent 28%),
    radial-gradient(ellipse at 50% 105%,transparent 45%,rgba(45,53,45,.07) 100%);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.20);
}
.city-location-sky{
  z-index:0;
  height:45%;
  overflow:hidden;
  background:linear-gradient(180deg,var(--community-sky-top,#a9d5e9),var(--community-sky-low,#e2eedf));
}
.city-location-sky::after{
  content:"";
  position:absolute;
  left:-10%;
  right:-10%;
  bottom:-19px;
  height:48px;
  border-radius:50%;
  background:rgba(255,255,255,.11);
  filter:blur(10px);
}
.city-location-sun{
  width:42px;
  height:42px;
  background:radial-gradient(circle at 35% 30%,#fff6c8,#f5d66e 64%,#ddb74b);
  box-shadow:0 0 0 12px rgba(249,220,118,.15),0 0 30px rgba(249,220,118,.20);
}
.city-location-sun::after{
  content:"";
  position:absolute;
  left:9px;
  top:7px;
  width:12px;
  height:7px;
  border-radius:50%;
  background:rgba(255,255,255,.43);
  transform:rotate(-24deg);
}
.city-location-cloud{
  box-shadow:0 5px 13px rgba(80,117,130,.08);
}
.city-location-scene.season-spring{--community-sky-top:#b7dceb;--community-sky-low:#e6f0e3}
.city-location-scene.season-summer{--community-sky-top:#96cfe7;--community-sky-low:#e3f1dd}
.city-location-scene.season-autumn{--community-sky-top:#b9cfd8;--community-sky-low:#e8dfcf}
.city-location-scene.season-winter{--community-sky-top:#c6dae4;--community-sky-low:#edf2f2}
.city-location-scene.night{--community-sky-top:#263653;--community-sky-low:#526671}
.city-location-scene.night .city-location-sun{
  background:radial-gradient(circle at 35% 30%,#fffef0,#e8e4c8 68%,#bcb9a4);
  box-shadow:0 0 0 10px rgba(236,234,211,.07),0 0 22px rgba(213,223,229,.14);
}
.location-decor{
  position:absolute;
  inset:0;
  z-index:2;
  overflow:hidden;
  pointer-events:none;
}
.city-location-scene.place-park .location-park-decor,
.city-location-scene.place-shop .location-shop-decor,
.city-location-scene.place-square .location-square-decor,
.city-location-scene.place-lake .location-lake-decor,
.city-location-scene.place-vet .location-vet-decor{display:block}
.city-location-label,
.city-location-weather-badge{
  border:1px solid rgba(60,70,62,.08);
  background:rgba(255,255,255,.88);
  box-shadow:0 9px 24px rgba(42,54,44,.12),inset 0 1px rgba(255,255,255,.75);
}
.city-location-label>span{
  background:linear-gradient(145deg,#f8faf6,#e8eee7);
  box-shadow:inset 0 1px rgba(255,255,255,.8);
}

/* ------------------------- PARCO ------------------------- */
.city-location-scene.place-park{
  --park-hill-far:#9cc589;
  --park-hill-near:#7eb36c;
  --park-grass:#83b96d;
  --park-path-hi:#decaa3;
  --park-path-low:#b99c73;
  background:linear-gradient(#cfe1c6 0 39%,var(--park-grass) 39% 100%);
}
.city-location-scene.place-park.season-spring{
  --park-hill-far:#a9cf91;--park-hill-near:#80b96f;--park-grass:#8bc574;
  --park-path-hi:#e3cda8;--park-path-low:#bca078;
}
.city-location-scene.place-park.season-summer{
  --park-hill-far:#92c17a;--park-hill-near:#6eaa5c;--park-grass:#7eb762;
  --park-path-hi:#e2c696;--park-path-low:#b79262;
}
.city-location-scene.place-park.season-autumn{
  --park-hill-far:#b3a975;--park-hill-near:#92955b;--park-grass:#a3a66a;
  --park-path-hi:#d7b989;--park-path-low:#a9875f;
}
.city-location-scene.place-park.season-winter{
  --park-hill-far:#d2dbd2;--park-hill-near:#bac7ba;--park-grass:#e2e8e2;
  --park-path-hi:#d9d6cd;--park-path-low:#b5b4ac;
}
.park-depth{position:absolute;inset:0;z-index:0}
.park-hill{
  position:absolute;
  display:block;
  bottom:47%;
  border-radius:52% 52% 0 0;
  filter:drop-shadow(0 -4px 7px rgba(58,94,52,.06));
}
.park-hill::after{
  content:"";
  position:absolute;
  left:18%;
  top:18%;
  width:34%;
  height:13%;
  border-radius:50%;
  background:rgba(255,255,255,.10);
  transform:rotate(-9deg);
}
.park-hill.ph-a{left:-17%;width:74%;height:91px;background:var(--park-hill-far)}
.park-hill.ph-b{right:-19%;width:81%;height:108px;background:var(--park-hill-near)}
.park-path{
  position:absolute;
  left:50%;
  bottom:-36px;
  width:184px;
  height:272px;
  transform:translateX(-50%);
  clip-path:polygon(44% 0,56% 0,96% 100%,4% 100%);
  background:
    radial-gradient(circle at 26% 54%,rgba(118,91,60,.10) 0 2px,transparent 2.5px),
    radial-gradient(circle at 70% 70%,rgba(255,255,255,.22) 0 3px,transparent 3.5px),
    linear-gradient(90deg,var(--park-path-low),var(--park-path-hi) 44%,var(--park-path-low));
  opacity:.96;
  box-shadow:inset 14px 0 18px rgba(87,65,44,.08),inset -14px 0 18px rgba(87,65,44,.07);
}
.park-fence{
  position:absolute;
  bottom:46%;
  width:34%;
  height:37px;
  opacity:.72;
  background:
    linear-gradient(180deg,transparent 7px,#f0e6d2 8px 13px,transparent 14px 24px,#d6c5a9 25px 30px,transparent 31px),
    repeating-linear-gradient(90deg,transparent 0 20px,#e4d7bf 20px 26px,transparent 26px 43px);
  filter:drop-shadow(0 4px 2px rgba(82,66,47,.10));
}
.park-fence::before{
  content:"";
  position:absolute;
  inset:0;
  background:repeating-linear-gradient(90deg,transparent 0 20px,rgba(255,255,255,.30) 20px 22px,transparent 22px 43px);
}
.park-fence.pf-a{left:0}.park-fence.pf-b{right:0;transform:scaleX(-1)}
.location-tree{z-index:3;filter:drop-shadow(0 10px 8px rgba(42,74,39,.14))}
.location-tree i{
  background:linear-gradient(90deg,#60442f,#8f6747 48%,#5f412e);
  box-shadow:inset 3px 0 rgba(255,255,255,.10);
}
.location-tree i::before,.location-tree i::after{
  content:"";
  position:absolute;
  top:11px;
  width:26px;
  height:8px;
  border-radius:999px;
  background:#76533a;
}
.location-tree i::before{left:-17px;transform:rotate(37deg)}
.location-tree i::after{right:-17px;top:19px;transform:rotate(-36deg)}
.location-tree b{
  border:1px solid rgba(42,88,39,.08);
  filter:drop-shadow(0 4px 4px rgba(44,78,41,.10));
}
.location-tree b::before,.location-tree b::after{
  content:"";
  position:absolute;
  border-radius:50%;
  background:rgba(255,255,255,.10);
}
.location-tree b::before{left:14px;top:12px;width:27px;height:16px;transform:rotate(-22deg)}
.location-tree b::after{right:9px;bottom:15px;width:17px;height:12px;opacity:.55}
.location-tree.lt-a{left:3%;bottom:58px;transform:scale(1.08)}
.location-tree.lt-b{right:2%;bottom:68px;transform:scale(.90)}
.location-park-bench{
  z-index:5;
  right:16%;
  bottom:68px;
  width:88px;
  height:39px;
  border:0;
  border-radius:5px 5px 2px 2px;
  background:
    linear-gradient(180deg,#9b704c 0 7px,transparent 7px 12px,#885f42 12px 20px,transparent 20px 26px,#9a6e49 26px 33px,transparent 33px),
    linear-gradient(90deg,transparent 0 8px,#4e514b 8px 12px,transparent 12px 76px,#4e514b 76px 80px,transparent 80px);
  box-shadow:0 7px 7px rgba(52,41,30,.12);
}
.location-park-bench::before,.location-park-bench::after{
  bottom:-12px;
  width:7px;
  height:22px;
  border-radius:2px;
  background:linear-gradient(90deg,#444944,#72766e,#3d423e);
}
.location-park-bench::before{left:13px}.location-park-bench::after{right:13px}
.location-fountain{
  z-index:5;
  left:24%;
  bottom:67px;
  width:32px;
  height:63px;
  overflow:visible;
  border-radius:8px 8px 11px 11px;
  background:linear-gradient(90deg,#8d9691,#c8ceca 46%,#848d89);
  box-shadow:inset 3px 0 rgba(255,255,255,.28),0 8px 8px rgba(54,61,55,.16);
}
.location-fountain::before{
  left:50%;
  top:-7px;
  bottom:auto;
  width:49px;
  height:23px;
  transform:translateX(-50%);
  border-radius:50%;
  border:0;
  background:radial-gradient(ellipse at 50% 42%,#8bcfe0 0 30%,#627c80 32% 38%,#d8dbd5 40% 67%,#8b928e 69%);
  box-shadow:inset 0 3px rgba(255,255,255,.42),0 3px 3px rgba(52,57,54,.12);
  animation:none;
}
.location-fountain::after{
  left:50%;
  top:-18px;
  width:16px;
  height:16px;
  transform:translateX(-22%);
  border:3px solid #77c3da;
  border-left-color:transparent;
  border-bottom-color:transparent;
  border-radius:50%;
  background:transparent;
  animation:parkWaterArc 2.2s ease-in-out infinite;
}
@keyframes parkWaterArc{50%{transform:translate(-22%,-2px) scale(.92);opacity:.72}}
.location-fountain span{display:none}
.location-bush{z-index:3;filter:drop-shadow(0 6px 5px rgba(50,79,43,.10))}
.location-bush.lb-a{left:35%;bottom:53px}.location-bush.lb-b{right:32%;bottom:48px}
.park-entry-sign{
  position:absolute;
  left:7%;
  bottom:78px;
  z-index:5;
  width:81px;
  min-height:39px;
  padding:7px 5px 6px;
  border:3px solid #7b573a;
  border-radius:8px;
  background:linear-gradient(145deg,#efe0bb,#c9aa77);
  color:#5c432f;
  text-align:center;
  box-shadow:inset 0 2px rgba(255,255,255,.34),0 6px 6px rgba(54,38,24,.14);
}
.park-entry-sign::after{
  content:"";
  position:absolute;
  left:10px;
  right:10px;
  bottom:-24px;
  height:24px;
  background:linear-gradient(90deg,#6c4b34 0 7px,transparent 7px calc(100% - 7px),#6c4b34 calc(100% - 7px));
}
.park-entry-sign i{
  display:block;
  width:13px;
  height:9px;
  margin:0 auto 2px;
  border-radius:50% 50% 42% 42%;
  background:#7c5a3e;
  box-shadow:-7px -3px 0 -4px #7c5a3e,0 -6px 0 -4px #7c5a3e,7px -3px 0 -4px #7c5a3e;
}
.park-entry-sign strong{display:block;font-size:calc(8px + var(--tp-text-extra,0px));line-height:1;letter-spacing:.08em}
.park-entry-sign small{display:block;margin-top:2px;font-size:calc(6.5px + var(--tp-text-extra,0px));line-height:1;font-weight:900;opacity:.7}
.park-bin{
  position:absolute;
  right:7%;
  bottom:56px;
  z-index:5;
  width:23px;
  height:40px;
  border-radius:5px 5px 8px 8px;
  background:linear-gradient(90deg,#3f6256,#66877b 48%,#38584e);
  box-shadow:inset 3px 0 rgba(255,255,255,.12),0 7px 6px rgba(41,51,45,.14);
}
.park-bin::before{content:"";position:absolute;left:-3px;right:-3px;top:-5px;height:7px;border-radius:4px;background:#314b43}
.park-bin i{position:absolute;left:8px;top:9px;width:7px;height:11px;border:1px solid rgba(255,255,255,.5);border-radius:2px}
.park-flower-bed{
  position:absolute;
  z-index:5;
  bottom:25px;
  display:flex;
  gap:7px;
  align-items:end;
  height:27px;
}
.park-flower-bed.pfb-a{left:6%}.park-flower-bed.pfb-b{right:7%}
.park-flower-bed i{
  position:relative;
  display:block;
  width:3px;
  height:16px;
  border-radius:3px;
  background:#50804b;
  transform:scale(var(--flower-scale,1));
}
.park-flower-bed i::before{
  content:"";
  position:absolute;
  left:50%;
  top:-5px;
  width:9px;
  height:9px;
  transform:translateX(-50%);
  border-radius:50%;
  background:radial-gradient(circle,#f5cf64 0 24%,#f2a2ac 26% 58%,#d87587 60%);
  box-shadow:0 2px 3px rgba(72,46,39,.10);
}
.park-flower-bed i:nth-child(2n){--flower-scale:.82}
.park-flower-bed i:nth-child(3n)::before{background:radial-gradient(circle,#f6d66d 0 24%,#a9c8e8 26% 58%,#779fc9 60%)}
.season-winter .park-flower-bed{opacity:.20;filter:grayscale(.8)}
.season-autumn .park-flower-bed{opacity:.52;filter:saturate(.75)}

/* ---------------------- NEGOZIO ANIMALI ---------------------- */
.city-location-scene.place-shop{
  background:linear-gradient(#eee6d9 0 31%,#e7dccd 31% 72%,#a97958 72% 100%);
}
.shop-interior{position:absolute;inset:0;z-index:0}
.shop-interior::before{
  content:"";
  position:absolute;
  left:3%;
  right:3%;
  top:68px;
  bottom:111px;
  border:1px solid rgba(129,97,72,.11);
  border-radius:15px 15px 3px 3px;
  background:
    radial-gradient(circle at 18px 18px,rgba(155,105,82,.055) 0 3px,transparent 3.5px) 0 0/38px 38px,
    linear-gradient(180deg,rgba(255,255,255,.22),rgba(255,255,255,.04));
  box-shadow:inset 0 1px rgba(255,255,255,.5);
}
.shop-interior::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:28%;
  background:
    repeating-linear-gradient(100deg,transparent 0 37px,rgba(75,48,34,.11) 38px 40px),
    linear-gradient(180deg,rgba(255,255,255,.08),rgba(80,50,34,.07));
  box-shadow:inset 0 5px 0 rgba(96,63,44,.10);
}
.shop-wall-panel{
  position:absolute;
  left:0;
  right:0;
  top:68%;
  height:7px;
  background:linear-gradient(180deg,#9c7458,#6f4d39);
  box-shadow:0 3px 6px rgba(63,42,31,.12);
}
.shop-floor-mat{
  position:absolute;
  left:50%;
  bottom:21px;
  width:178px;
  height:62px;
  transform:translateX(-50%);
  border-radius:50%;
  background:
    radial-gradient(circle at 50% 45%,rgba(255,255,255,.18),transparent 42%),
    repeating-linear-gradient(45deg,rgba(255,255,255,.035) 0 3px,transparent 3px 7px),
    #75584b;
  border:4px solid #5f473d;
  box-shadow:inset 0 0 0 3px rgba(224,197,164,.13),0 7px 9px rgba(63,40,29,.15);
}
.shop-ceiling-light{
  position:absolute;
  top:-4px;
  width:66px;
  height:49px;
  z-index:1;
}
.shop-ceiling-light.scl-a{left:13%}.shop-ceiling-light.scl-b{right:13%}
.shop-ceiling-light::before{content:"";position:absolute;left:50%;top:0;width:2px;height:23px;background:#65594f}
.shop-ceiling-light i{
  position:absolute;
  left:13px;
  top:20px;
  width:40px;
  height:21px;
  border-radius:50% 50% 10px 10px;
  background:linear-gradient(110deg,#c98662,#9d5d43);
  box-shadow:inset 0 3px rgba(255,255,255,.17),0 3px 4px rgba(74,48,35,.12);
}
.shop-ceiling-light i::after{
  content:"";
  position:absolute;
  left:7px;
  right:7px;
  bottom:-15px;
  height:18px;
  border-radius:50%;
  background:rgba(255,224,153,.23);
  filter:blur(7px);
}
.shop-wall-sign{
  top:16px;
  min-width:150px;
  padding:9px 13px 8px;
  border:1px solid rgba(96,55,37,.18);
  border-radius:14px;
  background:linear-gradient(145deg,#bd7f5f,#8b543d);
  box-shadow:inset 0 2px rgba(255,255,255,.16),0 8px 0 rgba(91,55,39,.13),0 11px 17px rgba(69,44,31,.10);
  display:grid;
  grid-template-columns:23px auto;
  grid-template-rows:auto auto;
  column-gap:7px;
  align-items:center;
  text-align:left;
}
.shop-wall-sign i{
  grid-row:1/3;
  position:relative;
  width:19px;
  height:15px;
  border-radius:50% 50% 44% 44%;
  background:#f6e4ce;
  box-shadow:-8px -4px 0 -5px #f6e4ce,0 -8px 0 -5px #f6e4ce,8px -4px 0 -5px #f6e4ce;
}
.shop-wall-sign strong{font-size:calc(11.5px + var(--tp-text-extra,0px));line-height:1;letter-spacing:.13em;color:#fff6e9}
.shop-wall-sign small{font-size:calc(7.5px + var(--tp-text-extra,0px));line-height:1;letter-spacing:.22em;color:rgba(255,246,233,.72);font-weight:900}
.shop-category-tag{
  position:absolute;
  top:75px;
  z-index:4;
  min-width:58px;
  padding:4px 7px;
  border-radius:6px 6px 2px 2px;
  background:#715242;
  color:#fff4e6;
  text-align:center;
  font-size:calc(7.5px + var(--tp-text-extra,0px));
  font-weight:950;
  letter-spacing:.12em;
  box-shadow:0 3px 4px rgba(61,40,29,.11);
}
.shop-category-tag.sct-food{left:8%}.shop-category-tag.sct-play{right:8%}
.shop-shelf{
  top:90px;
  z-index:3;
  width:82px;
  height:145px;
  border:7px solid #8d654b;
  border-top-width:9px;
  border-radius:4px 4px 7px 7px;
  background:linear-gradient(90deg,#cda487,#e0bea0 45%,#bb8e70);
  box-shadow:inset 0 -40px rgba(255,255,255,.08),inset 0 -82px rgba(255,255,255,.06),0 10px 15px rgba(75,49,34,.14);
}
.shop-shelf::before,.shop-shelf::after{height:6px;background:linear-gradient(180deg,#9d7356,#704d39);box-shadow:0 2px 2px rgba(64,42,31,.10)}
.shop-shelf.shelf-one{left:5%}.shop-shelf.shelf-two{right:5%}
.shop-shelf i{left:10px;top:9px;width:23px;height:28px;border-radius:5px 5px 8px 8px;background:linear-gradient(180deg,#f8f3e9,#d9d0c1);border:2px solid #b79f7e;box-shadow:31px 2px 0 -3px #d57767}
.shop-shelf i::before{left:4px;right:4px;top:6px;height:6px;background:#79aa6e;box-shadow:30px 5px 0 0 #f0c458}
.shop-shelf b{left:9px;top:53px;width:24px;height:24px;box-shadow:35px 3px 0 -5px #d98c84}
.shop-shelf em{left:11px;bottom:10px;width:28px;height:22px;box-shadow:34px -1px 0 -4px #8da985}
.shop-counter{
  right:20%;
  bottom:42px;
  z-index:4;
  width:116px;
  height:65px;
  border-top:10px solid #674535;
  border-radius:11px 11px 5px 5px;
  background:
    linear-gradient(90deg,transparent 48%,rgba(86,53,37,.18) 49% 51%,transparent 52%),
    linear-gradient(145deg,#b17a59,#8e6046);
  box-shadow:inset 0 3px rgba(255,255,255,.12),0 11px 15px rgba(67,43,30,.16);
}
.shop-counter::before{
  left:12px;
  top:8px;
  width:35px;
  height:23px;
  border-radius:6px;
  background:linear-gradient(180deg,#6e7471 0 65%,#343d3c 66%);
  box-shadow:inset 0 0 0 3px #d8d8d1,0 3px 3px rgba(55,43,35,.12);
}
.shop-counter::after{
  right:13px;
  top:12px;
  width:24px;
  height:18px;
  border-radius:5px;
  background:radial-gradient(circle at 50% 47%,#f3dfbe 0 23%,transparent 25%),#704d3d;
  box-shadow:0 0 0 2px rgba(255,255,255,.13);
}
.shop-display{
  left:16%;
  bottom:49px;
  z-index:5;
  padding:11px 12px;
  border-radius:14px;
  background:linear-gradient(145deg,rgba(255,255,255,.78),rgba(234,218,199,.70));
  border:1px solid rgba(119,85,60,.14);
  box-shadow:0 8px 11px rgba(69,45,32,.10),inset 0 1px rgba(255,255,255,.65);
}
.shop-checkout-details{
  position:absolute;
  right:23%;
  bottom:84px;
  z-index:6;
  width:81px;
  height:31px;
}
.shop-checkout-details i{
  position:absolute;
  left:4px;
  top:1px;
  width:28px;
  height:20px;
  border-radius:5px;
  border:3px solid #777a75;
  background:linear-gradient(160deg,#cde1d5,#6f9283 70%);
  box-shadow:0 3px 3px rgba(45,39,33,.13);
}
.shop-checkout-details b{
  position:absolute;
  left:39px;
  top:2px;
  width:21px;
  height:25px;
  border-radius:3px 3px 8px 8px;
  background:linear-gradient(180deg,#f5ead5,#d7be95);
  box-shadow:0 0 0 2px #aa8960;
}
.shop-checkout-details span{
  position:absolute;
  right:2px;
  top:8px;
  width:10px;
  height:15px;
  border-radius:2px;
  background:repeating-linear-gradient(0deg,#f8f3e8 0 3px,#c9bda7 3px 4px);
  transform:rotate(8deg);
}
.shop-basket-stack{
  position:absolute;
  left:5%;
  bottom:35px;
  z-index:4;
  width:50px;
  height:34px;
  border:4px solid #7e5a46;
  border-top:0;
  border-radius:3px 3px 10px 10px;
  background:repeating-linear-gradient(0deg,transparent 0 7px,rgba(255,255,255,.20) 7px 9px),#b97c5e;
  box-shadow:9px 6px 0 -2px #98654e,0 7px 8px rgba(65,41,29,.13);
}
.shop-basket-stack::before{
  content:"";
  position:absolute;
  left:8px;
  right:8px;
  top:-12px;
  height:18px;
  border:4px solid #7e5a46;
  border-bottom:0;
  border-radius:11px 11px 0 0;
}
.shop-basket-stack i,.shop-basket-stack b{display:none}
.city-location-scene.night.place-shop .shop-ceiling-light i::after{background:rgba(255,216,124,.36)}

/* ------------------------ VETERINARIO ------------------------ */
.city-location-scene.place-vet{
  background:linear-gradient(#e8f1ef 0 33%,#e8e9e3 33% 74%,#a9afab 74% 100%);
}
.vet-interior{position:absolute;inset:0;z-index:0}
.vet-interior::before{
  content:"";
  position:absolute;
  left:2.5%;
  right:2.5%;
  top:69px;
  bottom:107px;
  border-radius:15px 15px 2px 2px;
  border:1px solid rgba(88,118,110,.10);
  background:
    linear-gradient(90deg,transparent 0 49.6%,rgba(99,126,119,.06) 50%,transparent 50.4%),
    linear-gradient(180deg,rgba(255,255,255,.26),rgba(255,255,255,.04));
  box-shadow:inset 0 1px rgba(255,255,255,.65);
}
.vet-interior::after{
  content:"";
  position:absolute;
  inset:74% 0 0;
  background:
    linear-gradient(35deg,transparent 48%,rgba(84,95,91,.09) 49% 51%,transparent 52%) 0 0/54px 37px,
    linear-gradient(-35deg,transparent 48%,rgba(84,95,91,.07) 49% 51%,transparent 52%) 0 0/54px 37px,
    linear-gradient(180deg,#bac0bc,#9ca39f);
  box-shadow:inset 0 5px 0 rgba(74,87,82,.08);
}
.vet-wall-rail{
  position:absolute;
  left:0;
  right:0;
  top:69%;
  height:8px;
  background:linear-gradient(180deg,#87a9a1,#668b82);
  box-shadow:0 4px 5px rgba(56,72,67,.11);
}
.vet-floor-mat{
  position:absolute;
  left:50%;
  bottom:19px;
  width:165px;
  height:56px;
  transform:translateX(-50%);
  border-radius:50%;
  background:radial-gradient(ellipse at 50% 45%,#dce9e4,#a8bfb7 72%);
  border:4px solid #75968e;
  box-shadow:inset 0 0 0 3px rgba(255,255,255,.23),0 7px 8px rgba(49,64,59,.12);
}
.vet-ceiling-light{
  position:absolute;
  left:50%;
  top:0;
  width:108px;
  height:45px;
  transform:translateX(-50%);
}
.vet-ceiling-light::before{content:"";position:absolute;left:50%;top:0;width:2px;height:17px;background:#78908a}
.vet-ceiling-light i{
  position:absolute;
  left:10px;
  top:14px;
  width:88px;
  height:16px;
  border-radius:6px 6px 12px 12px;
  background:linear-gradient(180deg,#eef5f2,#aebdb8);
  border:1px solid rgba(65,87,80,.13);
  box-shadow:inset 0 3px rgba(255,255,255,.70),0 4px 5px rgba(53,71,66,.11);
}
.vet-ceiling-light i::after{
  content:"";
  position:absolute;
  left:8px;
  right:8px;
  bottom:-18px;
  height:20px;
  border-radius:50%;
  background:rgba(198,242,224,.19);
  filter:blur(8px);
}
.vet-wall-sign{
  top:17px;
  min-width:158px;
  padding:9px 15px;
  border:1px solid rgba(73,111,100,.14);
  background:linear-gradient(145deg,rgba(247,252,249,.97),rgba(214,232,224,.96))!important;
  color:#456d61;
  box-shadow:inset 0 1px rgba(255,255,255,.75),0 8px 16px rgba(51,76,69,.11);
}
.vet-wall-sign strong{font-size:calc(10.5px + var(--tp-text-extra,0px));letter-spacing:.14em}
.vet-cabinet{
  top:87px;
  z-index:3;
  width:78px;
  height:137px;
  border:5px solid #aebfba;
  border-radius:9px;
  background:
    linear-gradient(90deg,rgba(255,255,255,.32),transparent 25% 75%,rgba(78,103,96,.05)),
    rgba(242,247,244,.94);
  box-shadow:inset 0 -45px rgba(127,170,157,.08),inset 0 -90px rgba(127,170,157,.05),0 9px 14px rgba(54,72,66,.11);
}
.vet-cabinet::before,.vet-cabinet::after{height:5px;background:linear-gradient(180deg,#bdcbc7,#8fa59f)}
.vet-cabinet-a{left:4%}.vet-cabinet-b{right:4%}
.vet-cabinet i::after,.vet-cabinet b::after{content:none!important}
.vet-cabinet i,.vet-cabinet b{
  position:absolute;
  display:block;
  border-radius:4px 4px 7px 7px;
}
.vet-cabinet i{
  left:10px;
  top:8px;
  width:18px;
  height:27px;
  background:linear-gradient(180deg,#e9f4ef 0 25%,#82ae9f 26% 100%);
  box-shadow:33px 3px 0 -3px #dcae76,3px 47px 0 -2px #a9c6d5;
}
.vet-cabinet i::before{
  content:"";
  position:absolute;
  left:4px;
  right:4px;
  top:-4px;
  height:6px;
  border-radius:3px;
  background:#678d82;
  box-shadow:33px 7px 0 -1px #a47b53,3px 49px 0 -1px #7396a7;
}
.vet-cabinet b{
  right:9px;
  top:51px;
  width:28px;
  height:18px;
  background:linear-gradient(180deg,#f2e9d7,#d9c49e);
  box-shadow:-32px 45px 0 -2px #d6e2dd;
}
.vet-cabinet b::before{
  content:"";
  position:absolute;
  left:5px;
  right:5px;
  top:5px;
  height:4px;
  border-radius:4px;
  background:#77a091;
  box-shadow:-31px 45px 0 #88a7a0;
}
.vet-exam-table{
  z-index:5;
  bottom:47px;
  width:130px;
  height:63px;
  border:0;
  border-top:11px solid #709b91;
  border-radius:20px 20px 8px 8px;
  background:linear-gradient(90deg,#b9cbc5,#e4ece8 46%,#a6bbb4);
  box-shadow:inset 0 4px rgba(255,255,255,.28),0 9px 0 rgba(70,84,79,.08),0 14px 17px rgba(54,70,64,.10);
}
.vet-exam-table::before{
  left:50%;
  top:-8px;
  width:112px;
  height:20px;
  border:1px solid rgba(71,104,95,.12);
  border-radius:999px;
  background:linear-gradient(180deg,#e8f3ef,#b8d0c8);
  box-shadow:inset 0 4px rgba(255,255,255,.48);
}
.vet-exam-table::after{bottom:-18px;height:18px;background:linear-gradient(90deg,#738f88,#aec0ba,#687f79)}
.vet-scale{
  left:22%;
  bottom:48px;
  z-index:5;
  width:58px;
  height:34px;
  border:1px solid rgba(74,91,84,.10);
  border-radius:11px;
  background:linear-gradient(145deg,#edf1ef,#afb7b3);
  box-shadow:inset 0 2px rgba(255,255,255,.48),0 7px 7px rgba(53,65,60,.11);
}
.vet-scale::before{width:27px;height:27px;background:radial-gradient(circle,#fafcfb 0 48%,#c3d0cc 50% 65%,#81968f 67%)}
.vet-scale::after{width:10px;height:2px;background:#5e7770}
.vet-monitor{
  right:20%;
  top:111px;
  z-index:5;
  width:73px;
  height:50px;
  border:5px solid #7f9992;
  border-radius:10px;
  background:linear-gradient(145deg,#314746,#1f2f2f);
  box-shadow:inset 0 0 8px rgba(100,218,171,.10),0 7px 9px rgba(46,58,54,.14);
}
.vet-monitor::before{width:47px;height:18px}
.vet-monitor i{left:8px;right:8px;bottom:5px;background:#78d4b1}
.vet-stool{
  right:19%;
  bottom:48px;
  z-index:4;
  width:46px;
  height:23px;
  border:1px solid rgba(55,80,74,.10);
  background:radial-gradient(ellipse at 45% 28%,#a8c1ba,#6f9188 70%);
  box-shadow:0 22px 0 -17px #526b65,0 7px 7px rgba(53,68,63,.12);
}
.vet-xray{
  position:absolute;
  left:26%;
  top:93px;
  z-index:4;
  width:58px;
  height:72px;
  border:5px solid #8fa9a2;
  border-radius:8px;
  background:radial-gradient(circle at 50% 48%,rgba(119,208,208,.14),transparent 48%),#31525c;
  box-shadow:inset 0 0 0 3px rgba(174,232,226,.09),0 6px 8px rgba(46,67,68,.12);
}
.vet-xray::before{
  content:"";
  position:absolute;
  left:50%;
  top:15px;
  width:17px;
  height:29px;
  transform:translateX(-50%);
  border-radius:45% 45% 52% 52%;
  border:3px solid rgba(196,238,231,.69);
  border-top-width:5px;
}
.vet-xray::after{
  content:"";
  position:absolute;
  left:14px;
  right:14px;
  bottom:11px;
  height:4px;
  border-radius:99px;
  background:rgba(196,238,231,.58);
  box-shadow:0 -7px rgba(196,238,231,.28);
}
.vet-xray i,.vet-xray b{display:none}
.vet-cart{
  position:absolute;
  right:4%;
  bottom:47px;
  z-index:5;
  width:58px;
  height:63px;
  border-radius:8px 8px 4px 4px;
  background:
    linear-gradient(180deg,transparent 0 19px,#91aaa3 20px 23px,transparent 24px 42px,#91aaa3 43px 46px,transparent 47px),
    linear-gradient(90deg,#c0d0cb,#ebf1ee 48%,#a9beb7);
  border:3px solid #78978e;
  box-shadow:0 8px 9px rgba(48,66,59,.13);
}
.vet-cart::before{
  content:"";
  position:absolute;
  left:-5px;
  right:-5px;
  top:-7px;
  height:10px;
  border-radius:7px;
  background:#668b81;
}
.vet-cart::after{
  content:"";
  position:absolute;
  left:7px;
  right:7px;
  bottom:-8px;
  height:8px;
  border-radius:50%;
  box-shadow:-5px 2px 0 -1px #4b5f5a,31px 2px 0 -1px #4b5f5a;
}
.vet-cart i,.vet-cart b,.vet-cart span{position:absolute;display:block;width:16px;height:9px;border-radius:4px;background:#e5c68e;top:-11px}
.vet-cart i{left:5px}.vet-cart b{left:23px;background:#92b6aa}.vet-cart span{right:2px;width:9px;background:#d99f95}
.vet-clock{
  position:absolute;
  right:7%;
  top:70px;
  z-index:4;
  width:31px;
  height:31px;
  border-radius:50%;
  border:4px solid #88a198;
  background:radial-gradient(circle,#fff 0 62%,#dfe9e5 64%);
  box-shadow:0 4px 5px rgba(45,62,56,.10);
}
.vet-clock i,.vet-clock b{
  position:absolute;
  left:50%;
  top:50%;
  width:2px;
  border-radius:99px;
  background:#56756c;
  transform-origin:bottom center;
}
.vet-clock i{height:9px;transform:translate(-1px,-100%) rotate(28deg)}
.vet-clock b{height:7px;transform:translate(-1px,-100%) rotate(118deg)}
.city-location-scene.night.place-vet .vet-ceiling-light i::after{background:rgba(190,242,220,.28)}

/* -------------------------- PIAZZA -------------------------- */
.city-location-scene.place-square{
  --square-stone:#cec5b4;
  --square-line:rgba(107,94,77,.14);
  background:linear-gradient(#d9e4e6 0 37%,var(--square-stone) 37% 100%);
}
.city-location-scene.place-square.season-spring{--square-stone:#d3cbbc;--square-line:rgba(105,92,74,.13)}
.city-location-scene.place-square.season-summer{--square-stone:#d4c5ae;--square-line:rgba(110,87,64,.15)}
.city-location-scene.place-square.season-autumn{--square-stone:#c8b89e;--square-line:rgba(102,80,59,.15)}
.city-location-scene.place-square.season-winter{--square-stone:#dcdad4;--square-line:rgba(104,108,105,.11)}
.square-backdrop{position:absolute;inset:0;z-index:0}
.square-building{
  position:absolute;
  display:block;
  bottom:59%;
  border:1px solid rgba(87,76,64,.10);
  border-radius:8px 8px 0 0;
  box-shadow:inset 0 5px rgba(255,255,255,.13),0 5px 7px rgba(69,65,57,.07);
}
.square-building::before{
  content:"";
  position:absolute;
  left:10px;
  right:10px;
  top:18px;
  height:30px;
  background:
    repeating-linear-gradient(90deg,#7397a3 0 15px,transparent 15px 27px);
  opacity:.54;
  box-shadow:0 35px 0 rgba(255,255,255,.08);
}
.square-building::after{
  content:"";
  position:absolute;
  left:-3px;
  right:-3px;
  bottom:-7px;
  height:13px;
  background:repeating-linear-gradient(90deg,#b16f58 0 15px,#f1dfc8 15px 30px);
  clip-path:polygon(0 0,100% 0,94% 100%,88% 0,82% 100%,76% 0,70% 100%,64% 0,58% 100%,52% 0,46% 100%,40% 0,34% 100%,28% 0,22% 100%,16% 0,10% 100%,4% 0);
}
.square-building i,.square-building b{display:none}
.square-building.sqbd-a{left:-4%;width:36%;height:117px;background:linear-gradient(145deg,#c6a58d,#aa826b)}
.square-building.sqbd-b{left:34%;width:32%;height:135px;background:linear-gradient(145deg,#d9c7a9,#b9a17b)}
.square-building.sqbd-c{right:-4%;width:36%;height:110px;background:linear-gradient(145deg,#b7c4b7,#8fa292)}
.square-building.sqbd-b::after{background:repeating-linear-gradient(90deg,#7093a4 0 15px,#f1e3cd 15px 30px)}
.square-building.sqbd-c::after{background:repeating-linear-gradient(90deg,#8a6c57 0 15px,#eee0c9 15px 30px)}
.square-paving{
  position:absolute;
  inset:41% 0 0;
  background:
    linear-gradient(30deg,transparent 48%,var(--square-line) 49% 51%,transparent 52%) 0 0/52px 34px,
    linear-gradient(-30deg,transparent 48%,var(--square-line) 49% 51%,transparent 52%) 0 0/52px 34px,
    linear-gradient(180deg,rgba(255,255,255,.12),rgba(86,73,57,.05));
  box-shadow:inset 0 5px rgba(87,73,58,.06);
}
.square-fountain{
  left:50%;
  top:52%;
  z-index:4;
  width:134px;
  height:76px;
  border:1px solid rgba(74,83,82,.11);
  border-radius:50%;
  background:
    radial-gradient(ellipse at 50% 42%,#91c5d2 0 46%,#6ca8b8 48% 55%,#d5d1c9 57% 72%,#9c9a94 74%);
  box-shadow:inset 0 5px rgba(255,255,255,.34),0 9px 0 #98958e,0 16px 18px rgba(64,60,54,.13);
}
.square-fountain::before{
  left:50%;
  top:4px;
  width:28px;
  height:54px;
  transform:translate(-50%,-34%);
  border-radius:11px 11px 15px 15px;
  background:linear-gradient(90deg,#8d9390,#d4d1ca 45%,#8e9390);
  box-shadow:inset 4px 0 rgba(255,255,255,.20),0 5px 4px rgba(58,63,60,.12);
}
.square-fountain::after{
  content:"";
  position:absolute;
  left:50%;
  top:-58px;
  width:38px;
  height:58px;
  transform:translateX(-50%);
  border:4px solid rgba(116,192,215,.66);
  border-left-color:transparent;
  border-right-color:transparent;
  border-bottom-color:transparent;
  border-radius:50%;
  filter:drop-shadow(0 4px 2px rgba(116,192,215,.16));
  animation:squareWaterJet 2.7s ease-in-out infinite;
}
@keyframes squareWaterJet{50%{height:53px;top:-53px;opacity:.78}}
.square-fountain span{
  left:50%;
  top:-7px;
  width:54px;
  height:17px;
  transform:translateX(-50%);
  border-radius:50%;
  background:radial-gradient(ellipse,#8fc9d8 0 40%,#a2a7a4 44% 58%,#d1cec7 60%);
  box-shadow:0 5px 4px rgba(59,63,60,.11);
}
.square-fountain span::before{
  content:"";
  position:absolute;
  left:50%;
  top:-3px;
  width:9px;
  height:9px;
  transform:translateX(-50%);
  border-radius:50%;
  background:#7fbfd1;
  box-shadow:-17px 7px 0 -2px rgba(142,205,220,.62),17px 7px 0 -2px rgba(142,205,220,.62);
}
.square-planter{
  z-index:5;
  bottom:55px;
  width:75px;
  height:38px;
  border-radius:8px 8px 21px 21px;
  background:linear-gradient(90deg,#8d6249,#b98967 45%,#79543f);
  border:1px solid rgba(78,51,37,.12);
  box-shadow:inset 0 4px rgba(255,255,255,.13),0 7px 8px rgba(56,42,31,.12);
}
.square-planter.sp-a{left:5%}.square-planter.sp-b{right:5%}
.square-planter i{left:18px;top:-29px;height:34px;background:#507e49;box-shadow:13px 6px 0 #629057,29px -1px 0 #527f4a}
.square-planter i::before,.square-planter i::after{background:linear-gradient(145deg,#8aba75,#5d9556)}
.square-planter i::before{box-shadow:30px 2px 0 -2px #78a968}
.square-planter i::after{box-shadow:18px 7px 0 -3px #6ba05e}
.square-lamp{
  top:86px;
  z-index:4;
  width:8px;
  height:122px;
  background:linear-gradient(90deg,#323d3d,#6b7773 48%,#2b3535);
  box-shadow:2px 2px 2px rgba(47,50,47,.12);
}
.square-lamp::before{
  left:-14px;
  top:-18px;
  width:36px;
  height:32px;
  border:3px solid #414b49;
  border-radius:9px 9px 13px 13px;
  background:linear-gradient(145deg,#fff0b8,#d3ba66);
  box-shadow:inset 0 0 0 3px rgba(255,255,255,.24),0 0 21px rgba(239,215,141,.28);
}
.square-lamp::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:-8px;
  width:27px;
  height:10px;
  transform:translateX(-50%);
  border-radius:50%;
  background:linear-gradient(180deg,#66716d,#323b39);
}
.square-lamp.sl-a{left:14%}.square-lamp.sl-b{right:14%}
.square-bench{
  position:absolute;
  z-index:5;
  bottom:87px;
  width:67px;
  height:31px;
  border-radius:4px;
  background:
    linear-gradient(180deg,#947052 0 7px,transparent 7px 12px,#7e5d45 12px 19px,transparent 19px 24px,#9a7354 24px 29px),
    linear-gradient(90deg,transparent 0 8px,#4d5350 8px 12px,transparent 12px 55px,#4d5350 55px 59px,transparent 59px);
  box-shadow:0 6px 6px rgba(53,45,37,.11);
}
.square-bench::before,.square-bench::after{content:"";position:absolute;bottom:-11px;width:5px;height:15px;background:#414845;border-radius:2px}
.square-bench::before{left:10px}.square-bench::after{right:10px}
.square-bench.sqb-a{left:20%}.square-bench.sqb-b{right:20%}
.square-pigeons{position:absolute;right:25%;bottom:32px;z-index:5;width:42px;height:18px}
.square-pigeons i,.square-pigeons b{
  position:absolute;
  display:block;
  width:15px;
  height:10px;
  border-radius:55% 45% 48% 52%;
  background:linear-gradient(145deg,#879196,#5e696e);
  box-shadow:0 4px 3px rgba(45,49,49,.10);
}
.square-pigeons i{left:0;top:1px}.square-pigeons b{right:0;top:6px;transform:scale(.82)}
.square-pigeons i::before,.square-pigeons b::before{content:"";position:absolute;right:0;top:-5px;width:7px;height:7px;border-radius:50%;background:#667276}
.square-pigeons i::after,.square-pigeons b::after{content:"";position:absolute;right:-4px;top:-3px;border-left:5px solid #c89b55;border-top:2px solid transparent;border-bottom:2px solid transparent}
.city-location-scene.night .square-building::before{background:repeating-linear-gradient(90deg,#e6cf87 0 15px,transparent 15px 27px);opacity:.55}
.city-location-scene.night .square-lamp::before{box-shadow:inset 0 0 0 3px rgba(255,255,255,.24),0 0 33px 13px rgba(245,213,116,.24)}

/* ------------------------- LAGHETTO ------------------------- */
.city-location-scene.place-lake{
  --lake-hill-far:#9fc58f;
  --lake-hill-near:#79a969;
  --lake-water-top:#9ed0db;
  --lake-water-low:#66aebf;
  background:linear-gradient(#c4deea 0 37%,#8fbd78 37% 64%,#a8d2dc 64% 100%);
}
.city-location-scene.place-lake.season-spring{--lake-hill-far:#a7ce97;--lake-hill-near:#82b870;--lake-water-top:#a9d7df;--lake-water-low:#70b7c7}
.city-location-scene.place-lake.season-summer{--lake-hill-far:#8fc17b;--lake-hill-near:#68a35b;--lake-water-top:#91cbd8;--lake-water-low:#58a8bc}
.city-location-scene.place-lake.season-autumn{--lake-hill-far:#aca879;--lake-hill-near:#878f5b;--lake-water-top:#9fc3c7;--lake-water-low:#6da4ad}
.city-location-scene.place-lake.season-winter{--lake-hill-far:#d1dbd2;--lake-hill-near:#b8c6b8;--lake-water-top:#c2dce1;--lake-water-low:#9fc7d0}
.lake-horizon{position:absolute;inset:0;z-index:0}
.lake-hill{
  position:absolute;
  bottom:48%;
  display:block;
  border-radius:52% 52% 0 0;
  box-shadow:inset 0 7px rgba(255,255,255,.08);
}
.lake-hill.lh-a{left:-16%;width:77%;height:104px;background:var(--lake-hill-far)}
.lake-hill.lh-b{right:-17%;width:82%;height:119px;background:var(--lake-hill-near)}
.lake-far-trees{
  position:absolute;
  left:0;
  right:0;
  bottom:51%;
  height:42px;
  background:
    radial-gradient(circle at 5% 100%,#6c9d63 0 25px,transparent 26px),
    radial-gradient(circle at 17% 100%,#72a369 0 31px,transparent 32px),
    radial-gradient(circle at 31% 100%,#5f9459 0 23px,transparent 24px),
    radial-gradient(circle at 70% 100%,#6a9d62 0 28px,transparent 29px),
    radial-gradient(circle at 84% 100%,#598e54 0 24px,transparent 25px),
    radial-gradient(circle at 96% 100%,#75a56b 0 31px,transparent 32px);
  opacity:.78;
}
.lake-water{
  left:-8%;
  right:-8%;
  bottom:-15px;
  z-index:2;
  height:175px;
  border-radius:48% 52% 0 0;
  background:
    repeating-linear-gradient(0deg,transparent 0 21px,rgba(255,255,255,.10) 22px 24px,transparent 25px 39px),
    radial-gradient(ellipse at 42% 8%,rgba(255,255,255,.27),transparent 35%),
    linear-gradient(180deg,var(--lake-water-top),var(--lake-water-low));
  box-shadow:inset 0 12px rgba(255,255,255,.16),inset 0 28px 0 rgba(255,255,255,.05),0 -4px 8px rgba(56,104,95,.08);
}
.lake-water::before,.lake-water::after{content:none!important}
.lake-duck{
  position:absolute!important;
  display:block!important;
  width:34px!important;
  height:20px!important;
  border-radius:58% 42% 48% 52%!important;
  background:linear-gradient(150deg,#fffdf3,#d9ddcf)!important;
  color:transparent!important;
  box-shadow:inset 0 4px rgba(255,255,255,.62),0 5px 6px rgba(44,76,76,.13)!important;
  animation:lakeDuckFloat 3.8s ease-in-out infinite alternate!important;
}
.lake-duck.ld-a{left:67%!important;top:35px!important}
.lake-duck.ld-b{left:78%!important;top:68px!important;transform:scale(.78);animation-duration:4.4s!important}
.lake-duck::before{
  content:"";
  position:absolute;
  right:2px;
  top:-10px;
  width:17px;
  height:17px;
  border-radius:50%;
  background:radial-gradient(circle at 68% 34%,#303631 0 1px,transparent 1.7px),linear-gradient(145deg,#fffdf2,#d9dfd4);
}
.lake-duck::after{
  content:"";
  position:absolute;
  right:-8px;
  top:-5px;
  border-left:9px solid #e49a42;
  border-top:4px solid transparent;
  border-bottom:4px solid transparent;
}
.lake-duck i{
  position:absolute;
  left:6px;
  top:5px;
  width:17px;
  height:10px;
  border-radius:70% 30% 70% 30%;
  background:linear-gradient(145deg,#d9ddd2,#aab5aa);
  transform:rotate(-14deg);
}
.lake-duck b{display:none}
@keyframes lakeDuckFloat{to{transform:translate(13px,4px) rotate(2deg)}}
.lake-duck.ld-b{animation-name:lakeDuckFloatSmall!important}
@keyframes lakeDuckFloatSmall{from{transform:scale(.78)}to{transform:scale(.78) translate(14px,4px) rotate(-2deg)}}
.lake-ripple{
  position:absolute;
  display:block;
  height:8px;
  border:2px solid rgba(255,255,255,.48);
  border-top:0;
  border-left-color:transparent;
  border-right-color:transparent;
  border-radius:50%;
}
.lake-ripple.lrp-a{left:63%;top:58px;width:53px}.lake-ripple.lrp-b{left:75%;top:91px;width:45px}.lake-ripple.lrp-c{left:20%;top:103px;width:68px;opacity:.48}
.lake-boardwalk{
  position:absolute;
  left:50%;
  bottom:-11px;
  z-index:5;
  width:166px;
  height:151px;
  transform:translateX(-50%);
  clip-path:polygon(28% 0,72% 0,98% 100%,2% 100%);
  background:
    repeating-linear-gradient(0deg,transparent 0 18px,rgba(78,50,31,.30) 19px 22px),
    repeating-linear-gradient(90deg,rgba(255,255,255,.06) 0 2px,transparent 2px 21px),
    linear-gradient(100deg,#8b6040,#bb8557 45%,#775037);
  filter:drop-shadow(0 11px 7px rgba(37,60,57,.22));
}
.lake-boardwalk::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(59,38,25,.28) 0 5px,transparent 5px calc(100% - 5px),rgba(59,38,25,.28) calc(100% - 5px));
}
.lake-boardwalk::after{
  content:"";
  position:absolute;
  left:25px;
  right:25px;
  bottom:11px;
  height:7px;
  border-radius:50%;
  background:rgba(59,37,24,.12);
  filter:blur(4px);
}
.lake-boardwalk i,.lake-boardwalk b{
  position:absolute;
  bottom:0;
  width:8px;
  height:57px;
  background:linear-gradient(90deg,#5d3d29,#8a5b3a,#4d3224);
}
.lake-boardwalk i{left:8px}.lake-boardwalk b{right:8px}
.lake-reeds{
  z-index:5;
  bottom:128px;
  width:6px;
  height:55px;
  background:linear-gradient(90deg,#3f653c,#628855);
  box-shadow:10px 7px #5a804c,19px -3px #4d7244,29px 9px #648956,37px 1px #557c4d;
}
.lake-reeds::before{
  content:"";
  position:absolute;
  left:-2px;
  top:-9px;
  width:9px;
  height:19px;
  border-radius:50%;
  background:#75533b;
  box-shadow:19px 4px 0 -1px #664732,37px 5px 0 -2px #805d40;
}
.lake-reeds.lr-a{left:8%}.lake-reeds.lr-b{right:15%}
.lake-rock{
  z-index:4;
  bottom:116px;
  background:radial-gradient(ellipse at 34% 25%,#b7bdb7,#777f7a 66%,#626a66);
  border:1px solid rgba(62,70,66,.10);
  box-shadow:inset 0 4px rgba(255,255,255,.16),0 6px 6px rgba(41,66,60,.13);
}
.lake-rock.rock-a{left:24%}.lake-rock.rock-b{right:28%}
.lake-tree{
  left:1%;
  top:72px;
  z-index:3;
  filter:drop-shadow(0 9px 7px rgba(44,73,42,.14));
}
.lake-tree i,.lake-tree-small i{background:linear-gradient(90deg,#5c402e,#896245 48%,#5a3e2d);box-shadow:inset 3px 0 rgba(255,255,255,.09)}
.lake-tree b,.lake-tree-small b{border:1px solid rgba(45,84,41,.09);filter:drop-shadow(0 4px 3px rgba(39,69,37,.10))}
.lake-tree b::before,.lake-tree-small b::before{
  content:"";
  position:absolute;
  left:15%;
  top:14%;
  width:39%;
  height:19%;
  border-radius:50%;
  background:rgba(255,255,255,.10);
  transform:rotate(-22deg);
}
.lake-tree-small{
  position:absolute;
  right:2%;
  top:106px;
  z-index:3;
  width:58px;
  height:94px;
  transform:scale(.86);
  filter:drop-shadow(0 8px 6px rgba(44,73,42,.12));
}
.lake-tree-small i{position:absolute;left:25px;bottom:0;width:9px;height:51px;border-radius:5px}
.lake-tree-small b{position:absolute;left:0;top:0;width:58px;height:61px;border-radius:50%;background:#66985b;box-shadow:15px 11px 0 -7px #4f8449,-12px 12px 0 -8px #76a769}
.lake-lily{
  position:absolute;
  z-index:4;
  width:35px;
  height:14px;
  border-radius:50%;
  background:radial-gradient(circle at 63% 40%,transparent 0 15%,#5f9764 17% 67%,#3f7650 69%);
  box-shadow:0 5px 4px rgba(43,83,75,.10);
}
.lake-lily.ll-a{left:17%;bottom:65px;transform:rotate(-8deg)}
.lake-lily.ll-b{right:12%;bottom:31px;transform:scale(.78) rotate(10deg)}
.lake-lily i{
  position:absolute;
  left:7px;
  top:-8px;
  width:13px;
  height:13px;
  border-radius:50%;
  background:radial-gradient(circle,#f3c869 0 23%,#f2c9d6 25% 57%,#d99eb2 59%);
}
.lake-nature-sign{
  position:absolute;
  right:5%;
  bottom:125px;
  z-index:5;
  width:69px;
  height:31px;
  padding-top:10px;
  border:3px solid #76543a;
  border-radius:7px;
  background:linear-gradient(145deg,#e4d1aa,#b99464);
  color:#5f432e;
  text-align:center;
  box-shadow:inset 0 2px rgba(255,255,255,.25),0 6px 6px rgba(46,48,36,.12);
}
.lake-nature-sign::after{content:"";position:absolute;left:8px;right:8px;bottom:-20px;height:20px;background:linear-gradient(90deg,#68472f 0 6px,transparent 6px calc(100% - 6px),#68472f calc(100% - 6px))}
.lake-nature-sign i{
  position:absolute;
  left:50%;
  top:3px;
  width:15px;
  height:5px;
  transform:translateX(-50%);
  border-radius:50%;
  background:#628b55;
  box-shadow:-8px 2px 0 -2px #75a268,8px 2px 0 -2px #4f7b49;
}
.lake-nature-sign strong{font-size:calc(7.5px + var(--tp-text-extra,0px));letter-spacing:.12em}
.season-winter .lake-lily{display:none}
.season-spring .lake-tree-small b{background:#65a45a;box-shadow:15px 11px 0 -7px #5a954f,-12px 12px 0 -8px #83ba6c}
.season-summer .lake-tree-small b{background:#58944e;box-shadow:15px 11px 0 -7px #477f43,-12px 12px 0 -8px #70a761}
.season-autumn .lake-tree-small b{background:#b66d3f;box-shadow:15px 11px 0 -7px #96553a,-12px 12px 0 -8px #ca8b47}
.season-winter .lake-tree-small b{background:#879786;box-shadow:15px 11px 0 -7px #748473,-12px 12px 0 -8px #a5b1a2}
.season-spring .lake-far-trees{filter:hue-rotate(-3deg) saturate(1.08)}
.season-autumn .lake-far-trees{filter:hue-rotate(326deg) saturate(.82);opacity:.68}
.season-winter .lake-far-trees{filter:grayscale(.72) brightness(1.16);opacity:.58}
.season-winter .lake-duck,.season-winter .lake-ripple{display:none!important}
.season-winter .lake-boardwalk::before{background:linear-gradient(180deg,rgba(255,255,255,.56) 0 7px,transparent 8px),linear-gradient(90deg,rgba(59,38,25,.28) 0 5px,transparent 5px calc(100% - 5px),rgba(59,38,25,.28) calc(100% - 5px))}
.city-location-scene.night.place-lake .lake-water{
  --lake-water-top:#5d8d9c;--lake-water-low:#3e7383;
  box-shadow:inset 0 12px rgba(203,225,232,.12),inset 72px 0 60px rgba(228,223,187,.05);
}

/* Messa a fuoco: gli animali restano davanti agli elementi del lotto. */
.city-location-pet-zone .location-pet-shadow{
  background:rgba(45,38,31,.18);
  box-shadow:0 2px 8px rgba(39,32,27,.08);
}
.city-location-scene.place-lake .location-pet-shadow{background:rgba(57,38,25,.20)}
.city-location-scene.night .location-decor{filter:brightness(.78) saturate(.88)}
.city-location-scene.night.place-shop .location-shop-decor,
.city-location-scene.night.place-vet .location-vet-decor{filter:brightness(.91) saturate(.94)}

@media(max-width:390px){
  .city-location-scene{height:365px}
  .location-tree.lt-a{left:1%;transform:scale(.94)}
  .location-tree.lt-b{right:0;transform:scale(.78)}
  .park-entry-sign{left:4%;transform:scale(.88);transform-origin:left bottom}
  .location-park-bench{right:13%;transform:scale(.9);transform-origin:right bottom}
  .shop-shelf{transform:scale(.92);transform-origin:center bottom}
  .shop-shelf.shelf-one{left:2%}.shop-shelf.shelf-two{right:2%}
  .shop-counter{right:16%;transform:scale(.94);transform-origin:right bottom}
  .shop-checkout-details{right:19%;transform:scale(.92);transform-origin:right bottom}
  .vet-cabinet{transform:scale(.91);transform-origin:center bottom}
  .vet-cabinet-a{left:1%}.vet-cabinet-b{right:1%}
  .vet-xray{left:23%;transform:scale(.9);transform-origin:left top}
  .vet-monitor{right:17%;transform:scale(.92);transform-origin:right top}
  .square-building.sqbd-b{height:122px}
  .square-lamp.sl-a{left:11%}.square-lamp.sl-b{right:11%}
  .square-bench.sqb-a{left:17%}.square-bench.sqb-b{right:17%}
  .lake-boardwalk{height:143px;width:154px}
  .lake-nature-sign{right:2%;transform:scale(.88);transform-origin:right bottom}
}
@media(max-width:350px){
  .park-entry-sign,.park-bin,.square-pigeons,.lake-nature-sign,.vet-clock{display:none}
  .shop-display{left:11%}
  .shop-counter{right:11%}
  .shop-checkout-details{right:14%}
  .square-bench.sqb-a{left:14%}.square-bench.sqb-b{right:14%}
}
@media(prefers-reduced-motion:reduce){
  .location-fountain::after,.square-fountain::after,.lake-duck{animation:none!important}
}


/* =========================================================
   TinyPal v8.57 — FONDAZIONE FAMIGLIA MULTI-ANIMALE
   Due slot attivi, profili separati e predisposizione Uovo Compagno.
   ========================================================= */

.pet-family-chip{
  min-height:48px;
  padding:7px 10px 7px 8px;
  border:1px solid rgba(105,77,111,.10);
  border-radius:15px;
  background:linear-gradient(145deg,#fbf4ff,#f4eef8);
  color:inherit;
  display:grid;
  grid-template-columns:38px auto;
  gap:7px;
  align-items:center;
  text-align:left;
  box-shadow:inset 0 1px rgba(255,255,255,.72);
}
.pet-family-chip-icons{
  position:relative;
  display:block;
  width:38px;
  height:32px;
}
.pet-family-chip-icons i,.pet-family-chip-icons b{
  position:absolute;
  display:grid;
  place-items:center;
  border-radius:50%;
  font-style:normal;
}
.pet-family-chip-icons i{
  left:0;
  top:0;
  width:31px;
  height:31px;
  background:#fff;
  font-size:calc(16px + var(--tp-text-extra,0px));
  box-shadow:0 4px 8px rgba(72,53,78,.08);
}
.pet-family-chip-icons b{
  right:0;
  bottom:0;
  width:16px;
  height:16px;
  background:#7d6486;
  color:#fff;
  border:2px solid #f7f0fa;
  font-size:calc(10.5px + var(--tp-text-extra,0px));
  line-height:1;
}
.pet-family-chip>span:last-child{min-width:0}
.pet-family-chip small{
  display:block;
  color:#836d89;
  font-size:calc(9px + var(--tp-text-extra,0px));
  letter-spacing:.10em;
  font-weight:950;
}
.pet-family-chip strong{display:block;margin-top:2px;font-size:calc(11.5px + var(--tp-text-extra,0px))}
.household-shortcut{background:linear-gradient(145deg,#fbf3ff,#fff)!important}

.household-sheet{
  max-height:min(92dvh,880px);
  overflow:auto;
  background:linear-gradient(180deg,#fffdfb,#faf7f3);
}
.household-sheet-head{align-items:flex-start}
.household-sheet-head p{
  max-width:520px;
  margin-top:5px;
  color:var(--muted);
  font-size:calc(10.5px + var(--tp-text-extra,0px));
  line-height:1.4;
  font-weight:700;
}
.household-hero{
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:68px minmax(0,1fr) auto;
  gap:13px;
  align-items:center;
  padding:15px;
  border:1px solid rgba(95,73,101,.09);
  border-radius:23px;
  background:
    radial-gradient(circle at 92% 18%,rgba(196,169,211,.22),transparent 34%),
    linear-gradient(145deg,#f9f0fb,#f7f3ec);
  box-shadow:inset 0 1px rgba(255,255,255,.72);
}
.household-hero::after{
  content:"";
  position:absolute;
  right:-38px;
  bottom:-59px;
  width:150px;
  height:120px;
  border-radius:50%;
  background:rgba(255,255,255,.20);
}
.household-hero-mark{
  position:relative;
  width:68px;
  height:68px;
  border-radius:21px;
  background:linear-gradient(145deg,#8c7394,#6f5878);
  box-shadow:inset 0 2px rgba(255,255,255,.15),0 8px 16px rgba(72,52,78,.13);
}
.household-hero-mark::before{
  content:"";
  position:absolute;
  left:22px;
  top:29px;
  width:24px;
  height:20px;
  border-radius:55% 55% 45% 45%;
  background:#fff7eb;
}
.household-hero-mark::after{
  content:"";
  position:absolute;
  left:17px;
  top:17px;
  width:11px;
  height:13px;
  border-radius:50%;
  background:#fff7eb;
  box-shadow:12px -6px 0 -1px #fff7eb,24px 0 #fff7eb;
}
.household-hero-mark i,.household-hero-mark b,.household-hero-mark em{display:none}
.household-hero>div:nth-child(2){position:relative;z-index:1;min-width:0}
.household-hero>div:nth-child(2)>strong{display:block;margin-top:4px;font-size:calc(13px + var(--tp-text-extra,0px));line-height:1.32}
.household-hero>div:nth-child(2)>small:last-child{display:block;margin-top:5px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));font-weight:750}
.household-count{
  position:relative;
  z-index:1;
  min-width:75px;
  padding:10px 9px;
  border-radius:16px;
  background:rgba(255,255,255,.74);
  text-align:center;
  box-shadow:inset 0 0 0 1px rgba(105,78,111,.07);
}
.household-count strong{display:block;font-size:calc(16px + var(--tp-text-extra,0px));color:#6f5878}
.household-count small{display:block;margin-top:2px;color:var(--muted);font-size:calc(8px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.08em}

.household-slots{display:grid;gap:9px;margin-top:11px}
.household-slot-card{
  position:relative;
  width:100%;
  min-height:102px;
  padding:11px 11px 11px 9px;
  border:1px solid rgba(77,66,72,.08);
  border-radius:21px;
  background:#fff;
  color:inherit;
  display:grid;
  grid-template-columns:28px 74px minmax(0,1fr) auto;
  gap:9px;
  align-items:center;
  text-align:left;
  box-shadow:0 8px 18px rgba(62,49,42,.055);
}
.household-slot-card.active{
  border-color:rgba(103,133,107,.18);
  background:linear-gradient(145deg,#f0f7f1,#fff);
  box-shadow:inset 4px 0 #78997b,0 8px 18px rgba(62,78,62,.06);
}
.household-slot-card.empty{
  border-style:dashed;
  border-color:rgba(117,88,125,.20);
  background:linear-gradient(145deg,#faf6fb,#fff);
}
.household-slot-number{
  align-self:start;
  padding-top:3px;
  color:#a0979f;
  font-size:calc(9.5px + var(--tp-text-extra,0px));
  font-weight:950;
  letter-spacing:.09em;
}
.household-slot-avatar{
  position:relative;
  display:block;
  width:74px;
  height:74px;
  overflow:hidden;
  border-radius:22px;
  background:linear-gradient(145deg,#f4eee7,#e9e0d8);
  box-shadow:inset 0 0 0 1px rgba(83,65,51,.055);
}
.household-slot-card.active .household-slot-avatar{background:linear-gradient(145deg,#e7f1e8,#f6f0e8)}
.household-pet-preview{
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  width:150px!important;
  height:168px!important;
  transform:translate(-50%,-50%) scale(.38)!important;
  transform-origin:center center!important;
  animation:none!important;
  filter:drop-shadow(0 9px 8px rgba(72,50,34,.13))!important;
}
.household-pet-preview .tail{animation:none!important}
.household-egg-preview{
  position:absolute;
  left:50%;
  top:50%;
  width:43px;
  height:56px;
  transform:translate(-50%,-50%);
  border-radius:50% 50% 46% 46%;
  border:2px solid rgba(92,66,50,.12);
  background:linear-gradient(150deg,#f8dfb2,#c98c4f);
  box-shadow:inset 5px 5px rgba(255,255,255,.26),inset -5px -6px rgba(80,51,35,.07),0 7px 8px rgba(64,44,31,.12);
}
.household-egg-preview::after{
  content:"";
  position:absolute;
  left:8px;
  right:8px;
  top:23px;
  height:8px;
  border-radius:50%;
  border-top:3px solid rgba(255,255,255,.55);
  transform:rotate(-7deg);
}
.household-egg-preview i,.household-egg-preview b,.household-egg-preview em{position:absolute;display:block;border-radius:50%;background:rgba(255,255,255,.48)}
.household-egg-preview i{left:8px;top:12px;width:7px;height:7px}.household-egg-preview b{right:8px;top:18px;width:5px;height:5px}.household-egg-preview em{left:18px;bottom:9px;width:6px;height:6px}
.household-egg-moon{background:linear-gradient(150deg,#d8ddf0,#8993bd)}
.household-egg-pearl{background:linear-gradient(150deg,#fffdf8,#dfd9d0)}
.household-egg-forest{background:linear-gradient(150deg,#c9dfa9,#72905d)}
.household-egg-honey{background:linear-gradient(150deg,#f4d891,#ba8737)}
.empty-avatar{
  background:
    radial-gradient(circle at 22% 23%,rgba(160,128,169,.14) 0 3px,transparent 4px),
    radial-gradient(circle at 78% 72%,rgba(160,128,169,.12) 0 4px,transparent 5px),
    linear-gradient(145deg,#f7f0f8,#eee8f0);
}
.empty-avatar::before{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:38px;
  height:49px;
  transform:translate(-50%,-50%);
  border:2px dashed #aa91b1;
  border-radius:50% 50% 46% 46%;
  background:rgba(255,255,255,.45);
}
.empty-avatar::after{
  content:"+";
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-53%);
  color:#8d7395;
  font-size:22px;
  font-weight:500;
}
.empty-avatar i,.empty-avatar b{display:none}
.household-slot-copy{display:block;min-width:0}
.household-slot-copy small{
  display:block;
  color:#88768c;
  font-size:calc(8px + var(--tp-text-extra,0px));
  font-weight:950;
  letter-spacing:.10em;
}
.household-slot-copy strong{display:block;margin-top:4px;font-size:calc(14px + var(--tp-text-extra,0px))}
.household-slot-copy em{display:block;margin-top:3px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));line-height:1.3;font-style:normal;font-weight:700}
.household-slot-action{
  padding:6px 8px;
  border-radius:999px;
  background:#eee8f0;
  color:#765f7e;
  font-size:calc(8px + var(--tp-text-extra,0px));
  font-weight:950;
  white-space:nowrap;
}
.household-slot-card.active .household-slot-action{background:#dfece1;color:#527159}
.household-slot-card.empty .household-slot-action{background:#f0eaf1;color:#927c98}

.household-foundation-card{
  margin-top:11px;
  padding:13px;
  border-radius:21px;
  border:1px solid rgba(81,70,76,.07);
  background:#f7f4f0;
}
.household-foundation-head strong{display:block;margin-top:4px;font-size:calc(13px + var(--tp-text-extra,0px))}
.household-roadmap{display:grid;gap:8px;margin-top:11px}
.household-roadmap>div{
  display:grid;
  grid-template-columns:29px minmax(0,1fr);
  gap:9px;
  align-items:center;
  padding:8px;
  border-radius:14px;
  background:rgba(255,255,255,.66);
}
.household-roadmap>div>i{
  width:29px;
  height:29px;
  border-radius:10px;
  display:grid;
  place-items:center;
  background:#e8e2dc;
  color:#877e76;
  font-size:calc(10.5px + var(--tp-text-extra,0px));
  font-style:normal;
  font-weight:950;
}
.household-roadmap>div.complete>i{background:#dcebdd;color:#4f7455}
.household-roadmap>div.next>i{background:#eae0ef;color:#765a80}
.household-roadmap strong{display:block;font-size:calc(10.5px + var(--tp-text-extra,0px))}
.household-roadmap small{display:block;margin-top:2px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));line-height:1.25;font-weight:700}
.household-footnote{margin:10px 3px 1px;color:var(--muted);font-size:calc(9.5px + var(--tp-text-extra,0px));line-height:1.4;font-weight:700}

.gacha-companion-card{
  width:100%;
  min-height:78px;
  margin:-5px 0 17px;
  padding:10px 12px;
  border:1px solid rgba(111,83,126,.13);
  border-radius:19px;
  background:linear-gradient(145deg,#faf3ff,#fff9ee);
  color:inherit;
  display:grid;
  grid-template-columns:54px minmax(0,1fr) 16px;
  gap:11px;
  align-items:center;
  text-align:left;
}
.gacha-companion-card>span:nth-child(2){min-width:0}
.gacha-companion-card>span:nth-child(2)>small{display:block;color:#80658d;font-size:calc(8px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.10em}
.gacha-companion-card>span:nth-child(2)>strong{display:block;margin-top:4px;font-size:calc(12px + var(--tp-text-extra,0px))}
.gacha-companion-card>span:nth-child(2)>em{display:block;margin-top:3px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));line-height:1.3;font-style:normal;font-weight:700}
.gacha-companion-card>b{font-size:calc(18px + var(--tp-text-extra,0px));color:#9a889f;font-weight:500}
.gacha-companion-egg{
  position:relative;
  display:block;
  width:48px;
  height:59px;
  border-radius:50% 50% 45% 45%;
  background:
    radial-gradient(circle at 28% 28%,rgba(255,255,255,.70) 0 5px,transparent 6px),
    linear-gradient(150deg,#eadcf2,#a98cba);
  border:2px solid rgba(88,58,99,.13);
  box-shadow:inset -5px -7px rgba(68,42,80,.07),0 7px 9px rgba(70,48,77,.11);
}
.gacha-companion-egg::after{
  content:"";
  position:absolute;
  left:8px;
  right:8px;
  top:27px;
  height:8px;
  border-top:3px solid rgba(255,255,255,.62);
  border-radius:50%;
  transform:rotate(-8deg);
}
.gacha-companion-egg i,.gacha-companion-egg b,.gacha-companion-egg em{position:absolute;display:block;border-radius:50%;background:#fff;opacity:.55}
.gacha-companion-egg i{left:8px;top:17px;width:6px;height:6px}.gacha-companion-egg b{right:8px;top:11px;width:5px;height:5px}.gacha-companion-egg em{right:11px;bottom:10px;width:7px;height:7px}

@media(max-width:430px){
  .pet-family-chip{flex:1;min-width:112px}
  .household-hero{grid-template-columns:55px minmax(0,1fr)}
  .household-hero-mark{width:55px;height:55px;border-radius:18px}
  .household-hero-mark::before{left:18px;top:24px;width:20px;height:17px}
  .household-hero-mark::after{left:13px;top:14px;width:9px;height:11px;box-shadow:10px -5px 0 -1px #fff7eb,20px 0 #fff7eb}
  .household-count{grid-column:2;justify-self:start;display:flex;align-items:center;gap:5px;min-width:0;padding:6px 8px}
  .household-count strong{font-size:calc(13px + var(--tp-text-extra,0px))}.household-count small{margin:0}
  .household-slot-card{grid-template-columns:22px 65px minmax(0,1fr);padding:9px;gap:7px}
  .household-slot-avatar{width:65px;height:65px;border-radius:19px}
  .household-slot-action{grid-column:3;justify-self:start;margin-top:-2px}
}
@media(max-width:350px){
  .household-slot-card{grid-template-columns:57px minmax(0,1fr)}
  .household-slot-number{display:none}
  .household-slot-avatar{width:57px;height:57px}
  .household-slot-action{grid-column:2}
}


/* =========================================================
   TinyPal v8.58 — FIX SCHEDA ANIMALE SU IPHONE
   Nome e dettagli restano sopra; Famiglia, ora e stato hanno
   una griglia dedicata che non può comprimere il testo.
   ========================================================= */

@media(max-width:899px){
  .pet-info-strip{
    grid-template-columns:minmax(0,1fr);
    align-items:stretch;
    gap:13px;
    padding:16px;
  }
  .pet-info-main{
    width:100%;
    min-width:0;
    padding:0 2px;
  }
  .pet-name-external{
    display:inline-flex;
    max-width:100%;
    align-items:center;
    gap:7px;
  }
  .pet-name-external #petName{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .pet-name-external .edit-mark{flex:0 0 auto}
  .pet-age-external{
    width:100%;
    margin-top:5px;
    line-height:1.45;
    white-space:normal;
    word-break:normal;
    overflow-wrap:normal;
  }
  .pet-info-side{
    width:100%;
    min-width:0;
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(104px,116px);
    grid-template-areas:
      "family clock"
      "family status";
    gap:8px;
    align-items:stretch;
  }
  .pet-family-chip{
    grid-area:family;
    width:100%;
    min-width:0;
    min-height:100%;
    padding:10px 12px 10px 10px;
    border-radius:18px;
  }
  .pet-info-side>.pet-info-chip:not(.status-chip){grid-area:clock}
  .pet-info-side>.status-chip{grid-area:status}
  .pet-info-chip{
    width:100%;
    min-width:0;
    max-width:none;
    padding:9px 8px;
  }
  .pet-info-chip.status-chip{max-width:none}
  .pet-info-chip.status-chip strong{
    white-space:normal;
    overflow:visible;
    text-overflow:clip;
    line-height:1.18;
  }
  .pet-info-strip .arrange-badge{
    grid-column:1 / -1;
    width:100%;
  }
}

@media(max-width:330px){
  .pet-info-side{
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-template-areas:
      "family family"
      "clock status";
  }
  .pet-family-chip{min-height:62px}
}


/* =========================================================
   TinyPal v8.59 — UOVO COMPAGNO DAL GACHA
   Illustrazione CSS, reveal speciale e incubazione slot 2.
   ========================================================= */
.gacha-companion-card[data-state="locked"]{filter:saturate(.72);opacity:.82}
.gacha-companion-card[data-state="available"]{border-color:rgba(111,83,126,.22);box-shadow:0 10px 24px rgba(101,73,118,.08)}
.gacha-companion-card[data-state="found"]{background:linear-gradient(145deg,#fff8dd,#f8efff);border-color:rgba(184,142,63,.28);box-shadow:0 10px 26px rgba(142,99,38,.11)}
.gacha-companion-card[data-state="complete"]{background:linear-gradient(145deg,#edf7ef,#faf7ef);border-color:rgba(84,125,91,.20)}

.gacha-companion-egg,.companion-result-egg{
  --egg-hi:#f6e5c4;--egg-lo:#c89055;--egg-spot:#b77f47;
  background:radial-gradient(circle at 29% 25%,rgba(255,255,255,.72) 0 5px,transparent 6px),linear-gradient(150deg,var(--egg-hi),var(--egg-lo))!important;
}
.companion-egg-amber{--egg-hi:#f8e2b8;--egg-lo:#c8894c;--egg-spot:#a96e38}
.companion-egg-moon{--egg-hi:#eef0f8;--egg-lo:#9099bc;--egg-spot:#727da9}
.companion-egg-pearl{--egg-hi:#fffef9;--egg-lo:#d8dfdc;--egg-spot:#b9cfc7}
.companion-egg-forest{--egg-hi:#e0e5b7;--egg-lo:#78905f;--egg-spot:#5d724c}
.companion-egg-honey{--egg-hi:#f7e0a8;--egg-lo:#bd873d;--egg-spot:#a46e2e}
.gacha-companion-egg i,.gacha-companion-egg b,.gacha-companion-egg em,.companion-result-egg i,.companion-result-egg b,.companion-result-egg em{background:var(--egg-spot)!important;opacity:.62!important}

.gacha-companion-result{position:relative;display:grid;grid-template-columns:88px minmax(0,1fr);gap:15px;align-items:center;margin:-5px 0 18px;padding:16px;border-radius:24px;background:linear-gradient(145deg,#fffaf0,#f7efff);border:1px solid rgba(137,101,154,.16);box-shadow:0 12px 28px rgba(83,58,98,.09);overflow:hidden}
.gacha-companion-result::after{content:"";position:absolute;width:120px;height:120px;right:-38px;top:-48px;border-radius:50%;background:radial-gradient(circle,rgba(255,220,124,.25),transparent 68%);pointer-events:none}
.gacha-companion-result.focus-pulse{animation:companionResultPulse .85s ease}
@keyframes companionResultPulse{0%,100%{transform:scale(1)}45%{transform:scale(1.018);box-shadow:0 14px 34px rgba(137,98,45,.18)}}
.gacha-companion-result-art{width:82px;height:92px;border-radius:23px;display:grid;place-items:center;background:rgba(255,255,255,.72);box-shadow:inset 0 0 0 1px rgba(89,62,48,.06)}
.companion-result-egg{position:relative;display:block;width:55px;height:70px;border-radius:50% 50% 46% 46%;border:2px solid rgba(92,66,50,.12);box-shadow:inset 6px 6px rgba(255,255,255,.25),inset -6px -7px rgba(80,51,35,.07),0 9px 12px rgba(64,44,31,.13)}
.companion-result-egg::after{content:"";position:absolute;left:10px;right:10px;top:31px;height:9px;border-radius:50%;border-top:3px solid rgba(255,255,255,.58);transform:rotate(-7deg)}
.companion-result-egg i,.companion-result-egg b,.companion-result-egg em{position:absolute;display:block;border-radius:50%}
.companion-result-egg i{left:10px;top:14px;width:8px;height:8px}.companion-result-egg b{right:9px;top:22px;width:6px;height:6px}.companion-result-egg em{left:23px;bottom:11px;width:7px;height:7px}
.gacha-companion-result-copy{min-width:0;position:relative;z-index:1}.gacha-companion-result-copy>strong{display:block;margin-top:4px;font-size:calc(17px + var(--tp-text-extra,0px))}.gacha-companion-result-copy>small{display:block;margin-top:4px;color:var(--muted);font-size:calc(11.5px + var(--tp-text-extra,0px));font-weight:800}.companion-family-button{margin-top:11px;min-height:41px;padding:9px 13px}
.companion-egg-name-form{grid-column:1/-1;padding:12px;border-radius:17px;background:rgba(255,255,255,.76);border:1px solid rgba(96,70,107,.10);position:relative;z-index:2}.companion-egg-name-form label{display:block;font-size:calc(11.5px + var(--tp-text-extra,0px));font-weight:900;margin-bottom:7px}.companion-egg-name-form input{width:100%;height:43px;border:1px solid rgba(83,66,75,.16);border-radius:13px;background:#fff;padding:0 12px;font:inherit;font-size:calc(16px + var(--tp-text-extra,0px));outline:none}.companion-egg-name-form input:focus{border-color:#9b79aa;box-shadow:0 0 0 3px rgba(155,121,170,.12)}.companion-egg-name-form>small{display:block;margin:6px 2px 0;color:var(--muted);font-size:calc(10.5px + var(--tp-text-extra,0px));font-weight:750}.companion-egg-name-form>div{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}.companion-egg-name-form .primary-btn,.companion-egg-name-form .secondary-btn{min-height:38px;padding:8px 12px;font-size:calc(11.5px + var(--tp-text-extra,0px))}

.gacha-machine.companion-found{animation:companionMachineReveal .72s cubic-bezier(.2,.85,.25,1) 2}
.gacha-machine.companion-found::after{content:"";position:absolute;inset:-13px;border-radius:35px;background:radial-gradient(circle,rgba(255,222,112,.42),rgba(193,152,227,.13) 52%,transparent 72%);z-index:-1;animation:companionGlow 1.25s ease-out}
.gacha-machine.companion-found .gacha-capsule-main{width:45px!important;height:59px!important;border-radius:50% 50% 46% 46%!important;background:linear-gradient(150deg,#f7e1af,#b98a55)!important;border-color:rgba(90,62,46,.28)!important;transform:none!important}
.gacha-machine.companion-found .gacha-capsule-main::after{top:28px!important;left:8px!important;right:8px!important;height:8px!important;background:transparent!important;border-top:3px solid rgba(255,255,255,.58);transform:rotate(-7deg)}
@keyframes companionMachineReveal{0%{transform:scale(1) rotate(0)}35%{transform:scale(1.055) rotate(-2deg)}70%{transform:scale(1.035) rotate(2deg)}100%{transform:scale(1)}}
@keyframes companionGlow{0%{opacity:0;transform:scale(.65)}45%{opacity:1}100%{opacity:0;transform:scale(1.18)}}

.household-slot-card.incubating{background:linear-gradient(145deg,#fffaf0,#f7f0fb);border-color:rgba(145,111,159,.16)}
.household-slot-card.incubating .household-slot-copy small{color:#886097}.household-slot-card.incubating.active .household-slot-action{background:#eee2f2;color:#76577f}
.household-slot-card.incubating .household-slot-avatar{background:radial-gradient(circle at 50% 34%,#fff 0 12%,#f7effa 48%,#eee4f1 100%)}
.household-egg-amber{background:linear-gradient(150deg,#f8dfb2,#c98c4f)}

@media(max-width:520px){
  .gacha-companion-result{grid-template-columns:72px minmax(0,1fr);gap:11px;padding:13px}.gacha-companion-result-art{width:70px;height:80px}.companion-result-egg{width:48px;height:63px}.gacha-companion-result-copy>strong{font-size:calc(15px + var(--tp-text-extra,0px))}.companion-family-button{width:100%;font-size:calc(12px + var(--tp-text-extra,0px))}.companion-egg-name-form>div{display:grid;grid-template-columns:1fr 1.35fr}.companion-egg-name-form .primary-btn,.companion-egg-name-form .secondary-btn{width:100%}
}
@media(max-width:360px){
  .gacha-companion-result{grid-template-columns:58px minmax(0,1fr)}.gacha-companion-result-art{width:58px;height:70px}.companion-result-egg{width:42px;height:56px}.gacha-companion-result-copy>strong{font-size:calc(14px + var(--tp-text-extra,0px))}.gacha-companion-result-copy>small{font-size:calc(10.5px + var(--tp-text-extra,0px))}
}

/* =========================================================
   TinyPal v8.60 — ANIMATION RIG / INTEGRITÀ ANATOMICA
   Mantiene testa+orecchie e corpo+zampe+coda coerenti durante
   pappa, acqua, routine, reazioni e comportamenti di ogni specie.
   Le pose strutturali restano in `transform`; i movimenti animati
   usano le proprietà individuali translate/rotate/scale, così non
   sovrascrivono più la geometria specifica di cane/gatto/coniglio/
   volpe/orso.
   ========================================================= */

/* Stabilità grafica: le parti non devono ricreare layer in posizioni diverse
   durante i keyframe. */
.pet .head,.pet .ear,.pet .body,.pet .leg,.pet .tail{
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
}
.pet .head,.pet .ear{will-change:translate,rotate}
.pet .tail{will-change:rotate,scale}

/* 1) Geometria anatomica bloccata per specie.
   Le vecchie animazioni usavano `transform` e sovrascrivevano queste pose. */
.pet .head{transform:none!important}
.pet .body{transform:none!important}
.pet:not(.species-rabbit) .leg{transform:none!important}
.pet.species-rabbit .leg-left{transform:rotate(-5deg)!important}
.pet.species-rabbit .leg-right{transform:rotate(5deg)!important}

.pet.species-dog .ear-left{transform:rotate(20deg)!important}
.pet.species-dog .ear-right{transform:scaleX(-1) rotate(20deg)!important}
.pet.species-cat .ear-left{transform:rotate(-9deg)!important}
.pet.species-cat .ear-right{transform:rotate(9deg)!important}
.pet.species-rabbit .ear-left{transform:rotate(-7deg)!important}
.pet.species-rabbit .ear-right{transform:rotate(7deg)!important}
.pet.species-fox .ear-left{transform:rotate(-8deg)!important}
.pet.species-fox .ear-right{transform:rotate(8deg)!important}
.pet.species-bear .ear-left,.pet.species-bear .ear-right{transform:none!important}

.pet.species-dog .tail{transform:rotate(-35deg)!important}
.pet.species-cat .tail{transform:rotate(-48deg)!important}
.pet.species-rabbit .tail{transform:none!important}
.pet.species-fox .tail{transform:rotate(-30deg)!important}
.pet.species-bear .tail{transform:none!important}

/* 2) Coda per specie: niente più keyframe da cane applicati a tutte. */
.pet.species-dog .tail{animation:rigTailDog .8s ease-in-out infinite alternate}
.pet.species-cat .tail{animation:rigTailCat 1.05s ease-in-out infinite alternate}
.pet.species-fox .tail{animation:rigTailFox .9s ease-in-out infinite alternate}
.pet.species-rabbit .tail{animation:rigTailRound 1.35s ease-in-out infinite alternate}
.pet.species-bear .tail{animation:rigTailRound 1.55s ease-in-out infinite alternate}
@keyframes rigTailDog{from{rotate:-20deg}to{rotate:20deg}}
@keyframes rigTailCat{from{rotate:-7deg}to{rotate:12deg}}
@keyframes rigTailFox{from{rotate:-11deg}to{rotate:13deg}}
@keyframes rigTailRound{from{scale:1;translate:0 0}to{scale:1.035;translate:0 -1px}}

/* Stati che devono fermare o abbassare la coda conservano la forma della specie. */
.pet-zone.activity-potty .tail{animation:none!important;rotate:12deg;scale:.96}
.pet.afraid .tail{animation:none!important;rotate:-22deg;scale:.82}
.pet.sleeping .tail,.room.pet-in-bed .tail,.pet-zone.activity-sleep .tail,
.visit-furniture-nap .tail,.pet-zone.visit-coop-sleep .tail,
.partner-room-visitor.visit-coop-sleep .tail{animation:none!important;rotate:0deg;scale:1}

/* 3) CIOTOLE — testa e orecchie diventano un unico blocco visivo.
   Non deformiamo più il torso separatamente dalle zampe. */
.pet-zone.activity-bowl.bowl-contact .pet .body{transform:none!important;translate:0 0;scale:1}

.pet-zone.activity-bowl.bowl-contact.object-side-right .pet:not(.react-eat):not(.react-drink) .head{
  animation:rigBowlSniffHeadRight .85s ease-in-out infinite alternate!important;
}
.pet-zone.activity-bowl.bowl-contact.object-side-right .pet:not(.react-eat):not(.react-drink) .ear{
  animation:rigBowlSniffEarRight .85s ease-in-out infinite alternate!important;
}
.pet-zone.activity-bowl.bowl-contact.object-side-left .pet:not(.react-eat):not(.react-drink) .head{
  animation:rigBowlSniffHeadLeft .85s ease-in-out infinite alternate!important;
}
.pet-zone.activity-bowl.bowl-contact.object-side-left .pet:not(.react-eat):not(.react-drink) .ear{
  animation:rigBowlSniffEarLeft .85s ease-in-out infinite alternate!important;
}
@keyframes rigBowlSniffHeadRight{from{translate:10px 15px;rotate:10deg}to{translate:14px 20px;rotate:13deg}}
@keyframes rigBowlSniffEarRight{from{translate:10px 15px;rotate:5deg}to{translate:14px 20px;rotate:7deg}}
@keyframes rigBowlSniffHeadLeft{from{translate:-10px 15px;rotate:-10deg}to{translate:-14px 20px;rotate:-13deg}}
@keyframes rigBowlSniffEarLeft{from{translate:-10px 15px;rotate:-5deg}to{translate:-14px 20px;rotate:-7deg}}

.pet-zone.activity-bowl.bowl-contact.object-side-right .pet.react-eat .head{
  animation:rigBowlEatHeadRight .40s ease-in-out infinite alternate!important;
}
.pet-zone.activity-bowl.bowl-contact.object-side-right .pet.react-eat .ear{
  animation:rigBowlEatEarRight .40s ease-in-out infinite alternate!important;
}
.pet-zone.activity-bowl.bowl-contact.object-side-left .pet.react-eat .head{
  animation:rigBowlEatHeadLeft .40s ease-in-out infinite alternate!important;
}
.pet-zone.activity-bowl.bowl-contact.object-side-left .pet.react-eat .ear{
  animation:rigBowlEatEarLeft .40s ease-in-out infinite alternate!important;
}
@keyframes rigBowlEatHeadRight{from{translate:15px 23px;rotate:13deg}to{translate:19px 28px;rotate:17deg}}
@keyframes rigBowlEatEarRight{from{translate:15px 23px;rotate:7deg}to{translate:19px 28px;rotate:9deg}}
@keyframes rigBowlEatHeadLeft{from{translate:-15px 23px;rotate:-13deg}to{translate:-19px 28px;rotate:-17deg}}
@keyframes rigBowlEatEarLeft{from{translate:-15px 23px;rotate:-7deg}to{translate:-19px 28px;rotate:-9deg}}

.pet-zone.activity-bowl.bowl-contact.object-side-right .pet.react-drink .head{
  animation:rigBowlDrinkHeadRight .46s ease-in-out infinite alternate!important;
}
.pet-zone.activity-bowl.bowl-contact.object-side-right .pet.react-drink .ear{
  animation:rigBowlDrinkEarRight .46s ease-in-out infinite alternate!important;
}
.pet-zone.activity-bowl.bowl-contact.object-side-left .pet.react-drink .head{
  animation:rigBowlDrinkHeadLeft .46s ease-in-out infinite alternate!important;
}
.pet-zone.activity-bowl.bowl-contact.object-side-left .pet.react-drink .ear{
  animation:rigBowlDrinkEarLeft .46s ease-in-out infinite alternate!important;
}
@keyframes rigBowlDrinkHeadRight{from{translate:16px 26px;rotate:14deg}to{translate:20px 31px;rotate:18deg}}
@keyframes rigBowlDrinkEarRight{from{translate:16px 26px;rotate:7deg}to{translate:20px 31px;rotate:9deg}}
@keyframes rigBowlDrinkHeadLeft{from{translate:-16px 26px;rotate:-14deg}to{translate:-20px 31px;rotate:-18deg}}
@keyframes rigBowlDrinkEarLeft{from{translate:-16px 26px;rotate:-7deg}to{translate:-20px 31px;rotate:-9deg}}

/* Reazioni mangia/beve fuori dalla posa di contatto (fallback). */
.pet.react-eat:not(.species-none) .head{animation:rigEatHead .46s ease-in-out infinite alternate!important}
.pet.react-eat:not(.species-none) .ear{animation:rigEatEar .46s ease-in-out infinite alternate!important}
.pet.react-drink:not(.species-none) .head{animation:rigDrinkHead .55s ease-in-out infinite alternate!important}
.pet.react-drink:not(.species-none) .ear{animation:rigDrinkEar .55s ease-in-out infinite alternate!important}
@keyframes rigEatHead{from{translate:0 5px;rotate:2deg}to{translate:0 9px;rotate:5deg}}
@keyframes rigEatEar{from{translate:0 5px;rotate:1deg}to{translate:0 9px;rotate:3deg}}
@keyframes rigDrinkHead{from{translate:0 7px;rotate:2deg}to{translate:0 11px;rotate:4deg}}
@keyframes rigDrinkEar{from{translate:0 7px;rotate:1deg}to{translate:0 11px;rotate:2deg}}
/* Il contatto ciotola, più specifico, resta sopra al fallback. */
.pet-zone.activity-bowl.bowl-contact.object-side-right .pet.react-eat .head{animation:rigBowlEatHeadRight .40s ease-in-out infinite alternate!important}
.pet-zone.activity-bowl.bowl-contact.object-side-right .pet.react-eat .ear{animation:rigBowlEatEarRight .40s ease-in-out infinite alternate!important}
.pet-zone.activity-bowl.bowl-contact.object-side-left .pet.react-eat .head{animation:rigBowlEatHeadLeft .40s ease-in-out infinite alternate!important}
.pet-zone.activity-bowl.bowl-contact.object-side-left .pet.react-eat .ear{animation:rigBowlEatEarLeft .40s ease-in-out infinite alternate!important}
.pet-zone.activity-bowl.bowl-contact.object-side-right .pet.react-drink .head{animation:rigBowlDrinkHeadRight .46s ease-in-out infinite alternate!important}
.pet-zone.activity-bowl.bowl-contact.object-side-right .pet.react-drink .ear{animation:rigBowlDrinkEarRight .46s ease-in-out infinite alternate!important}
.pet-zone.activity-bowl.bowl-contact.object-side-left .pet.react-drink .head{animation:rigBowlDrinkHeadLeft .46s ease-in-out infinite alternate!important}
.pet-zone.activity-bowl.bowl-contact.object-side-left .pet.react-drink .ear{animation:rigBowlDrinkEarLeft .46s ease-in-out infinite alternate!important}

/* 4) Routine che prima animavano soltanto la testa. */
.pet.idle-sniff .head{animation:rigSniffHead .55s ease-in-out 4 alternate!important}
.pet.idle-sniff .ear{animation:rigSniffEar .55s ease-in-out 4 alternate!important}
@keyframes rigSniffHead{from{translate:0 1px;rotate:-3deg}to{translate:0 5px;rotate:5deg}}
@keyframes rigSniffEar{from{translate:0 1px;rotate:-1deg}to{translate:0 5px;rotate:2deg}}

.pet.idle-look:not(.sleeping) .head{animation:rigLookHead 2.4s ease-in-out 1!important}
.pet.idle-look:not(.sleeping) .ear{animation:rigLookEar 2.4s ease-in-out 1!important}
@keyframes rigLookHead{0%,100%{rotate:0deg}25%{rotate:-9deg}55%{rotate:8deg}75%{rotate:4deg}}
@keyframes rigLookEar{0%,100%{rotate:0deg}25%{rotate:-4deg}55%{rotate:4deg}75%{rotate:2deg}}

.pet-zone.activity-window .head{animation:rigWindowHead 2.8s ease-in-out infinite!important}
.pet-zone.activity-window .ear{animation:rigWindowEar 2.8s ease-in-out infinite!important}
@keyframes rigWindowHead{0%,100%{translate:0 -2px;rotate:-4deg}50%{translate:0 -4px;rotate:5deg}}
@keyframes rigWindowEar{0%,100%{translate:0 -2px;rotate:-2deg}50%{translate:0 -4px;rotate:2deg}}

.pet-zone.activity-basket .head{animation:rigBasketHead 1s ease-in-out infinite alternate!important}
.pet-zone.activity-basket .ear{animation:rigBasketEar 1s ease-in-out infinite alternate!important}
@keyframes rigBasketHead{from{translate:0 1px;rotate:-4deg}to{translate:0 6px;rotate:5deg}}
@keyframes rigBasketEar{from{translate:0 1px;rotate:-2deg}to{translate:0 6px;rotate:2deg}}

.pet.behavior-groom .head{animation:rigGroomHead .72s ease-in-out 4!important}
.pet.behavior-groom .ear{animation:rigGroomEar .72s ease-in-out 4!important}
.pet.behavior-groom .leg-left{animation:rigGroomPaw .36s ease-in-out 8!important}
@keyframes rigGroomHead{0%,100%{translate:0 0;rotate:0deg}50%{translate:0 7px;rotate:-10deg}}
@keyframes rigGroomEar{0%,100%{translate:0 0;rotate:0deg}50%{translate:0 7px;rotate:-5deg}}
@keyframes rigGroomPaw{0%,100%{translate:0 0;rotate:0deg}50%{translate:8px -18px;rotate:-18deg}}

.pet.behavior-playbow .head{animation:rigPlayBowHead 1.2s ease-in-out 2!important}
.pet.behavior-playbow .ear{animation:rigPlayBowEar 1.2s ease-in-out 2!important}
@keyframes rigPlayBowHead{0%,100%{translate:0 0;rotate:0deg}45%{translate:0 10px;rotate:-4deg}}
@keyframes rigPlayBowEar{0%,100%{translate:0 0;rotate:0deg}45%{translate:0 10px;rotate:-2deg}}

.pet.behavior-chew:not(.sleeping) .head{animation:rigChewHead .55s ease-in-out 5!important}
.pet.behavior-chew:not(.sleeping) .ear{animation:rigChewEar .55s ease-in-out 5!important}
@keyframes rigChewHead{0%,100%{translate:0 0}50%{translate:0 4px}}
@keyframes rigChewEar{0%,100%{translate:0 0}50%{translate:0 4px}}

/* Visite: anche l'ospite mantiene le orecchie collegate quando beve. */
.visit-furniture-drink .pet .head{animation:rigVisitDrinkHead .72s ease-in-out 3!important}
.visit-furniture-drink .pet .ear{animation:rigVisitDrinkEar .72s ease-in-out 3!important}
@keyframes rigVisitDrinkHead{0%,100%{translate:0 0;rotate:0deg}45%{translate:0 8px;rotate:8deg}}
@keyframes rigVisitDrinkEar{0%,100%{translate:0 0;rotate:0deg}45%{translate:0 8px;rotate:4deg}}

/* 5) Orecchie: le reazioni sono ora RELATIVE alla forma della specie. */
.pet.react-play .ear-left,.pet.react-play .ear-right{animation:rigEarPlay .62s ease-in-out infinite!important}
@keyframes rigEarPlay{0%,100%{rotate:0deg}50%{rotate:7deg}}
.pet.idle-scratch .ear-left{animation:rigEarScratch .28s linear 8!important}
@keyframes rigEarScratch{0%,100%{rotate:0deg}50%{rotate:10deg}}
.pet.behavior-listen .ear-left,.pet.behavior-listen .ear-right{animation:rigEarListen .42s ease-in-out 5!important}
@keyframes rigEarListen{0%,100%{rotate:0deg}50%{rotate:-10deg}}

/* 6) Posture del torso: niente più doppia deformazione body/zampe. */
.pet.idle-stretch .body{animation:none!important;transform:none!important}
.pet.idle-sit .body{transform:none!important;translate:0 0;scale:1}
.pet.idle-sit .leg-left,.pet.idle-sit .leg-right{translate:0 0}
.room.illness-tummy .pet .body{transform:none!important}

/* Espressioni: il piccolo tilt della testa usa rotate separato e non può
   cancellare il rig delle routine. */
.pet.mood-hungry:not(.react-eat):not(.react-drink) .head{rotate:2deg}

/* Durante riduzione movimento si evita qualsiasi scatto residuo tra parti. */
@media (prefers-reduced-motion:reduce){
  .pet .head,.pet .ear,.pet .body,.pet .leg,.pet .tail{translate:0 0!important;rotate:0deg!important;scale:1!important}
}


/* TinyPal v8.61 — Fase 3 multi-animale: convivenza stabile in cameretta */
.household-room-companion{border:0;background:transparent;padding:0;font:inherit;color:inherit;position:absolute;left:70%;top:55%;width:170px;height:205px;z-index:5;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:left .55s cubic-bezier(.2,.8,.2,1),top .55s cubic-bezier(.2,.8,.2,1),opacity .25s ease,transform .25s ease;transform:translate(-50%,-50%)}
.household-room-companion.hidden{display:none!important}.household-room-companion.companion-slot-1{left:29%}.household-room-companion.companion-slot-2{left:71%}
.household-companion-pet{position:relative!important;scale:var(--household-companion-scale,.6)!important;transform-origin:center bottom!important;animation:idle 2.65s ease-in-out infinite!important;pointer-events:none}
.household-room-companion:hover .household-companion-pet{filter:drop-shadow(0 14px 11px rgba(70,45,25,.22)) brightness(1.025)}
.household-room-companion:focus-visible{outline:3px solid rgba(92,124,102,.42);outline-offset:4px;border-radius:28px}
.household-companion-label{position:absolute;left:50%;bottom:1px;transform:translateX(-50%);min-width:108px;max-width:156px;padding:7px 10px 8px;border-radius:15px;background:rgba(255,255,255,.86);backdrop-filter:blur(10px);box-shadow:0 7px 20px rgba(68,49,33,.12);text-align:center;pointer-events:none}
.household-companion-label small,.household-companion-label strong,.household-companion-label em{display:block;position:static!important}.household-companion-label small{font-size:calc(9.5px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.12em;color:#6f866f}.household-companion-label strong{font-size:calc(13px + var(--tp-text-extra,0px));line-height:1.15;margin-top:2px;color:#302a25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.household-companion-label em{font-size:calc(10px + var(--tp-text-extra,0px));font-style:normal;font-weight:750;color:#777068;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.room.night .household-companion-label{background:rgba(35,39,45,.72);border:1px solid rgba(255,255,255,.09)}.room.night .household-companion-label strong{color:#fff}.room.night .household-companion-label em{color:rgba(255,255,255,.68)}.room.night .household-companion-label small{color:#bad1bd}
.household-companion-pet.sleeping{animation:sleep 3s ease-in-out infinite!important}.household-companion-pet.sleeping .face-eye{height:3px;top:42px;border-radius:999px}.household-companion-pet.sad{animation:sad 2s ease-in-out infinite!important}.household-companion-pet.dirty .body::after{content:"";position:absolute;right:4px;top:18px;width:13px;height:13px;border-radius:50%;background:#8b744f;box-shadow:-30px 18px 0 2px #8b744f}.household-companion-pet .companion-sleep-z{right:-4px;top:17px}
.room.household-duo-active:not(.arranging) .pet-zone:not(.routine-moving):not(.activity-near-object){left:47%}
.room.arranging .household-room-companion{opacity:.24;pointer-events:none}.partner-room-visitor:not(.hidden)~.household-room-companion{z-index:4}
@media(max-width:620px){.household-room-companion{width:145px;height:190px}.household-room-companion.companion-slot-1{left:24%}.household-room-companion.companion-slot-2{left:76%}.household-companion-label{min-width:94px;max-width:126px;padding:6px 8px}.household-companion-label strong{font-size:calc(12px + var(--tp-text-extra,0px))}.household-companion-label em{font-size:calc(9.3px + var(--tp-text-extra,0px))}.room.household-duo-active:not(.arranging) .pet-zone:not(.routine-moving):not(.activity-near-object){left:46%}}
@media(max-width:420px){.household-room-companion.companion-slot-1{left:20%}.household-room-companion.companion-slot-2{left:80%}.household-companion-label{bottom:7px;max-width:112px}}

/* Isolamento degli stati del TinyPal attivo: la nanna dello slot selezionato
   non deve trascinare visivamente il compagno. */
.room.pet-in-bed .household-companion-pet:not(.sleeping){animation:idle 2.65s ease-in-out infinite!important;transform:none!important}
.room.pet-in-bed .household-companion-pet.species-dog:not(.sleeping) .tail{animation:rigTailDog .8s ease-in-out infinite alternate!important}
.room.pet-in-bed .household-companion-pet.species-cat:not(.sleeping) .tail{animation:rigTailCat 1.05s ease-in-out infinite alternate!important}
.room.pet-in-bed .household-companion-pet.species-fox:not(.sleeping) .tail{animation:rigTailFox .9s ease-in-out infinite alternate!important}
.room.pet-in-bed .household-companion-pet.species-rabbit:not(.sleeping) .tail{animation:rigTailRound 1.35s ease-in-out infinite alternate!important}
.room.pet-in-bed .household-companion-pet.species-bear:not(.sleeping) .tail{animation:rigTailRound 1.55s ease-in-out infinite alternate!important}
.room.night .household-room-companion{z-index:12}


/* ============================================================
   TinyPal v8.62 · Fase 4 secondo animale
   Affiatamento + interazioni a rig intero
   ============================================================ */
.household-duo-card{margin-top:11px;padding:14px;border-radius:22px;background:linear-gradient(145deg,#f7f3ff,#fffaf1);border:1px solid rgba(113,87,129,.13);box-shadow:0 10px 24px rgba(74,55,88,.07)}
.household-duo-card.hidden{display:none!important}.household-duo-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.household-duo-head strong{display:block;margin-top:3px;font-size:calc(14px + var(--tp-text-extra,0px))}.household-duo-head>b{min-width:46px;padding:7px 9px;border-radius:12px;background:#fff;color:#765d82;font-size:calc(13px + var(--tp-text-extra,0px));text-align:center;box-shadow:0 4px 12px rgba(76,55,88,.08)}
.household-duo-progress{height:7px;margin-top:10px;border-radius:999px;background:rgba(112,89,123,.10);overflow:hidden}.household-duo-progress i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#b7cfae,#c9a8d7);transition:width .45s ease}
.household-duo-card>p{margin:9px 2px 0;color:var(--muted);font-size:calc(9.5px + var(--tp-text-extra,0px));line-height:1.45;font-weight:720}
.household-duo-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:11px}.household-duo-actions button{min-width:0;border:1px solid rgba(92,72,104,.10);border-radius:16px;background:rgba(255,255,255,.78);padding:10px 7px 9px;font:inherit;color:inherit;text-align:center;cursor:pointer;box-shadow:0 5px 14px rgba(61,45,71,.05)}.household-duo-actions button:active{transform:scale(.97)}.household-duo-actions button:disabled{opacity:.42;cursor:not-allowed}.household-duo-actions span{display:grid;place-items:center;width:27px;height:27px;margin:0 auto 6px;border-radius:50%;background:#f2eaf5;color:#755f80;font-size:calc(14px + var(--tp-text-extra,0px));font-weight:950}.household-duo-actions strong{display:block;font-size:calc(9.5px + var(--tp-text-extra,0px));line-height:1.2}.household-duo-actions small{display:block;margin-top:3px;color:var(--muted);font-size:calc(8.5px + var(--tp-text-extra,0px));line-height:1.25;font-weight:700}

/* Gli spostamenti della fase 4 agiscono esclusivamente sui wrapper: nessun arto viene trasformato separatamente. */
.room.duo-interacting .pet-zone,.room.duo-interacting .household-room-companion{transition:left .42s cubic-bezier(.22,.75,.2,1),top .42s cubic-bezier(.22,.75,.2,1),transform .42s ease!important}
.room.duo-interacting.duo-companion-right .pet-zone{left:42%!important}.room.duo-interacting.duo-companion-right .household-room-companion{left:61%!important}
.room.duo-interacting.duo-companion-left .pet-zone{left:58%!important}.room.duo-interacting.duo-companion-left .household-room-companion{left:39%!important}
.room.duo-greet .pet-zone,.room.duo-greet .household-room-companion{top:54%!important}.room.duo-play .pet-zone,.room.duo-play .household-room-companion{top:53%!important}.room.duo-rest .pet-zone,.room.duo-rest .household-room-companion{top:58%!important}
.room.duo-greet #petButton,.room.duo-greet .household-companion-pet{animation:duoWholeGreet .72s ease-in-out 3!important}.room.duo-play #petButton,.room.duo-play .household-companion-pet{animation:duoWholePlay .68s ease-in-out 5!important}.room.duo-rest #petButton,.room.duo-rest .household-companion-pet{animation:duoWholeRest 1.4s ease-in-out 3!important}
@keyframes duoWholeGreet{0%,100%{translate:0 0;rotate:0deg}45%{translate:0 -4px;rotate:-2deg}70%{translate:0 0;rotate:2deg}}
@keyframes duoWholePlay{0%,100%{translate:0 0;rotate:0deg}25%{translate:0 -7px;rotate:-3deg}55%{translate:0 -2px;rotate:3deg}75%{translate:0 -8px;rotate:0deg}}
@keyframes duoWholeRest{0%,100%{translate:0 2px;scale:1}50%{translate:0 4px;scale:.985}}
.household-duo-fx{position:absolute;left:50%;top:48%;width:135px;height:85px;transform:translate(-50%,-50%);z-index:13;pointer-events:none}.household-duo-fx.hidden{display:none!important}.household-duo-fx>*{position:absolute;display:block}
.household-duo-fx.duo-greet i,.household-duo-fx.duo-greet b,.household-duo-fx.duo-greet em{width:9px;height:9px;border:2px solid rgba(178,126,153,.75);border-radius:50%;animation:duoSoftSpark 1.5s ease-out infinite}.household-duo-fx.duo-greet i{left:28%;top:37%}.household-duo-fx.duo-greet b{left:50%;top:17%;animation-delay:.25s}.household-duo-fx.duo-greet em{right:22%;top:42%;animation-delay:.5s}
.household-duo-fx.duo-play i,.household-duo-fx.duo-play b,.household-duo-fx.duo-play em,.household-duo-fx.duo-play span{width:7px;height:7px;border-radius:2px;background:#e7c966;rotate:45deg;animation:duoPlaySpark .9s ease-in-out infinite}.household-duo-fx.duo-play i{left:19%;top:44%}.household-duo-fx.duo-play b{left:42%;top:12%;animation-delay:.18s}.household-duo-fx.duo-play em{right:30%;top:35%;animation-delay:.34s}.household-duo-fx.duo-play span{right:12%;top:13%;animation-delay:.52s}
.household-duo-fx.duo-rest i::before,.household-duo-fx.duo-rest b::before,.household-duo-fx.duo-rest em::before{color:#8e8199;font-style:normal;font-weight:950}.household-duo-fx.duo-rest i::before{content:"z"}.household-duo-fx.duo-rest b::before{content:"Z"}.household-duo-fx.duo-rest em::before{content:"z"}.household-duo-fx.duo-rest i{left:31%;bottom:10%;animation:duoRestZ 2s ease-in-out infinite}.household-duo-fx.duo-rest b{left:50%;bottom:33%;font-size:calc(16px + var(--tp-text-extra,0px));animation:duoRestZ 2s ease-in-out infinite .32s}.household-duo-fx.duo-rest em{right:28%;top:6%;font-size:calc(20px + var(--tp-text-extra,0px));animation:duoRestZ 2s ease-in-out infinite .64s}
@keyframes duoSoftSpark{0%{opacity:0;scale:.45;translate:0 8px}35%{opacity:1}100%{opacity:0;scale:1.35;translate:0 -13px}}@keyframes duoPlaySpark{0%,100%{opacity:.25;scale:.7}50%{opacity:1;scale:1.35;translate:0 -6px}}@keyframes duoRestZ{0%{opacity:0;translate:0 8px}35%{opacity:.9}100%{opacity:0;translate:0 -16px}}
@media(max-width:620px){.household-duo-actions{gap:5px}.household-duo-actions button{padding:9px 5px 8px}.room.duo-interacting.duo-companion-right .pet-zone{left:39%!important}.room.duo-interacting.duo-companion-right .household-room-companion{left:64%!important}.room.duo-interacting.duo-companion-left .pet-zone{left:61%!important}.room.duo-interacting.duo-companion-left .household-room-companion{left:36%!important}.household-duo-fx{width:110px}}
@media(max-width:390px){.household-duo-actions{grid-template-columns:1fr}.household-duo-actions button{display:grid;grid-template-columns:32px minmax(0,1fr);column-gap:7px;text-align:left;align-items:center}.household-duo-actions span{grid-row:1/3;margin:0}.household-duo-actions small{margin-top:2px}}
@media(prefers-reduced-motion:reduce){.room.duo-greet #petButton,.room.duo-greet .household-companion-pet,.room.duo-play #petButton,.room.duo-play .household-companion-pet,.room.duo-rest #petButton,.room.duo-rest .household-companion-pet,.household-duo-fx>*{animation:none!important}}


/* v8.65 — FIX visita multiplayer: controlli fuori dalla cameretta */
/* Evita qualsiasi flash/overlay se i nodi sono ancora figli di #room durante il bootstrap. */
#room > .partner-main-visit-bar,
#room > .partner-main-visit-actions{display:none!important}
.partner-visit-dock{
  width:100%;
  margin:10px 0 14px;
  padding:9px;
  border-radius:22px;
  background:rgba(250,248,244,.96);
  border:1px solid rgba(75,60,47,.08);
  box-shadow:0 10px 28px rgba(66,49,36,.08);
  overflow:hidden;
}
.partner-visit-dock.hidden{display:none!important}
.partner-visit-dock .partner-main-visit-bar{
  position:relative!important;
  inset:auto!important;
  left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;
  width:100%!important;
  transform:none!important;
  margin:0 0 7px!important;
  box-shadow:none!important;
  background:#f4f1ec!important;
  backdrop-filter:none!important;
}
.partner-visit-dock .partner-main-visit-actions{
  position:relative!important;
  inset:auto!important;
  left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;
  width:100%!important;
  max-height:none!important;
  transform:none!important;
  margin:0!important;
  overflow:visible!important;
  box-shadow:none!important;
  border:0!important;
  background:transparent!important;
  backdrop-filter:none!important;
  padding:0!important;
}
/* Durante una visita la scena deve contenere solo animali, arredi ed effetti. */
#room.partner-visit-active .partner-main-visit-bar,
#room.partner-visit-active .partner-main-visit-actions{display:none!important}
@media(max-width:560px){
  .partner-visit-dock{margin-top:8px;padding:7px;border-radius:18px}
  .partner-visit-dock .partner-main-visit-bar{grid-template-columns:9px minmax(0,1fr) auto;padding:7px 8px}
  .partner-visit-dock .partner-main-visit-actions{max-height:none!important}
}


/* v8.66 — FIX dock mobile: il pannello visita non deve finire sotto la dock */
.app-shell{padding-bottom:calc(112px + var(--safe-bottom))}
.partner-visit-dock{
  margin-bottom:calc(104px + var(--safe-bottom));
  scroll-margin-bottom:calc(104px + var(--safe-bottom));
}
@media(max-width:560px){
  .app-shell{padding-bottom:calc(124px + var(--safe-bottom))}
  .partner-visit-dock{margin-bottom:calc(118px + var(--safe-bottom));scroll-margin-bottom:calc(118px + var(--safe-bottom))}
}


/* v8.67 — FIX REALE stacking visita/dock
   I controlli visita ereditavano z-index 20/22 dalle vecchie regole assolute.
   Dopo il loro spostamento fuori dalla stanza quei valori li facevano dipingere sopra la dock fissa. */
.partner-visit-dock{
  position:relative;
  z-index:1;
  isolation:isolate;
}
.partner-visit-dock .partner-main-visit-bar,
.partner-visit-dock .partner-main-visit-actions{
  z-index:1!important;
}
/* La navigazione deve restare sopra a tutto il contenuto normale della pagina,
   ma sotto backdrop/sheet/modal (30+). */
.dock{z-index:28}
@media(max-width:899px){
  .partner-visit-dock{z-index:1}
  .partner-visit-dock .partner-main-visit-bar,
  .partner-visit-dock .partner-main-visit-actions{z-index:1!important}
}


/* v8.68 — ospite multiplayer: taglia reale per specie + scala stabile nei movimenti
   La scala anatomica vive solo su --visit-pet-scale. Le animazioni dell'ospite
   possono traslare/ruotare, ma non devono mai ridimensionarlo. */
.partner-room-visitor .partner-room-pet{
  transform:translate(-50%,-50%) scale(var(--visit-pet-scale,.58)) !important;
  transform-origin:center center !important;
  scale:1 !important;
}

/* Le tre animazioni che muovono direttamente il wrapper non includono più scale. */
.partner-room-visitor.visit-snack{animation:visitSnackGuestStable .7s ease-in-out 4!important}
.partner-room-visitor.visit-chase{animation:visitChaseGuestStable .62s ease-in-out 4!important}
.partner-room-visitor.visit-dance{animation:visitDanceGuestStable .48s ease-in-out 6!important}
@keyframes visitSnackGuestStable{0%,100%{transform:translate(-50%,-50%)}50%{transform:translate(-50%,-50%) translateY(7px)}}
@keyframes visitChaseGuestStable{0%,100%{transform:translate(-50%,-50%) translateX(14px)}50%{transform:translate(-50%,-50%) translateX(-20px)}}
@keyframes visitDanceGuestStable{0%,100%{transform:translate(-50%,-50%) rotate(3deg) translateY(0)}50%{transform:translate(-50%,-50%) rotate(-4deg) translateY(-7px)}}

/* Movimento libero: animiamo translate/rotate separatamente dal transform che contiene la scala. */
#room.partner-visit-active .partner-room-visitor.visit-motion-walk .partner-room-pet{animation:visitGuestWalkStable .46s ease-in-out 2!important}
#room.partner-visit-active .partner-room-visitor.visit-motion-look .partner-room-pet{animation:visitGuestLookStable 1.6s ease-in-out 1!important}
#room.partner-visit-active .partner-room-visitor.visit-motion-rest .partner-room-pet{animation:visitGuestRestStable 1.8s ease-in-out 1!important}
#room.partner-visit-active .partner-room-visitor.visit-motion-play .partner-room-pet{animation:visitGuestPlayStable .58s ease-in-out 2!important}
#room.partner-visit-active .partner-room-visitor.visit-motion-sniff .partner-room-pet{animation:visitGuestSniffStable .7s ease-in-out 2!important}
@keyframes visitGuestWalkStable{0%,100%{translate:0 0;rotate:-1deg}50%{translate:0 -5px;rotate:2deg}}
@keyframes visitGuestLookStable{0%,100%{rotate:-2deg}35%{rotate:4deg}70%{rotate:-4deg}}
@keyframes visitGuestRestStable{0%,100%{translate:0 0}50%{translate:0 3px}}
@keyframes visitGuestPlayStable{0%,100%{translate:0 0;rotate:0deg}45%{translate:0 -7px;rotate:-3deg}70%{translate:0 -3px;rotate:4deg}}
@keyframes visitGuestSniffStable{0%,100%{translate:0 0}50%{translate:0 4px}}

/* Azioni base tra i due TinyPal. */
.partner-room-pet.behavior-greet:not(.sleeping){animation:visitGuestGreetStable .55s ease-in-out 6!important}
.partner-room-pet.idle-sniff:not(.sleeping){animation:visitGuestSniffBodyStable .6s ease-in-out 4!important}
.partner-room-pet.behavior-playbow:not(.sleeping){animation:visitGuestPlayBowStable 1.2s ease-in-out 2!important}
.partner-room-pet.idle-sit:not(.sleeping){animation:visitGuestSitStable 3.1s ease-in-out 1!important}
@keyframes visitGuestGreetStable{0%,100%{translate:0 0;rotate:-1deg}50%{translate:0 -8px;rotate:2deg}}
@keyframes visitGuestSniffBodyStable{0%,100%{translate:0 0}50%{translate:0 2px}}
@keyframes visitGuestPlayBowStable{0%,100%{translate:0 0;rotate:0deg}45%{translate:0 9px;rotate:-2deg}70%{translate:0 3px;rotate:1deg}}
@keyframes visitGuestSitStable{0%,100%{translate:0 0}18%,82%{translate:0 6px}}

/* Uso arredi dell'amico: nessuna compressione/zoom del TinyPal ospite. */
.partner-room-visitor.visit-furniture-drink .partner-room-pet{animation:visitGuestDrinkStable .72s ease-in-out 3!important}
.partner-room-visitor.visit-furniture-toy .partner-room-pet{animation:visitGuestToyStable .52s ease-in-out 5!important}
.partner-room-visitor.visit-furniture-nap .partner-room-pet{animation:visitGuestNapStable 3.4s ease-in-out both!important}
@keyframes visitGuestDrinkStable{0%,100%{translate:0 0}45%{translate:0 3px}}
@keyframes visitGuestToyStable{0%,100%{translate:0 0;rotate:-2deg}35%{translate:0 -6px;rotate:4deg}70%{translate:4px 0;rotate:-3deg}}
@keyframes visitGuestNapStable{0%,100%{translate:0 0}18%,82%{translate:0 8px}}

/* CO-OP: stessa regola, movimento sì, cambio taglia no. */
.partner-room-visitor.visit-coop-ball .partner-room-pet{animation:visitGuestCatchStable .52s ease-in-out 4!important}
.partner-room-visitor.visit-coop-snack .partner-room-pet{animation:visitGuestMunchStable .58s ease-in-out 5!important}
.partner-room-visitor.visit-coop-sleep .partner-room-pet{animation:visitGuestSleepStable 2.3s ease-in-out infinite!important}
@keyframes visitGuestCatchStable{0%,100%{translate:0 0;rotate:-1deg}50%{translate:0 -5px;rotate:2deg}}
@keyframes visitGuestMunchStable{0%,100%{translate:0 0}50%{translate:0 5px}}
@keyframes visitGuestSleepStable{0%,100%{translate:0 2px}50%{translate:0 4px}}

/* Anche gli stati passivi non devono modificare la taglia dell'ospite. */
.partner-room-pet.sleeping{animation:visitGuestPassiveSleepStable 3s ease-in-out infinite!important}
.partner-room-pet.resting:not(.sleeping){animation:visitGuestPassiveRestStable 3.4s ease-in-out infinite!important}
@keyframes visitGuestPassiveSleepStable{0%,100%{translate:0 3px;rotate:-2deg}50%{translate:0 0;rotate:2deg}}
@keyframes visitGuestPassiveRestStable{0%,100%{translate:0 2px}50%{translate:0 0}}


/* v8.69 — FIX DEFINITIVO SCALA OSPITE
   La scala non vive più sul .pet animato: è isolata in un guscio esterno.
   In questo modo nessuna keyframe legacy o futura può ingrandire/rimpicciolire l'ospite. */
.partner-room-pet-scale-shell{
  position:absolute;
  left:50%;
  top:43%;
  width:150px;
  height:168px;
  transform:translate(-50%,-50%) scale(var(--visit-pet-scale,.55)) !important;
  transform-origin:center center !important;
  translate:none !important;
  rotate:none !important;
  scale:1 !important;
  pointer-events:none;
  will-change:transform;
}
.partner-room-pet-scale-shell .partner-room-pet{
  position:absolute !important;
  inset:0 auto auto 0 !important;
  left:0 !important;
  top:0 !important;
  width:150px !important;
  height:168px !important;
  margin:0 !important;
  transform:none !important;
  transform-origin:center bottom !important;
  scale:1 !important;
  pointer-events:auto;
}
/* La vecchia regola scalava direttamente il pet: viene neutralizzata in ogni stato. */
.partner-room-visitor .partner-room-pet,
.partner-room-visitor.visit-snack .partner-room-pet,
.partner-room-visitor.visit-chase .partner-room-pet,
.partner-room-visitor.visit-dance .partner-room-pet,
.partner-room-visitor.visit-furniture-drink .partner-room-pet,
.partner-room-visitor.visit-furniture-toy .partner-room-pet,
.partner-room-visitor.visit-furniture-nap .partner-room-pet,
.partner-room-visitor.visit-coop-ball .partner-room-pet,
.partner-room-visitor.visit-coop-snack .partner-room-pet,
.partner-room-visitor.visit-coop-sleep .partner-room-pet,
#room.partner-visit-active .partner-room-visitor.visit-motion-idle .partner-room-pet,
#room.partner-visit-active .partner-room-visitor.visit-motion-walk .partner-room-pet,
#room.partner-visit-active .partner-room-visitor.visit-motion-look .partner-room-pet,
#room.partner-visit-active .partner-room-visitor.visit-motion-rest .partner-room-pet,
#room.partner-visit-active .partner-room-visitor.visit-motion-play .partner-room-pet,
#room.partner-visit-active .partner-room-visitor.visit-motion-sniff .partner-room-pet,
.partner-room-pet.behavior-greet,
.partner-room-pet.behavior-playbow,
.partner-room-pet.behavior-pounce,
.partner-room-pet.idle-sniff,
.partner-room-pet.idle-sit,
.partner-room-pet.happy,
.partner-room-pet.sad,
.partner-room-pet.sleeping,
.partner-room-pet.resting,
.partner-room-pet.mood-sick,
.partner-room-pet.react-cuddle{
  transform:none !important;
  scale:1 !important;
}
/* Anche il wrapper dell'ospite non deve mai ricevere una scala da keyframe legacy. */
.partner-room-visitor,
.partner-room-visitor.visit-snack,
.partner-room-visitor.visit-chase,
.partner-room-visitor.visit-dance,
.partner-room-visitor.visit-roaming,
.partner-room-visitor.visit-furniture-drink,
.partner-room-visitor.visit-furniture-toy,
.partner-room-visitor.visit-furniture-nap,
.partner-room-visitor.visit-coop-ball,
.partner-room-visitor.visit-coop-snack,
.partner-room-visitor.visit-coop-sleep{
  scale:1 !important;
}
/* Tutte le animazioni ospite continuano a usare solo translate/rotate. */
@keyframes visitGuestWalkLocked{0%,100%{translate:0 0;rotate:-1deg}50%{translate:0 -5px;rotate:2deg}}
@keyframes visitGuestLookLocked{0%,100%{translate:0 0;rotate:-2deg}35%{rotate:4deg}70%{rotate:-4deg}}
@keyframes visitGuestRestLocked{0%,100%{translate:0 0;rotate:0deg}50%{translate:0 3px}}
@keyframes visitGuestPlayLocked{0%,100%{translate:0 0;rotate:0deg}45%{translate:0 -7px;rotate:-3deg}70%{translate:0 -3px;rotate:4deg}}
@keyframes visitGuestSniffLocked{0%,100%{translate:0 0;rotate:0deg}50%{translate:0 4px}}
@keyframes visitGuestGreetLocked{0%,100%{translate:0 0;rotate:-1deg}50%{translate:0 -8px;rotate:2deg}}
@keyframes visitGuestPlayBowLocked{0%,100%{translate:0 0;rotate:0deg}45%{translate:0 9px;rotate:-2deg}70%{translate:0 3px;rotate:1deg}}
@keyframes visitGuestSitLocked{0%,100%{translate:0 0;rotate:0deg}18%,82%{translate:0 6px}}
@keyframes visitGuestDrinkLocked{0%,100%{translate:0 0;rotate:0deg}45%{translate:0 3px}}
@keyframes visitGuestToyLocked{0%,100%{translate:0 0;rotate:-2deg}35%{translate:0 -6px;rotate:4deg}70%{translate:4px 0;rotate:-3deg}}
@keyframes visitGuestNapLocked{0%,100%{translate:0 0;rotate:0deg}18%,82%{translate:0 8px}}
@keyframes visitGuestCatchLocked{0%,100%{translate:0 0;rotate:-1deg}50%{translate:0 -5px;rotate:2deg}}
@keyframes visitGuestMunchLocked{0%,100%{translate:0 0;rotate:0deg}50%{translate:0 5px}}
@keyframes visitGuestSleepLocked{0%,100%{translate:0 2px;rotate:0deg}50%{translate:0 4px}}
#room.partner-visit-active .partner-room-visitor.visit-motion-walk .partner-room-pet{animation:visitGuestWalkLocked .46s ease-in-out 2!important}
#room.partner-visit-active .partner-room-visitor.visit-motion-look .partner-room-pet{animation:visitGuestLookLocked 1.6s ease-in-out 1!important}
#room.partner-visit-active .partner-room-visitor.visit-motion-rest .partner-room-pet{animation:visitGuestRestLocked 1.8s ease-in-out 1!important}
#room.partner-visit-active .partner-room-visitor.visit-motion-play .partner-room-pet{animation:visitGuestPlayLocked .58s ease-in-out 2!important}
#room.partner-visit-active .partner-room-visitor.visit-motion-sniff .partner-room-pet{animation:visitGuestSniffLocked .7s ease-in-out 2!important}
.partner-room-pet.behavior-greet:not(.sleeping){animation:visitGuestGreetLocked .55s ease-in-out 6!important}
.partner-room-pet.idle-sniff:not(.sleeping){animation:visitGuestSniffLocked .6s ease-in-out 4!important}
.partner-room-pet.behavior-playbow:not(.sleeping){animation:visitGuestPlayBowLocked 1.2s ease-in-out 2!important}
.partner-room-pet.idle-sit:not(.sleeping){animation:visitGuestSitLocked 3.1s ease-in-out 1!important}
.partner-room-visitor.visit-furniture-drink .partner-room-pet{animation:visitGuestDrinkLocked .72s ease-in-out 3!important}
.partner-room-visitor.visit-furniture-toy .partner-room-pet{animation:visitGuestToyLocked .52s ease-in-out 5!important}
.partner-room-visitor.visit-furniture-nap .partner-room-pet{animation:visitGuestNapLocked 3.4s ease-in-out both!important}
.partner-room-visitor.visit-coop-ball .partner-room-pet{animation:visitGuestCatchLocked .52s ease-in-out 4!important}
.partner-room-visitor.visit-coop-snack .partner-room-pet{animation:visitGuestMunchLocked .58s ease-in-out 5!important}
.partner-room-visitor.visit-coop-sleep .partner-room-pet{animation:visitGuestSleepLocked 2.3s ease-in-out infinite!important}
.partner-room-pet.sleeping{animation:visitGuestSleepLocked 3s ease-in-out infinite!important}
.partner-room-pet.resting:not(.sleeping){animation:visitGuestRestLocked 3.4s ease-in-out infinite!important}


/* v8.70 — Multiplayer Live Plus */
.social-live-strip{grid-template-columns:10px minmax(0,1fr) auto}
.social-live-retry{min-height:30px;border:0;border-radius:10px;padding:0 9px;background:rgba(255,255,255,.72);color:#5d6e61;font-size:calc(8px + var(--tp-text-extra,0px));font-weight:950}
.social-live-retry:disabled{opacity:.45}
.social-live-strip[data-state="slow"]>span,.partner-live-quality[data-state="slow"] .partner-live-dot{background:#c39f5f!important}
.social-live-strip[data-state="stale"]>span,.partner-live-quality[data-state="stale"] .partner-live-dot{background:#bd7f6e!important}
.partner-live-quality{display:grid;grid-template-columns:9px minmax(0,1fr) auto;gap:7px;align-items:center;margin:5px 0 6px;padding:7px 8px;border-radius:13px;background:#edf4ee;border:1px solid rgba(78,108,84,.08)}
.partner-live-quality.hidden{display:none!important}
.partner-live-dot{width:8px;height:8px;border-radius:50%;background:#70a579;box-shadow:0 0 0 3px rgba(112,165,121,.10);animation:socialLivePulse 1.5s ease-in-out infinite}
.partner-live-quality strong{display:block;font-size:calc(9px + var(--tp-text-extra,0px))}.partner-live-quality small{display:block;margin-top:1px;font-size:calc(7.4px + var(--tp-text-extra,0px));color:var(--muted);font-weight:700}
.partner-live-quality button{min-height:28px;border:0;border-radius:9px;padding:0 8px;background:#fff;color:#5e6d61;font-size:calc(7.7px + var(--tp-text-extra,0px));font-weight:950}
.partner-live-quality[data-state="error"],.partner-live-quality[data-state="stale"],.partner-live-quality[data-state="offline"]{background:#f7eeee}
.partner-live-quality[data-state="error"] .partner-live-dot,.partner-live-quality[data-state="offline"] .partner-live-dot{background:#b67f75;animation:none}
.partner-main-visit-actions.is-syncing .partner-visit-action-grid,.partner-main-visit-actions.is-syncing .partner-furniture-grid{opacity:.62;pointer-events:none}
.partner-visit-feed{margin:6px 0 7px;padding:7px 8px;border-radius:14px;background:#f7f4ef;border:1px solid rgba(75,60,47,.06)}
.partner-visit-feed.hidden{display:none!important}.partner-visit-feed-head{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:5px}.partner-visit-feed-head span{font-size:calc(7.5px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.07em;color:#7c7269}.partner-visit-feed-head small{font-size:calc(7.5px + var(--tp-text-extra,0px));color:var(--muted)}
#partnerVisitFeedList{display:grid;gap:3px}.partner-feed-row{display:grid;grid-template-columns:7px minmax(0,1fr) auto;gap:6px;align-items:center;padding:4px 5px;border-radius:9px;background:rgba(255,255,255,.72)}.partner-feed-row>i{width:6px;height:6px;border-radius:50%;background:#809487}.partner-feed-row.remote>i{background:#9a87a8}.partner-feed-row strong{display:inline;font-size:calc(7.8px + var(--tp-text-extra,0px))}.partner-feed-row small{display:inline;margin-left:4px;font-size:calc(7.4px + var(--tp-text-extra,0px));color:var(--muted)}.partner-feed-row time{font-size:calc(7.4px + var(--tp-text-extra,0px));color:#9b9188}.partner-feed-empty{padding:6px;text-align:center;font-size:calc(7.5px + var(--tp-text-extra,0px));color:var(--muted)}
@media(max-width:560px){.partner-live-quality{padding:6px 7px}.partner-visit-feed{padding:6px}.social-live-retry{padding:0 7px}.partner-feed-row:nth-child(n+4){display:none}}


/* =========================================================
   TinyPal v8.74 — FIX HOME DESKTOP DOPO IL NUOVO HUB
   La Home moderna è lineare: annulla la vecchia griglia
   desktop v8.18 che distribuiva blocchi ormai rimossi/nascosti.
   ========================================================= */
@media(min-width:900px){
  html,body{overflow-x:hidden}

  .app-shell{
    width:min(calc(100% - 126px),1180px)!important;
    max-width:1180px!important;
    min-height:100dvh;
    margin:0 auto!important;
    padding:28px 24px 52px!important;
  }

  .home-topbar{
    width:100%;
    max-width:1080px;
    margin:0 auto 16px!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:end!important;
    gap:20px!important;
  }
  .home-top-actions{
    width:auto!important;
    justify-self:end;
    grid-template-columns:repeat(3,minmax(122px,1fr))!important;
  }
  .home-action-btn{min-width:122px}

  main.home-layout{
    display:block!important;
    grid-template-columns:none!important;
    grid-template-rows:none!important;
    width:100%!important;
    max-width:1080px!important;
    margin:0 auto!important;
    padding:0 0 26px!important;
  }

  /* La stanza usa tutta la larghezza disponibile: niente canvas
     da 760px che forza scroll/overflow sul desktop compatto. */
  main.home-layout>.room-scroll-shell{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    overflow-x:hidden!important;
    border-radius:30px;
  }
  main.home-layout>.room-scroll-shell>.room{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    height:450px;
    margin:0!important;
  }

  main.home-layout>.partner-visit-dock,
  main.home-layout>.pet-info-strip,
  main.home-layout>.egg-card,
  main.home-layout>.home-category-hub{
    width:100%!important;
    max-width:none!important;
  }
  main.home-layout>.partner-visit-dock{margin-top:12px}
  main.home-layout>.pet-info-strip{margin-top:14px}
  main.home-layout>.egg-card{margin-top:14px}

  .pet-info-strip{
    grid-template-columns:minmax(260px,1fr) auto!important;
    gap:18px!important;
    padding:16px 18px!important;
  }
  .pet-info-side{flex-wrap:nowrap!important}
  .pet-family-chip{min-width:138px}

  .home-category-hub{
    margin:18px 0 0!important;
    padding:0 0 4px!important;
  }
  .home-category-head{margin:0 2px 12px!important}
  .home-category-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:12px!important;
  }
  .home-category-card{
    min-height:94px;
    padding:16px 15px;
    border-radius:23px;
  }
  .home-category-icon{width:46px;height:46px;font-size:1.42rem}

  /* Sidebar desktop stabile a qualsiasi larghezza, senza uscire
     fuori viewport nel tratto 1081–1300px. */
  .dock{
    left:max(16px,calc(50% - 690px))!important;
    top:50%!important;
    bottom:auto!important;
    transform:translateY(-50%)!important;
    width:82px!important;
    min-height:0!important;
    height:auto!important;
    padding:10px!important;
    grid-template-columns:1fr!important;
    grid-template-rows:repeat(5,76px)!important;
    gap:6px!important;
    border:1px solid rgba(80,60,40,.10)!important;
    border-radius:24px!important;
    z-index:28!important;
  }

  .bottom-sheet{
    width:min(680px,calc(100% - 48px))!important;
    max-height:86dvh;
  }
  .home-category-sheet{max-height:86dvh}
  .toast{bottom:30px}
}

@media(min-width:900px) and (max-width:1040px){
  .app-shell{
    width:calc(100% - 110px)!important;
    padding:24px 18px 48px!important;
  }
  .home-topbar,
  main.home-layout{max-width:none!important}
  .home-topbar{gap:14px!important}
  .home-top-actions{grid-template-columns:repeat(3,minmax(108px,1fr))!important}
  .home-action-btn{min-width:108px;padding:8px}
  .home-action-copy strong{font-size:calc(11.5px + var(--tp-text-extra,0px))}
  main.home-layout>.room-scroll-shell>.room{height:425px}
  .home-category-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:9px!important}
  .home-category-card{min-height:88px;padding:14px 12px}
}

@media(min-width:1280px){
  main.home-layout>.room-scroll-shell>.room{height:470px}
  .home-category-card{min-height:98px}
}


/* TinyPal v8.75 — Essenziali come veri arredi CSS nella cameretta */
.room-species-essentials{display:none!important}
.species-essential-furniture-layer{position:absolute;inset:0;pointer-events:none}
.species-essential-object{position:absolute;display:block;border:0;padding:0;margin:0;background:transparent;color:inherit;appearance:none;-webkit-appearance:none;pointer-events:auto;filter:drop-shadow(0 8px 7px rgba(62,42,27,.16));transform-origin:center center;transition:filter .18s ease,opacity .18s ease}
.species-essential-object.hidden{display:none!important}
.species-essential-object>*{position:absolute;display:block;pointer-events:none}
.species-essential-object::after{content:"";position:absolute;left:12%;right:12%;bottom:-5px;height:9px;border-radius:50%;background:rgba(65,45,30,.10);filter:blur(4px);z-index:-1}
.room.night .species-essential-object{filter:brightness(.78) saturate(.86) drop-shadow(0 8px 7px rgba(0,0,0,.28))}
.room.arranging .species-essential-object.selected-object{filter:drop-shadow(0 0 7px rgba(255,255,255,.9)) drop-shadow(0 8px 7px rgba(62,42,27,.18))}

/* Cane — collare e guinzaglio */
.essential-dog-leash{left:8%;top:33%;width:78px;height:92px}
.leash-board{left:8px;top:4px;width:62px;height:28px;border-radius:11px;background:linear-gradient(180deg,#cfa276,#a8744d);box-shadow:inset 0 -4px rgba(91,58,34,.12),0 4px 7px rgba(70,46,28,.09)}
.leash-hook{left:35px;top:23px;width:9px;height:13px;border:3px solid #766c65;border-top:0;border-radius:0 0 8px 8px}
.leash-loop{left:18px;top:29px;width:43px;height:52px;border:6px solid #6e8d7a;border-top-width:5px;border-radius:45% 48% 50% 46%;transform:rotate(8deg);box-shadow:inset 0 0 0 2px rgba(255,255,255,.2)}
.leash-collar{left:12px;top:44px;width:43px;height:12px;border-radius:8px;background:linear-gradient(180deg,#e6a85d,#c97c39);transform:rotate(-18deg);box-shadow:inset 0 -3px rgba(100,57,24,.15)}
.leash-collar::after{content:"";position:absolute;right:5px;top:3px;width:5px;height:5px;border:2px solid #e9d5ae;border-radius:50%}

/* Cane — masticativo */
.essential-dog-chew{left:18%;bottom:9%;width:100px;height:54px}
.chew-mat{left:4px;right:4px;bottom:2px;height:31px;border-radius:50%;background:radial-gradient(ellipse,#cfa98a 0 64%,#b48464 66% 74%,transparent 76%);opacity:.88}
.chew-bone{left:27px;top:17px;width:47px;height:15px;border-radius:10px;background:linear-gradient(180deg,#f0dfc4,#caa981);transform:rotate(-10deg);box-shadow:inset 0 -3px rgba(104,76,48,.12)}
.chew-knot{width:21px;height:21px;border-radius:50%;background:#e8d2b0;top:13px;box-shadow:inset -3px -3px rgba(111,83,55,.10)}
.chew-knot-a{left:17px}.chew-knot-b{right:16px}

/* Cane — kit spazzola */
.essential-dog-brush{left:28%;bottom:12%;width:83px;height:68px}
.brush-basket{left:9px;bottom:2px;width:64px;height:37px;border-radius:10px 10px 17px 17px;background:repeating-linear-gradient(90deg,#b98155 0 7px,#c99768 7px 13px);border-top:5px solid #9b6948;box-shadow:inset 0 -5px rgba(83,52,31,.1)}
.brush-tool{left:19px;top:5px;width:39px;height:14px;border-radius:9px;background:#7c8d7f;transform:rotate(-18deg)}
.brush-tool::after{content:"";position:absolute;right:-15px;top:4px;width:21px;height:6px;border-radius:5px;background:#6c4f3d}
.brush-bristles{left:19px;top:16px;width:35px;height:8px;background:repeating-linear-gradient(90deg,#574d45 0 2px,transparent 2px 4px);transform:rotate(-18deg)}
.brush-cloth{right:11px;top:25px;width:22px;height:25px;border-radius:4px 8px 8px 5px;background:#d9b6a8;transform:rotate(7deg)}

/* Gatto — lettiera */
.essential-cat-litter{right:7%;bottom:8%;width:105px;height:57px}
.litter-tray{left:3px;right:3px;bottom:3px;height:43px;border-radius:11px 11px 18px 18px;background:linear-gradient(180deg,#718d91,#536e72);box-shadow:inset 0 6px rgba(255,255,255,.12),inset 0 -6px rgba(36,58,62,.12)}
.litter-fill{left:13px;right:13px;bottom:13px;height:22px;border-radius:50%;background-color:#d7c7a7;background-image:radial-gradient(circle at 15% 45%,#b8a684 0 2px,transparent 3px),radial-gradient(circle at 42% 65%,#b8a684 0 2px,transparent 3px),radial-gradient(circle at 75% 38%,#b8a684 0 2px,transparent 3px),radial-gradient(circle at 88% 70%,#b8a684 0 1.5px,transparent 2.5px)}
.litter-scoop{right:8px;top:1px;width:14px;height:28px;border-radius:8px;background:#d6b472;transform:rotate(18deg)}
.litter-scoop::before{content:"";position:absolute;left:2px;top:3px;width:10px;height:9px;border-radius:5px;background:repeating-linear-gradient(90deg,transparent 0 2px,#9d7d49 2px 3px)}

/* Gatto — tiragraffi */
.essential-cat-scratch{right:18%;bottom:12%;width:74px;height:118px}
.scratch-base{left:4px;bottom:2px;width:66px;height:17px;border-radius:50%;background:#a78a79;box-shadow:inset 0 -5px rgba(83,57,44,.13)}
.scratch-post{left:29px;top:25px;width:18px;height:78px;border-radius:8px;background:repeating-linear-gradient(0deg,#c3a06f 0 5px,#a67e52 5px 8px);box-shadow:inset 4px 0 rgba(255,255,255,.12)}
.scratch-top{left:13px;top:13px;width:50px;height:20px;border-radius:50%;background:#c7ad9e;box-shadow:inset 0 -5px rgba(94,65,52,.12)}
.scratch-toy{left:55px;top:34px;width:12px;height:12px;border-radius:50%;background:#d78776;box-shadow:0 18px 0 -5px #806d63}
.scratch-toy::before{content:"";position:absolute;left:5px;top:-15px;width:2px;height:17px;background:#82766d}

/* Gatto — rifugio */
.essential-cat-hide{right:30%;bottom:9%;width:108px;height:82px}
.hide-shell{left:4px;right:4px;bottom:2px;height:72px;border-radius:16px 16px 12px 12px;background:linear-gradient(145deg,#c99d83,#a97561);box-shadow:inset 0 5px rgba(255,255,255,.10),inset 0 -7px rgba(76,50,40,.11)}
.hide-shell::before,.hide-shell::after{content:"";position:absolute;top:-9px;width:23px;height:23px;background:#bd8b73;clip-path:polygon(50% 0,100% 100%,0 100%)}
.hide-shell::before{left:13px}.hide-shell::after{right:13px}
.hide-entry{left:36px;bottom:7px;width:37px;height:43px;border-radius:50% 50% 42% 42%;background:#4d403b;box-shadow:inset 0 5px 10px rgba(0,0,0,.28)}
.hide-cushion{left:39px;bottom:6px;width:32px;height:9px;border-radius:50%;background:#e1c3ad}

/* Coniglio — portafieno */
.essential-rabbit-hay{left:9%;top:57%;width:82px;height:79px}
.hay-frame{left:8px;top:4px;width:66px;height:61px;border:5px solid #9d714b;border-radius:8px;background:rgba(194,153,99,.12);box-shadow:inset 0 -5px rgba(72,48,29,.07)}
.hay-frame::after{content:"";position:absolute;left:7px;right:7px;bottom:-10px;height:9px;border-radius:6px;background:#88613f}
.hay-bundle{bottom:17px;width:5px;height:45px;border-radius:5px;background:#d9bd65;transform-origin:bottom}.hay-a{left:23px;transform:rotate(-12deg)}.hay-b{left:38px;height:51px;transform:rotate(4deg)}.hay-c{left:53px;height:43px;transform:rotate(13deg)}
.hay-bar{left:15px;right:15px;top:26px;height:4px;background:#8f6645;box-shadow:0 15px 0 #8f6645}

/* Coniglio — lettiera */
.essential-rabbit-litter{left:26%;bottom:7%;width:92px;height:52px}
.rabbit-litter-tray{left:2px;right:2px;bottom:2px;height:38px;border-radius:10px 10px 17px 17px;background:linear-gradient(180deg,#c8b19a,#a68d75);box-shadow:inset 0 5px rgba(255,255,255,.13)}
.rabbit-pellets{left:11px;right:11px;bottom:11px;height:17px;border-radius:50%;background-color:#d8c5a0;background-image:radial-gradient(circle,#8f7b5e 0 2px,transparent 2.5px);background-size:12px 9px}
.rabbit-hay-corner{right:12px;bottom:18px;width:24px;height:17px;background:repeating-linear-gradient(100deg,#d7bb62 0 3px,transparent 3px 5px);transform:rotate(-6deg)}

/* Coniglio — casetta */
.essential-rabbit-house{left:39%;bottom:8%;width:114px;height:98px}
.rabbit-house-body{left:8px;right:8px;bottom:2px;height:67px;border-radius:8px;background:linear-gradient(90deg,#b67e50,#ca9563 48%,#ad7449);box-shadow:inset 0 -6px rgba(70,43,26,.08)}
.rabbit-house-roof{left:0;top:4px;width:114px;height:45px;background:#8c6045;clip-path:polygon(50% 0,100% 100%,0 100%);filter:drop-shadow(0 4px 2px rgba(65,43,29,.12))}
.rabbit-house-door{left:42px;bottom:2px;width:31px;height:44px;border-radius:18px 18px 3px 3px;background:#4e3a2f}
.rabbit-house-step{left:35px;bottom:-2px;width:46px;height:8px;border-radius:50%;background:#8d6548}

/* Coniglio — legnetti */
.essential-rabbit-chew{left:53%;bottom:7%;width:88px;height:52px}
.rabbit-chew-base{left:8px;right:8px;bottom:2px;height:18px;border-radius:50%;background:#b69672;opacity:.55}
.rabbit-chew-stick{left:17px;top:15px;width:56px;height:10px;border-radius:8px;background:linear-gradient(180deg,#a97445,#7d5234);box-shadow:inset 0 2px rgba(255,255,255,.12)}
.essential-rabbit-chew .stick-a{transform:rotate(17deg)}.essential-rabbit-chew .stick-b{top:25px;left:22px;width:50px;transform:rotate(-12deg);background:#c08b53}
.rabbit-chew-cube{left:35px;top:7px;width:22px;height:22px;border-radius:4px;background:#d3ad70;transform:rotate(12deg);box-shadow:inset -4px -4px rgba(91,58,34,.12)}

/* Volpe — tana */
.essential-fox-den{right:28%;bottom:8%;width:128px;height:82px}
.fox-den-shell{left:3px;right:3px;bottom:2px;height:67px;border-radius:58% 58% 17px 17px;background:linear-gradient(180deg,#8b6b4f,#6d503d);box-shadow:inset 0 7px rgba(255,255,255,.06)}
.fox-den-entry{left:43px;bottom:2px;width:47px;height:49px;border-radius:50% 50% 8px 8px;background:#352e2b;box-shadow:inset 0 7px 12px rgba(0,0,0,.32)}
.fox-den-moss{left:16px;top:5px;width:92px;height:18px;border-radius:50%;background:radial-gradient(circle at 25% 60%,#82915e 0 17%,transparent 18%),radial-gradient(circle at 55% 45%,#6f8450 0 24%,transparent 25%),radial-gradient(circle at 78% 65%,#8d995f 0 18%,transparent 19%)}
.fox-den-stone{left:10px;bottom:0;width:19px;height:12px;border-radius:50%;background:#82766d;box-shadow:92px -3px 0 #746960}

/* Volpe — tronco */
.essential-fox-log{right:14%;bottom:8%;width:118px;height:61px}
.fox-log-body{left:10px;top:20px;width:93px;height:25px;border-radius:13px;background:repeating-linear-gradient(0deg,#8f5f38 0 6px,#77492d 6px 9px);transform:rotate(-8deg);box-shadow:inset 0 4px rgba(255,255,255,.08)}
.fox-log-end{right:5px;top:17px;width:29px;height:29px;border-radius:50%;background:radial-gradient(circle,#c18b55 0 18%,#9b6a42 20% 42%,#6f452c 44% 49%,#a97649 51% 70%,#71472d 72%);transform:rotate(-8deg)}
.fox-log-branch{width:10px;height:30px;border-radius:8px;background:#775034;transform-origin:bottom}.essential-fox-log .branch-a{left:34px;top:4px;transform:rotate(-38deg)}.essential-fox-log .branch-b{left:66px;top:29px;height:24px;transform:rotate(48deg)}

/* Volpe — cassa scavo */
.essential-fox-dig{right:4%;bottom:7%;width:112px;height:61px}
.fox-dig-box{left:2px;right:2px;bottom:2px;height:50px;border-radius:8px 8px 14px 14px;background:linear-gradient(180deg,#a6754e,#81583d);box-shadow:inset 0 6px rgba(255,255,255,.08)}
.fox-dig-soil{left:10px;right:10px;top:8px;height:30px;border-radius:50%;background:#6f513b;background-image:radial-gradient(circle at 25% 40%,#927055 0 3px,transparent 4px),radial-gradient(circle at 65% 60%,#9c7859 0 3px,transparent 4px)}
.fox-dig-stone{width:12px;height:9px;border-radius:50%;background:#aaa096;top:17px}.essential-fox-dig .stone-a{left:23px}.essential-fox-dig .stone-b{right:19px;top:23px;background:#91877e}

/* Volpe — piattaforma */
.essential-fox-platform{right:10%;top:48%;width:128px;height:124px}
.fox-platform-deck{left:15px;top:40px;width:98px;height:17px;border-radius:6px;background:linear-gradient(180deg,#ac7b51,#865b3f);box-shadow:inset 0 -5px rgba(65,42,27,.10)}
.fox-platform-leg{top:54px;width:10px;height:62px;border-radius:3px;background:#765039}.essential-fox-platform .leg-a{left:28px}.essential-fox-platform .leg-b{right:26px}
.fox-platform-roof{left:6px;top:10px;width:116px;height:35px;background:#7c5a43;clip-path:polygon(8% 100%,20% 0,80% 0,92% 100%);border-radius:8px}
.fox-platform-ramp{left:46px;top:62px;width:15px;height:66px;border-radius:5px;background:repeating-linear-gradient(0deg,#9d704b 0 6px,#765139 6px 9px);transform:rotate(37deg);transform-origin:top}

/* Orso — rifugio di rocce */
.essential-bear-den{left:31%;bottom:7%;width:142px;height:90px}
.bear-den-rock{border-radius:48% 52% 35% 42%;background:linear-gradient(145deg,#827c72,#5e5a53);box-shadow:inset 5px 5px rgba(255,255,255,.06)}
.essential-bear-den .rock-a{left:3px;top:19px;width:70px;height:62px;transform:rotate(-8deg)}.essential-bear-den .rock-b{right:3px;top:18px;width:71px;height:63px;transform:rotate(8deg)}.essential-bear-den .rock-c{left:38px;top:4px;width:68px;height:64px}
.bear-den-entry{left:45px;bottom:1px;width:55px;height:57px;border-radius:50% 50% 9px 9px;background:#292827;box-shadow:inset 0 8px 14px rgba(0,0,0,.36)}
.bear-den-bed{left:48px;bottom:2px;width:49px;height:11px;border-radius:50%;background:#937a58}

/* Orso — tronco robusto */
.essential-bear-log{left:49%;bottom:7%;width:150px;height:78px}
.bear-log-main{left:15px;top:29px;width:120px;height:31px;border-radius:17px;background:repeating-linear-gradient(0deg,#755039 0 7px,#5e3d2c 7px 11px);transform:rotate(-11deg);box-shadow:inset 0 5px rgba(255,255,255,.07)}
.bear-log-end{right:2px;top:23px;width:38px;height:38px;border-radius:50%;background:radial-gradient(circle,#bc8350 0 18%,#885937 20% 38%,#65402a 40% 48%,#9c6740 50% 70%,#5f3d29 72%);transform:rotate(-11deg)}
.bear-log-branch{width:14px;height:38px;border-radius:8px;background:#63432f;transform-origin:bottom}.bear-branch-a{left:40px;top:3px;transform:rotate(-42deg)}.bear-branch-b{left:82px;top:40px;height:31px;transform:rotate(53deg)}
.bear-log-bark{left:40px;top:34px;width:68px;height:3px;border-radius:3px;background:rgba(218,171,115,.24);transform:rotate(-11deg);box-shadow:0 9px 0 rgba(218,171,115,.16)}

/* Orso — area scavo */
.essential-bear-dig{left:67%;bottom:5%;width:126px;height:65px}
.bear-dig-rim{left:2px;right:2px;bottom:2px;height:48px;border-radius:50%;background:radial-gradient(ellipse,#6a513d 0 57%,#8b8175 59% 67%,#6f6961 69% 76%,transparent 78%)}
.bear-dig-earth{left:22px;right:22px;bottom:12px;height:28px;border-radius:50%;background:#73533c;background-image:radial-gradient(circle at 30% 45%,#957157 0 3px,transparent 4px),radial-gradient(circle at 72% 60%,#5c4233 0 3px,transparent 4px)}
.bear-dig-rock{width:19px;height:12px;border-radius:50%;background:#8e8880;bottom:9px}.essential-bear-dig .dig-rock-a{left:11px;transform:rotate(11deg)}.essential-bear-dig .dig-rock-b{right:12px;bottom:14px;background:#746f69}
.bear-dig-paw{left:51px;top:15px;width:22px;height:14px;border-radius:48%;background:rgba(183,145,101,.45);box-shadow:-9px -6px 0 -5px rgba(183,145,101,.45),0 -9px 0 -5px rgba(183,145,101,.45),9px -6px 0 -5px rgba(183,145,101,.45)}

/* Orso — dispenser */
.essential-bear-feeder{right:3%;bottom:13%;width:86px;height:91px}
.forage-box{left:9px;top:17px;width:68px;height:61px;border-radius:12px;background:linear-gradient(145deg,#6d806a,#4f6652);box-shadow:inset 5px 5px rgba(255,255,255,.07),inset -5px -5px rgba(32,55,36,.11)}
.forage-hole{width:13px;height:13px;border-radius:50%;background:#263c2c;box-shadow:inset 0 2px 4px rgba(0,0,0,.3)}.essential-bear-feeder .hole-a{left:22px;top:34px}.essential-bear-feeder .hole-b{right:20px;top:45px}.essential-bear-feeder .hole-c{left:35px;top:59px}
.forage-lid{left:15px;top:11px;width:56px;height:14px;border-radius:8px;background:#88977e;box-shadow:inset 0 -4px rgba(48,67,50,.13)}
.forage-handle{left:34px;top:3px;width:19px;height:13px;border:4px solid #5d6e59;border-bottom:0;border-radius:10px 10px 0 0}

/* Su iPhone restano veri arredi, solo leggermente più compatti. */
@media(max-width:560px){
  .species-essential-object{filter:drop-shadow(0 6px 5px rgba(62,42,27,.15))}
  .essential-dog-leash,.essential-rabbit-hay{scale:.92;transform-origin:left bottom}
  .essential-cat-scratch,.essential-fox-platform{scale:.9;transform-origin:center bottom}
  .essential-bear-den,.essential-bear-log{scale:.92;transform-origin:center bottom}
}


/* v8.76 — Essenziali vivi: il TinyPal raggiunge e usa davvero gli arredi di specie. */
.pet-zone.activity-essential{z-index:8}
.pet-zone.activity-essential.essential-interacting{z-index:9}
.pet-zone.activity-essential .pet{transform-origin:center bottom}
.species-essential-object.essential-in-use{filter:brightness(1.05) drop-shadow(0 9px 9px rgba(62,42,27,.18))}
.room.night .species-essential-object.essential-in-use{filter:brightness(.88) saturate(.92) drop-shadow(0 9px 9px rgba(0,0,0,.30))}

/* Mai scalare il TinyPal durante queste interazioni: la taglia resta specie + età. */
.pet[class*="essential-use-"]{scale:1!important}
.pet.essential-use-anticipate{animation:essentialAnticipate .62s ease-in-out 5!important}
.pet.essential-use-chew,.pet.essential-use-pawchew,.pet.essential-use-nibble,.pet.essential-use-forage{animation:essentialNibble .58s ease-in-out 6!important}
.pet.essential-use-groom{animation:essentialSit .8s ease-in-out 4!important}
.pet.essential-use-litter,.pet.essential-use-dig{animation:essentialDigBody .48s ease-in-out 8!important}
.pet.essential-use-scratchpost{animation:essentialScratchBody .55s ease-in-out 7!important}
.pet.essential-use-hide{animation:essentialHide .9s ease-in-out 4!important}
.pet.essential-use-observe{animation:essentialObserve 1.1s ease-in-out 4!important}
.pet.essential-use-climb{animation:essentialClimb .72s ease-in-out 5!important}
@keyframes essentialAnticipate{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-5px) rotate(2deg)}}
@keyframes essentialNibble{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(2px) rotate(1.5deg)}}
@keyframes essentialSit{0%,100%{transform:translateY(0)}50%{transform:translateY(3px)}}
@keyframes essentialDigBody{0%,100%{transform:translateX(-2px) translateY(1px) rotate(-1deg)}50%{transform:translateX(2px) translateY(3px) rotate(1deg)}}
@keyframes essentialScratchBody{0%,100%{transform:translateY(1px) rotate(-1deg)}50%{transform:translateY(-4px) rotate(2deg)}}
@keyframes essentialHide{0%,100%{transform:translateY(2px) rotate(0)}50%{transform:translateY(5px) rotate(-1deg)}}
@keyframes essentialObserve{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-3px) rotate(2deg)}}
@keyframes essentialClimb{0%,100%{transform:translateY(1px) rotate(-2deg)}50%{transform:translateY(-8px) rotate(3deg)}}

/* Testa + orecchie si muovono come un unico rig, senza staccarsi. */
.pet.essential-use-chew .head,.pet.essential-use-pawchew .head,.pet.essential-use-nibble .head,.pet.essential-use-forage .head{animation:essentialHeadNibble .46s ease-in-out 7 alternate!important}
.pet.essential-use-chew .ear,.pet.essential-use-pawchew .ear,.pet.essential-use-nibble .ear,.pet.essential-use-forage .ear{animation:essentialEarNibble .46s ease-in-out 7 alternate!important}
@keyframes essentialHeadNibble{from{translate:0 2px;rotate:-2deg}to{translate:0 7px;rotate:4deg}}
@keyframes essentialEarNibble{from{translate:0 2px;rotate:-1deg}to{translate:0 7px;rotate:2deg}}
.pet.essential-use-groom .head{animation:essentialGroomHead .7s ease-in-out 5!important}.pet.essential-use-groom .ear{animation:essentialGroomEar .7s ease-in-out 5!important}
@keyframes essentialGroomHead{0%,100%{translate:0 0;rotate:0deg}50%{translate:0 5px;rotate:-7deg}}@keyframes essentialGroomEar{0%,100%{translate:0 0;rotate:0deg}50%{translate:0 5px;rotate:-3deg}}
.pet.essential-use-dig .leg-left,.pet.essential-use-litter .leg-left{animation:essentialPawA .30s ease-in-out 10!important}.pet.essential-use-dig .leg-right,.pet.essential-use-litter .leg-right{animation:essentialPawB .30s ease-in-out 10!important}
@keyframes essentialPawA{0%,100%{translate:0 0;rotate:0deg}50%{translate:7px -8px;rotate:-12deg}}@keyframes essentialPawB{0%,100%{translate:0 0;rotate:0deg}50%{translate:-7px -8px;rotate:12deg}}
.pet.essential-use-scratchpost .leg-left{animation:essentialScratchPaw .35s ease-in-out 9!important}.pet.essential-use-scratchpost .head,.pet.essential-use-scratchpost .ear{animation:essentialScratchLook .7s ease-in-out 5 alternate!important}
@keyframes essentialScratchPaw{0%,100%{translate:0 0;rotate:0deg}50%{translate:7px -16px;rotate:-10deg}}@keyframes essentialScratchLook{from{translate:0 0;rotate:-3deg}to{translate:0 -3px;rotate:4deg}}
.pet.essential-use-observe .head{animation:essentialObserveHead 1.6s ease-in-out 3!important}.pet.essential-use-observe .ear{animation:essentialObserveEar 1.6s ease-in-out 3!important}
@keyframes essentialObserveHead{0%,100%{rotate:-6deg}50%{rotate:8deg}}@keyframes essentialObserveEar{0%,100%{rotate:-3deg}50%{rotate:4deg}}

/* Gli oggetti rispondono all'uso senza spostarsi dalla posizione salvata. */
.essential-cat-scratch.essential-in-use .scratch-toy{animation:essentialObjectSwing .45s ease-in-out 7 alternate}
.essential-rabbit-hay.essential-in-use .hay-bundle{animation:essentialHayNibble .5s ease-in-out 6 alternate}
.essential-fox-dig.essential-in-use .fox-dig-soil,.essential-bear-dig.essential-in-use .bear-dig-earth{animation:essentialSoilMove .4s ease-in-out 8 alternate}
.essential-bear-feeder.essential-in-use .forage-lid{animation:essentialFeederTap .55s ease-in-out 6 alternate}
.essential-dog-chew.essential-in-use .chew-bone,.essential-rabbit-chew.essential-in-use .rabbit-chew-stick,.essential-fox-log.essential-in-use .fox-log-body{animation:essentialObjectNudge .55s ease-in-out 5 alternate}
@keyframes essentialObjectSwing{from{rotate:-8deg;translate:0 0}to{rotate:12deg;translate:2px 1px}}
@keyframes essentialHayNibble{from{translate:0 0}to{translate:1px 2px}}
@keyframes essentialSoilMove{from{translate:0 0}to{translate:2px 1px}}
@keyframes essentialFeederTap{from{translate:0 0;rotate:0deg}to{translate:1px -2px;rotate:2deg}}
@keyframes essentialObjectNudge{from{translate:0 0}to{translate:2px 1px}}
@media(prefers-reduced-motion:reduce){.pet[class*="essential-use-"],.species-essential-object.essential-in-use *{animation:none!important}}

/* Avvicinamento: piccolo trotto visibile, sempre a scala invariata. */
.pet-zone.activity-essential:not(.essential-interacting) .pet{animation:essentialApproachWalk .34s ease-in-out infinite!important}
@keyframes essentialApproachWalk{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-4px) rotate(1deg)}}
.essential-dog-leash.essential-in-use .leash-loop{animation:essentialLeashSwing .48s ease-in-out 6 alternate}
.essential-dog-brush.essential-in-use .brush-tool{animation:essentialBrushReady .6s ease-in-out 5 alternate}
@keyframes essentialLeashSwing{from{rotate:-3deg;translate:0 0}to{rotate:5deg;translate:1px 1px}}
@keyframes essentialBrushReady{from{translate:0 0;rotate:0deg}to{translate:2px -2px;rotate:-4deg}}


/* v8.77 — Guida completa nelle Impostazioni */
.settings-action-guide{background:linear-gradient(145deg,#eef4ff,#fff9ef)!important;border-color:rgba(90,104,135,.14)!important;grid-column:1/-1!important;min-height:104px!important}
.settings-action-guide .icon{background:#fff!important;box-shadow:0 7px 20px rgba(69,78,105,.09)!important}
.settings-action-guide strong{font-size:calc(15px + var(--tp-text-extra,0px))!important}.settings-action-guide small{max-width:620px!important}
.game-guide-sheet{width:min(100%,760px)!important;max-height:92dvh!important;padding:9px 18px calc(30px + var(--safe-bottom))!important;scroll-behavior:smooth;overscroll-behavior:contain}
.game-guide-head{position:sticky;top:-9px;z-index:8;margin:0 -2px 12px;padding:9px 2px 10px;background:linear-gradient(180deg,var(--surface) 82%,rgba(255,253,249,0));backdrop-filter:blur(14px)}
.game-guide-head p{margin-top:4px;font-size:calc(13px + var(--tp-text-extra,0px));line-height:1.4;color:var(--muted);font-weight:650}
.game-guide-hero{position:relative;display:grid;grid-template-columns:84px minmax(0,1fr);gap:15px;align-items:center;padding:17px;border-radius:25px;background:linear-gradient(135deg,#edf5ef 0%,#f8f1e8 54%,#f2eff9 100%);border:1px solid rgba(76,91,77,.09);overflow:hidden}
.game-guide-hero::after{content:"";position:absolute;right:-45px;top:-62px;width:180px;height:180px;border-radius:50%;background:rgba(255,255,255,.35)}
.game-guide-hero-mark{position:relative;width:76px;height:76px;border-radius:24px;background:#fffaf2;box-shadow:0 9px 22px rgba(72,56,39,.10);z-index:1}
.game-guide-hero-mark i{position:absolute;left:20px;top:23px;width:36px;height:34px;border-radius:50% 50% 45% 45%;background:#c99763}
.game-guide-hero-mark b,.game-guide-hero-mark::before,.game-guide-hero-mark::after{content:"";position:absolute;width:12px;height:15px;border-radius:60% 60% 45% 45%;background:#b57b4f;top:13px}
.game-guide-hero-mark b{left:14px;transform:rotate(-25deg)}.game-guide-hero-mark::before{right:14px;transform:rotate(25deg)}.game-guide-hero-mark::after{left:34px;top:35px;width:8px;height:6px;background:#42342a;border-radius:50%}
.game-guide-hero-mark em{position:absolute;right:7px;bottom:7px;width:20px;height:20px;border-radius:50%;background:#6f8773;border:4px solid #fffaf2}.game-guide-hero-mark em::after{content:"✓";position:absolute;inset:0;display:grid;place-items:center;color:white;font-size:calc(11.5px + var(--tp-text-extra,0px));font-style:normal;font-weight:950}
.game-guide-hero>div:last-child{position:relative;z-index:1}.game-guide-hero span{display:block;font-size:calc(10.5px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.11em;color:#718078}.game-guide-hero strong{display:block;margin-top:5px;font-size:calc(17px + var(--tp-text-extra,0px));line-height:1.14;letter-spacing:-.02em}.game-guide-hero small{display:block;margin-top:6px;font-size:calc(12px + var(--tp-text-extra,0px));line-height:1.45;color:#746d66;font-weight:650}
.game-guide-search{position:sticky;top:71px;z-index:7;display:grid;grid-template-columns:32px minmax(0,1fr);align-items:center;margin:12px 0 7px;padding:5px 9px;border-radius:16px;background:rgba(255,253,249,.94);border:1px solid rgba(73,61,51,.11);box-shadow:0 6px 18px rgba(65,48,35,.06);backdrop-filter:blur(16px)}
.game-guide-search>span{font-size:22px;color:#746d66;text-align:center}.game-guide-search input{height:39px;border:0;outline:0;background:transparent;font:inherit;font-size:calc(13px + var(--tp-text-extra,0px));font-weight:750;color:var(--text);min-width:0}.game-guide-search input::placeholder{color:#a39a92;font-weight:650}
.game-guide-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:3px 3px 8px}.game-guide-meta span{font-size:calc(11.5px + var(--tp-text-extra,0px));font-weight:900;color:#5f6962}.game-guide-meta small{font-size:calc(10.5px + var(--tp-text-extra,0px));color:var(--muted);font-weight:700}
.game-guide-toc{display:flex;gap:6px;overflow-x:auto;padding:0 1px 10px;scrollbar-width:none}.game-guide-toc::-webkit-scrollbar{display:none}.game-guide-toc button{flex:0 0 auto;display:flex;align-items:center;gap:5px;border:1px solid rgba(78,65,54,.09);border-radius:999px;background:#f5f1eb;padding:7px 10px;color:#5a544f;font:inherit;font-size:calc(10.5px + var(--tp-text-extra,0px));font-weight:850;white-space:nowrap}.game-guide-toc button span{font-size:calc(13px + var(--tp-text-extra,0px))}
.game-guide-content{display:grid;gap:8px}.game-guide-section{scroll-margin-top:132px;border:1px solid rgba(73,61,51,.09);border-radius:19px;background:#fbf8f3;overflow:hidden}.game-guide-section[open]{background:#fffdf9;box-shadow:0 8px 22px rgba(68,50,35,.05)}
.game-guide-section>summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:38px minmax(0,1fr) 22px;gap:9px;align-items:center;padding:12px 13px;user-select:none}.game-guide-section>summary::-webkit-details-marker{display:none}.guide-section-icon{width:38px;height:38px;border-radius:13px;background:#f1ece4;display:grid;place-items:center;font-size:calc(19px + var(--tp-text-extra,0px))}.game-guide-section>summary strong{display:block;font-size:calc(13.5px + var(--tp-text-extra,0px));line-height:1.2}.game-guide-section>summary small{display:block;margin-top:3px;font-size:calc(11px + var(--tp-text-extra,0px));line-height:1.35;color:var(--muted);font-weight:650}.game-guide-section>summary>i{font-style:normal;font-size:calc(16px + var(--tp-text-extra,0px));color:#9b9187;transition:transform .2s}.game-guide-section[open]>summary>i{transform:rotate(180deg)}
.game-guide-section-body{padding:0 15px 16px 60px;font-size:calc(12.5px + var(--tp-text-extra,0px));line-height:1.58;color:#514b46}.game-guide-section-body p{margin:0 0 10px}.game-guide-section-body p:last-child{margin-bottom:0}.game-guide-section-body ul,.game-guide-section-body ol{margin:7px 0 11px;padding-left:18px}.game-guide-section-body li{margin:4px 0}.game-guide-section-body strong{color:#302c28}
.guide-grid{display:grid;gap:7px;margin:10px 0}.guide-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.guide-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.guide-grid>div{padding:10px;border-radius:14px;background:#f5f1eb;border:1px solid rgba(72,60,49,.06)}.guide-grid b,.guide-grid span{display:block}.guide-grid b{font-size:calc(11.5px + var(--tp-text-extra,0px))}.guide-grid span{margin-top:3px;font-size:calc(11px + var(--tp-text-extra,0px));line-height:1.4;color:#746d66}
.guide-callout{display:grid;gap:3px;margin:10px 0;padding:10px 11px;border-radius:14px;background:#eef4f7;border-left:3px solid #8199a5}.guide-callout.good{background:#edf5ee;border-left-color:#78907b}.guide-callout.warn{background:#faf1e7;border-left-color:#c09667}.guide-callout strong{font-size:calc(11.5px + var(--tp-text-extra,0px))}.guide-callout span{font-size:calc(11px + var(--tp-text-extra,0px));line-height:1.45;color:#67615b}
.guide-need-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:9px 0}.guide-need-list span{padding:8px 9px;border-radius:12px;background:#f5f1eb;font-size:calc(11px + var(--tp-text-extra,0px));line-height:1.35}.guide-steps{counter-reset:guideStep;list-style:none!important;padding:0!important}.guide-steps li{counter-increment:guideStep;position:relative;padding:9px 9px 9px 36px!important;border-radius:12px;background:#f6f2ec;margin:6px 0!important}.guide-steps li::before{content:counter(guideStep);position:absolute;left:10px;top:9px;width:18px;height:18px;border-radius:50%;background:#5d6f61;color:#fff;display:grid;place-items:center;font-size:calc(9.5px + var(--tp-text-extra,0px));font-weight:950}
.guide-thresholds{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:10px 0}.guide-thresholds span{padding:8px;border-radius:11px;background:#eef4ef;font-size:calc(10.5px + var(--tp-text-extra,0px));text-align:center}.guide-thresholds b{display:block;margin-top:2px}
.guide-table-wrap{overflow-x:auto;margin:10px 0;border-radius:14px;border:1px solid rgba(75,61,49,.09)}.guide-table{width:100%;min-width:520px;border-collapse:collapse;background:#fff}.guide-table th,.guide-table td{padding:8px 9px;text-align:left;vertical-align:top;border-bottom:1px solid rgba(75,61,49,.07);font-size:calc(11px + var(--tp-text-extra,0px));line-height:1.35}.guide-table th{background:#f2eee8;color:#6a625b;font-size:calc(10px + var(--tp-text-extra,0px));letter-spacing:.04em}.guide-table tr:last-child td{border-bottom:0}
.guide-timeline{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:6px;align-items:center;margin:10px 0}.guide-timeline span{padding:10px 6px;border-radius:13px;background:#eef3ed;text-align:center;font-size:calc(10.5px + var(--tp-text-extra,0px))}.guide-timeline b{display:block;font-size:calc(11.5px + var(--tp-text-extra,0px));margin-bottom:2px}.guide-timeline i{font-style:normal;color:#9b9187}
.game-guide-empty{padding:24px 12px;text-align:center;border-radius:18px;background:#f6f2ec}.game-guide-empty span{display:block;font-size:28px}.game-guide-empty strong,.game-guide-empty small{display:block}.game-guide-empty strong{margin-top:7px;font-size:calc(13px + var(--tp-text-extra,0px))}.game-guide-empty small{margin-top:4px;font-size:calc(11px + var(--tp-text-extra,0px));color:var(--muted)}
.game-guide-footer{display:flex;gap:10px;align-items:center;margin-top:12px;padding:12px;border-radius:16px;background:#34312e;color:#fff}.game-guide-footer>span{font-size:24px}.game-guide-footer strong,.game-guide-footer small{display:block}.game-guide-footer strong{font-size:calc(11.5px + var(--tp-text-extra,0px))}.game-guide-footer small{margin-top:3px;font-size:calc(10px + var(--tp-text-extra,0px));line-height:1.35;color:rgba(255,255,255,.65)}
@media(max-width:560px){.game-guide-sheet{padding-left:12px!important;padding-right:12px!important}.game-guide-head{top:-9px}.game-guide-search{top:69px}.game-guide-hero{grid-template-columns:64px minmax(0,1fr);gap:11px;padding:13px}.game-guide-hero-mark{width:60px;height:60px;border-radius:19px}.game-guide-hero-mark i{left:16px;top:19px;width:29px;height:27px}.game-guide-hero-mark b,.game-guide-hero-mark::before,.game-guide-hero-mark::after{width:10px;height:12px;top:10px}.game-guide-hero-mark b{left:11px}.game-guide-hero-mark::before{right:11px}.game-guide-hero-mark::after{left:27px;top:28px;width:7px;height:5px}.game-guide-hero-mark em{width:17px;height:17px;right:5px;bottom:5px}.game-guide-hero strong{font-size:calc(14px + var(--tp-text-extra,0px))}.game-guide-hero small{font-size:calc(11px + var(--tp-text-extra,0px))}.game-guide-section>summary{grid-template-columns:34px minmax(0,1fr) 18px;padding:11px}.guide-section-icon{width:34px;height:34px;font-size:calc(17px + var(--tp-text-extra,0px))}.game-guide-section-body{padding:0 11px 13px;font-size:calc(12px + var(--tp-text-extra,0px))}.guide-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.guide-thresholds{grid-template-columns:repeat(2,minmax(0,1fr))}.guide-table{min-width:500px}.settings-action-guide{min-height:96px!important}}
@media(max-width:390px){.guide-grid-2,.guide-grid-3,.guide-need-list{grid-template-columns:1fr}.guide-timeline{grid-template-columns:1fr}.guide-timeline i{transform:rotate(90deg);text-align:center}.game-guide-search input{font-size:calc(12px + var(--tp-text-extra,0px))}.game-guide-meta small{display:none}}
@media(min-width:900px){.game-guide-sheet{width:min(820px,calc(100% - 40px))!important}.game-guide-content{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.game-guide-section{break-inside:avoid}.game-guide-section[open]{grid-column:1/-1}.game-guide-section-body{font-size:calc(13px + var(--tp-text-extra,0px))}.game-guide-toc{flex-wrap:wrap;overflow:visible}}


/* v8.78 — lotti comunitari vivi: movimento sul pavimento e interazioni ambientali */
.city-location-scene.community-live .city-location-pet-zone,
.city-location-scene.community-live .location-npc{
  transition:left .95s cubic-bezier(.22,.76,.22,1), top .95s cubic-bezier(.22,.76,.22,1), filter .18s ease;
}
.city-location-scene.community-live .city-location-pet-zone{
  top:72%;
}
.city-location-scene.community-live .location-npc{
  min-height:86px;
}
.city-location-scene.community-live .location-npc>small{
  max-width:92px;
  background:rgba(44,48,42,.67);
}
.city-location-scene.community-live .location-npc-name{
  box-shadow:0 4px 10px rgba(41,35,31,.09);
}
.city-location-scene.community-live .location-npc-figure,
.city-location-scene.community-live .city-location-pet-zone{will-change:left,top,transform}
.city-location-scene.community-live .location-npc,
.city-location-scene.community-live .city-location-pet-zone{pointer-events:auto}
.city-location-scene.community-live .lot-object-pulse{
  animation:lotObjectPulse 1s ease-in-out 2!important;
  filter:brightness(1.08) saturate(1.07) drop-shadow(0 0 10px rgba(255,255,255,.16));
}
@keyframes lotObjectPulse{50%{transform:translateY(-1px);opacity:1}0%,100%{opacity:.92}}

@keyframes lotWalkBob{50%{transform:translateY(-5px)}}
@keyframes lotSniffHead{50%{transform:translateY(2px) rotate(10deg)}}
@keyframes lotPlayHop{25%{transform:translateY(-7px) rotate(-4deg)}50%{transform:translateY(-3px) rotate(4deg)}75%{transform:translateY(-8px) rotate(-2deg)}}
@keyframes lotRestBreath{50%{transform:translateY(2px)}}
@keyframes lotLookTilt{50%{transform:rotate(-9deg)}}
@keyframes lotSocialBounce{50%{transform:translateY(-4px) rotate(-3deg)}}

.city-location-pet-zone.lot-motion-walk .pet,
.location-npc.lot-motion-walk .npc-mini-pet{animation:lotWalkBob .42s ease-in-out infinite}
.city-location-pet-zone.lot-motion-sniff .head,
.location-npc.lot-motion-sniff .head{animation:lotSniffHead .58s ease-in-out infinite}
.city-location-pet-zone.lot-motion-rest .pet,
.location-npc.lot-motion-rest .npc-mini-pet{animation:lotRestBreath 1.8s ease-in-out infinite}
.city-location-pet-zone.lot-motion-play .pet,
.location-npc.lot-motion-play .npc-mini-pet{animation:lotPlayHop .5s ease-in-out 4}
.city-location-pet-zone.lot-motion-look .head,
.location-npc.lot-motion-look .head{animation:lotLookTilt 1.3s ease-in-out 2}
.city-location-pet-zone.lot-motion-social .pet,
.location-npc.lot-motion-social .npc-mini-pet{animation:lotSocialBounce .66s ease-in-out 3}
.city-location-pet-zone.lot-motion-play .tail,
.location-npc.lot-motion-play .tail,
.city-location-pet-zone.lot-motion-social .tail,
.location-npc.lot-motion-social .tail{animation:tailWag .32s linear infinite}
.city-location-pet-zone.lot-motion-rest .tail,
.location-npc.lot-motion-rest .tail{animation:none!important}
.city-location-pet-zone.lot-motion-walk .leg,
.location-npc.lot-motion-walk .leg{animation:petLegLeft .28s ease-in-out infinite alternate}
.city-location-pet-zone.lot-motion-walk .leg-right,
.location-npc.lot-motion-walk .leg-right{animation:petLegRight .28s ease-in-out infinite alternate}

.city-location-scene.community-live .city-location-pet-zone.floor-shadow-soft .location-pet-shadow,
.city-location-scene.community-live .location-npc.floor-shadow-soft .npc-pet-shadow{opacity:.96}


/* =========================================================
   TinyPal v8.79 — OGGETTI STABILI DURANTE LE INTERAZIONI
   Il contenitore di un mobile non deve mai animare transform/translate/scale.
   Posizione e rotazione appartengono esclusivamente ad Arredo Pro / layout del lotto.
   ========================================================= */

/* Feedback universale privo di movimento: solo luce/ombra. */
@keyframes anchoredObjectFeedback{
  0%,100%{filter:brightness(1)}
  45%{filter:brightness(1.10) drop-shadow(0 0 10px rgba(255,255,255,.30))}
}
@keyframes anchoredObjectDetailFeedback{
  0%,100%{filter:brightness(1);opacity:1}
  50%{filter:brightness(1.12);opacity:.96}
}

/* Ciotole: bowlNudge della vecchia build sovrascriveva il transform salvato. */
.room-bowl.bowl-active{
  animation:anchoredObjectFeedback .9s ease-in-out infinite alternate!important;
}

/* Qualsiasi pulse della cameretta resta rigorosamente ancorato. */
.room-object.interaction-pulse,
.room-window.interaction-pulse,
.species-essential-object.interaction-pulse,
.species-essential-object.essential-in-use{
  animation:anchoredObjectFeedback .70s ease-out 1!important;
}

/* Gli essenziali possono "reagire", ma nessun pezzo fisico trasla o ruota:
   il feedback è visivo, non geometrico. */
.essential-cat-scratch.essential-in-use .scratch-toy,
.essential-rabbit-hay.essential-in-use .hay-bundle,
.essential-fox-dig.essential-in-use .fox-dig-soil,
.essential-bear-dig.essential-in-use .bear-dig-earth,
.essential-bear-feeder.essential-in-use .forage-lid,
.essential-dog-chew.essential-in-use .chew-bone,
.essential-rabbit-chew.essential-in-use .rabbit-chew-stick,
.essential-fox-log.essential-in-use .fox-log-body,
.essential-dog-leash.essential-in-use .leash-loop,
.essential-dog-brush.essential-in-use .brush-tool{
  animation:anchoredObjectDetailFeedback .55s ease-in-out 5 alternate!important;
}

/* Lotti comunitari: niente translate/scale/rotate sul mobile usato. */
.city-location-scene.community-live .lot-object-pulse{
  animation:anchoredLotObjectFeedback .85s ease-in-out 2!important;
  transform-origin:inherit;
}
@keyframes anchoredLotObjectFeedback{
  0%,100%{filter:brightness(1) saturate(1);opacity:1}
  50%{filter:brightness(1.12) saturate(1.06) drop-shadow(0 0 9px rgba(255,255,255,.20));opacity:.98}
}

/* Protezione ulteriore: gli stati di uso non aggiungono individual transform
   al contenitore del mobile. L'eventuale transform inline di Arredo Pro resta la fonte unica. */
.room:not(.arranging) .room-object.bowl-active,
.room:not(.arranging) .room-object.interaction-pulse,
.room:not(.arranging) .species-essential-object.essential-in-use{
  translate:none!important;
  rotate:none!important;
  scale:1!important;
}

@media(prefers-reduced-motion:reduce){
  .room-object.interaction-pulse,
  .room-bowl.bowl-active,
  .species-essential-object.essential-in-use,
  .species-essential-object.essential-in-use *,
  .city-location-scene.community-live .lot-object-pulse{animation:none!important}
}


/* v8.80 — TinyPal dorme a casa: città in sola osservazione */
.city-location-scene.observer-mode::before{
  content:"SOLO OSSERVAZIONE · TINYPAL DORME A CASA";
  position:absolute;left:50%;top:12px;translate:-50% 0;z-index:24;
  padding:7px 10px;border-radius:999px;background:rgba(42,38,35,.84);color:#fff;
  font-size:calc(9px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.06em;white-space:nowrap;
  box-shadow:0 6px 18px rgba(34,28,24,.16);backdrop-filter:blur(8px);pointer-events:none;
}
.city-location-scene.observer-mode .city-location-pet-zone{display:none!important}
.city-location-pet-info.observer-mode{background:linear-gradient(180deg,#f4f1f7,#efecf3);border-color:rgba(88,72,100,.09)}
.city-location-pet-info.observer-mode::after{content:"🌙 Rimane nella cameretta";font-size:calc(9px + var(--tp-text-extra,0px));font-weight:900;color:#766b80}
.city-observer-actions-note{grid-column:1/-1;display:grid;grid-template-columns:38px minmax(0,1fr);gap:9px;align-items:center;padding:12px 13px;border-radius:18px;background:linear-gradient(135deg,#f2eef6,#f7f4f0);border:1px solid rgba(82,68,92,.08)}
.city-observer-actions-note>span{width:38px;height:38px;border-radius:13px;background:#fff;display:grid;place-items:center;font-size:calc(20px + var(--tp-text-extra,0px));box-shadow:0 5px 12px rgba(65,52,73,.07)}
.city-observer-actions-note strong{display:block;font-size:calc(11.5px + var(--tp-text-extra,0px))}.city-observer-actions-note small{display:block;margin-top:3px;font-size:calc(9px + var(--tp-text-extra,0px));line-height:1.4;color:var(--muted);font-weight:700}
.location-friend-actions button:disabled{opacity:.38;filter:grayscale(.35);pointer-events:none}
@media(max-width:390px){.city-location-scene.observer-mode::before{top:9px;font-size:calc(8px + var(--tp-text-extra,0px));padding:6px 8px}.city-location-pet-info.observer-mode::after{display:none}}


/* v8.81 — Centro Impostazioni riorganizzato */
#actionSheet[data-panel="more"]{width:min(100%,720px);max-height:90dvh}
#actionSheet[data-panel="more"] .sheet-head{position:sticky;top:-9px;z-index:8;background:var(--surface);padding:7px 0 10px;margin-bottom:8px}
.sheet-grid.settings-sheet-grid{display:block!important}
.settings-hub-hero{position:relative;display:grid;grid-template-columns:54px minmax(0,1fr) auto;align-items:center;gap:11px;padding:14px;border-radius:22px;background:linear-gradient(140deg,#eff4f2,#f8f3eb);border:1px solid rgba(74,82,76,.09);overflow:hidden}
.settings-hub-hero::after{content:"";position:absolute;right:-42px;top:-55px;width:145px;height:145px;border-radius:50%;background:rgba(81,105,91,.06);pointer-events:none}
.settings-hub-mark{position:relative;width:54px;height:54px;border-radius:17px;background:#53695a;box-shadow:0 9px 20px rgba(57,75,63,.15)}
.settings-hub-mark i{position:absolute;left:16px;top:17px;width:22px;height:20px;border-radius:48% 48% 44% 44%;background:#fff}
.settings-hub-mark b,.settings-hub-mark::before,.settings-hub-mark::after{content:"";position:absolute;width:8px;height:9px;border-radius:50%;background:#fff}.settings-hub-mark b{left:12px;top:10px}.settings-hub-mark::before{right:12px;top:10px}.settings-hub-mark::after{left:23px;top:7px}
.settings-hub-copy{min-width:0;z-index:1}.settings-hub-copy small{display:block;font-size:calc(9px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.12em;color:#758079}.settings-hub-copy strong{display:block;margin-top:3px;font-size:calc(17px + var(--tp-text-extra,0px))}.settings-hub-copy span{display:block;margin-top:3px;font-size:calc(9.5px + var(--tp-text-extra,0px));color:var(--muted);font-weight:750}
.settings-hub-state{z-index:1;font-style:normal;padding:6px 8px;border-radius:999px;background:rgba(255,255,255,.76);font-size:calc(9px + var(--tp-text-extra,0px));font-weight:900;white-space:nowrap;color:#647068}.settings-hub-state.online{color:#4d7058;background:#eff7ef}.settings-hub-state.local{color:#7c7167;background:#fff8ef}
.settings-status-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-top:9px}
.settings-status-item{min-width:0;min-height:58px;border:1px solid rgba(72,63,56,.07);border-radius:16px;background:#f7f4ef;color:inherit;padding:8px;display:grid;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:5px;text-align:left}.settings-status-item.active{background:#fff;border-color:rgba(83,105,90,.12);box-shadow:0 5px 14px rgba(61,55,48,.05)}.settings-status-item>span{font-size:calc(16px + var(--tp-text-extra,0px))}.settings-status-item small{display:block;font-size:calc(8px + var(--tp-text-extra,0px));color:var(--muted);font-weight:850}.settings-status-item strong{display:block;margin-top:2px;font-size:calc(9.5px + var(--tp-text-extra,0px));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.settings-hub-tools{margin:12px 0 4px}.settings-search{height:43px;border:1px solid var(--line);border-radius:15px;background:#fff;display:grid;grid-template-columns:30px minmax(0,1fr);align-items:center;padding:0 8px}.settings-search>span{text-align:center;color:#8b837b;font-size:calc(17px + var(--tp-text-extra,0px))}.settings-search input{height:100%;border:0;outline:0;background:transparent;color:inherit;font:inherit;font-size:calc(12px + var(--tp-text-extra,0px));font-weight:700;min-width:0}.settings-search input::placeholder{color:#aaa198}
.settings-filter-row{display:flex;gap:6px;overflow-x:auto;padding:8px 1px 3px;scrollbar-width:none;overscroll-behavior-x:contain}.settings-filter-row::-webkit-scrollbar{display:none}.settings-filter-row button{flex:0 0 auto;min-height:31px;border:1px solid rgba(75,66,59,.08);border-radius:999px;background:#f4f1ec;color:#706860;padding:0 10px;font-size:calc(9px + var(--tp-text-extra,0px));font-weight:900;white-space:nowrap}.settings-filter-row button.active{background:#363c38;color:#fff;border-color:#363c38}
.settings-section-block{margin-top:13px;border:1px solid rgba(75,65,56,.08);border-radius:20px;background:#fbfaf7;overflow:hidden}.settings-section-block.hidden{display:none!important}.settings-section-head{display:grid;grid-template-columns:34px minmax(0,1fr);gap:8px;align-items:center;padding:11px 12px 9px}.settings-section-head>span{width:34px;height:34px;border-radius:12px;background:#fff;display:grid;place-items:center;font-size:calc(17px + var(--tp-text-extra,0px));box-shadow:0 4px 12px rgba(65,55,45,.06)}.settings-section-head strong{display:block;font-size:calc(12px + var(--tp-text-extra,0px))}.settings-section-head small{display:block;margin-top:2px;font-size:calc(9px + var(--tp-text-extra,0px));color:var(--muted);font-weight:700}
.settings-row-list{background:#fff;border-top:1px solid rgba(75,65,56,.06)}.settings-row{width:100%;min-height:62px;border:0;border-bottom:1px solid rgba(75,65,56,.065);background:#fff;color:inherit;padding:9px 11px;display:grid;grid-template-columns:36px minmax(0,1fr) auto 12px;align-items:center;gap:8px;text-align:left}.settings-row:last-child{border-bottom:0}.settings-row:active{background:#f6f3ee}.settings-row.hidden{display:none!important}.settings-row-icon{width:36px;height:36px;border-radius:12px;background:#f4f2ee;display:grid;place-items:center;font-size:calc(18px + var(--tp-text-extra,0px))}.settings-row-copy{min-width:0}.settings-row-copy strong{display:block;font-size:calc(11.5px + var(--tp-text-extra,0px))}.settings-row-copy small{display:block;margin-top:3px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));line-height:1.3;font-weight:680}.settings-row-badge{max-width:92px;padding:4px 6px;border-radius:999px;background:#f0f3ef;color:#617065;font-size:calc(7.5px + var(--tp-text-extra,0px));font-weight:950;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.settings-row-arrow{font-size:calc(15px + var(--tp-text-extra,0px));color:#aaa198;font-weight:700}.settings-row-guide{background:linear-gradient(90deg,#f3f7ff,#fffaf2)}.settings-row-guide .settings-row-icon{background:#fff;box-shadow:0 5px 13px rgba(67,78,108,.07)}
.settings-empty-state{margin:18px 0 4px;padding:22px 12px;border-radius:20px;background:#f6f3ee;text-align:center}.settings-empty-state.hidden{display:none!important}.settings-empty-state span{display:block;font-size:27px}.settings-empty-state strong{display:block;margin-top:7px;font-size:calc(12px + var(--tp-text-extra,0px))}.settings-empty-state small{display:block;margin-top:4px;color:var(--muted);font-size:calc(9.5px + var(--tp-text-extra,0px))}
@media(max-width:560px){#actionSheet[data-panel="more"]{max-height:92dvh}.settings-hub-hero{grid-template-columns:48px minmax(0,1fr);padding:12px}.settings-hub-mark{width:48px;height:48px}.settings-hub-state{grid-column:1/-1;justify-self:start;margin-top:-2px}.settings-status-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-row{grid-template-columns:34px minmax(0,1fr) auto 11px;padding:9px}.settings-row-icon{width:34px;height:34px}.settings-row-badge{max-width:72px}.settings-section-head{padding-left:10px;padding-right:10px}}
@media(max-width:360px){.settings-row-badge{display:none}.settings-row{grid-template-columns:34px minmax(0,1fr) 11px}.settings-status-strip{gap:5px}}


/* =========================================================
   TinyPal v8.82 — COLLEZIONE TESORI
   ========================================================= */
.collection-shortcut>span{background:linear-gradient(145deg,#eef3e8,#dce9d4)!important}
.collection-sheet{max-height:min(92dvh,900px);overflow:auto;padding-bottom:28px}
.collection-sheet-head p{max-width:560px}
.collection-summary-card{margin:12px 16px 0;padding:15px;border:1px solid rgba(83,88,68,.09);border-radius:22px;background:linear-gradient(145deg,#f8f7ef,#edf1e7);box-shadow:0 9px 22px rgba(49,55,42,.07)}
.collection-summary-main{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:10px;align-items:center}
.collection-compass{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(145deg,#71806b,#4e604a);color:#fff;font-size:22px;box-shadow:inset 0 1px rgba(255,255,255,.23),0 6px 12px rgba(56,67,52,.15)}
.collection-summary-main small{display:block;font-size:calc(9px + var(--tp-text-extra,0px));letter-spacing:.12em;font-weight:950;color:#7d8576}.collection-summary-main strong{display:block;margin-top:2px;font-size:calc(17px + var(--tp-text-extra,0px))}.collection-summary-main em{display:block;margin-top:2px;color:var(--muted);font-style:normal;font-size:calc(9.5px + var(--tp-text-extra,0px));font-weight:700}.collection-summary-main>b{font-size:calc(16px + var(--tp-text-extra,0px));color:#53634e}
.collection-progress{height:9px;margin-top:12px;border-radius:999px;background:rgba(74,89,67,.10);overflow:hidden}.collection-progress i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#7d956f,#a5b887);transition:width .45s ease}
.collection-source-note{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.collection-source-note>span{padding:9px 10px;border-radius:14px;background:rgba(255,255,255,.62);font-size:calc(13px + var(--tp-text-extra,0px))}.collection-source-note strong{font-size:calc(10.5px + var(--tp-text-extra,0px))}.collection-source-note small{display:block;margin-top:2px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));font-weight:700}
.collection-last-find{margin:10px 16px 0;min-height:65px;padding:10px 12px;border-radius:18px;border:1px solid rgba(82,73,65,.08);background:#fff;display:flex;gap:10px;align-items:center}.collection-last-art{width:48px;height:48px;border-radius:14px}.collection-last-find span{display:block;min-width:0}.collection-last-find small{display:block;color:#879080;font-size:calc(8px + var(--tp-text-extra,0px));letter-spacing:.11em;font-weight:950}.collection-last-find strong{display:block;margin-top:3px;font-size:calc(12px + var(--tp-text-extra,0px))}.collection-last-find em{display:block;margin-top:2px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));font-style:normal;font-weight:700}.collection-last-empty{padding:4px 1px}
.collection-sets-section{margin:15px 16px 0}.collection-section-title strong{display:block;margin-top:3px;font-size:calc(13px + var(--tp-text-extra,0px))}.collection-set-progress{display:grid;gap:7px;margin-top:9px}.collection-set-card{width:100%;display:grid;grid-template-columns:36px minmax(0,1fr) 20px;gap:8px;align-items:center;padding:9px;border:1px solid rgba(68,74,64,.08);border-radius:15px;background:#fff;text-align:left;color:inherit}.collection-set-card>span{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:#f2f3ed;font-size:calc(18px + var(--tp-text-extra,0px))}.collection-set-card strong{display:block;font-size:calc(10.5px + var(--tp-text-extra,0px))}.collection-set-card small{display:block;margin-top:2px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));font-weight:700}.collection-set-card i{display:block;height:4px;margin-top:6px;border-radius:99px;background:#eceee8;overflow:hidden}.collection-set-card i b{display:block;height:100%;background:#8da17d;border-radius:inherit}.collection-set-card>em{font-style:normal;font-weight:950;color:#87927e}.collection-set-card.complete{background:linear-gradient(145deg,#f5f8f0,#ebf2e4);border-color:rgba(91,126,73,.16)}
.collection-tools{position:sticky;top:0;z-index:4;margin-top:14px;padding:10px 16px;background:linear-gradient(180deg,rgba(250,249,246,.97) 0 80%,rgba(250,249,246,0));backdrop-filter:blur(7px)}.collection-tools label{height:42px;border-radius:14px;border:1px solid rgba(67,73,62,.10);background:#fff;display:flex;align-items:center;padding:0 11px;gap:8px}.collection-tools label span{font-size:calc(18px + var(--tp-text-extra,0px));color:#788172}.collection-tools input{flex:1;border:0;outline:0;background:transparent;color:inherit;font:inherit;font-size:calc(11.5px + var(--tp-text-extra,0px));font-weight:750}.collection-filter-chips{display:flex;gap:6px;overflow-x:auto;padding:8px 0 2px;scrollbar-width:none}.collection-filter-chips::-webkit-scrollbar{display:none}.collection-filter-chips button{flex:0 0 auto;border:1px solid rgba(74,82,69,.09);border-radius:999px;padding:7px 10px;background:#fff;color:#6c7467;font-size:calc(9px + var(--tp-text-extra,0px));font-weight:900}.collection-filter-chips button.active{background:#5d6b58;color:#fff;border-color:#5d6b58}
.collection-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:0 16px}.collection-item{min-width:0;padding:9px;border:1px solid rgba(72,77,67,.08);border-radius:18px;background:#fff;display:grid;grid-template-columns:64px minmax(0,1fr);gap:9px;align-items:start;box-shadow:0 4px 12px rgba(48,54,44,.035)}.collection-item-art{position:relative;width:64px;height:64px}.collection-item-art img{width:64px;height:64px;border-radius:16px;display:block}.collection-item-art>b{position:absolute;right:-3px;bottom:-3px;min-width:22px;height:20px;padding:0 5px;border-radius:999px;background:#4c5848;color:#fff;display:grid;place-items:center;font-size:calc(9px + var(--tp-text-extra,0px));border:2px solid #fff}.collection-item-copy small{font-size:calc(8px + var(--tp-text-extra,0px));text-transform:uppercase;letter-spacing:.08em;font-weight:950;color:#8b9287}.collection-item-copy strong{display:block;margin-top:2px;font-size:calc(10.5px + var(--tp-text-extra,0px));line-height:1.2}.collection-item-copy p{margin:4px 0 0;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));line-height:1.35;font-weight:650}.collection-item-copy em{display:inline-block;margin-top:6px;padding:3px 6px;border-radius:999px;background:#f1f3ed;color:#66705f;font-size:calc(8px + var(--tp-text-extra,0px));font-style:normal;font-weight:850}.collection-item.locked{background:#f5f5f2;box-shadow:none}.collection-item.locked .collection-item-copy{opacity:.68}.collection-locked-shape{width:64px;height:64px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(145deg,#e7e8e3,#d6d9d1);color:#a2a79d;font-size:21px;font-weight:950;box-shadow:inset 0 1px rgba(255,255,255,.55)}
.collection-item.rarity-rare.found{border-color:rgba(75,102,151,.13)}.collection-item.rarity-epic.found{border-color:rgba(117,81,151,.16);background:linear-gradient(145deg,#fff,#fbf8fd)}.collection-item.rarity-legendary.found{border-color:rgba(178,132,40,.23);background:linear-gradient(145deg,#fffdf8,#faf3df);box-shadow:0 7px 18px rgba(151,109,31,.08)}
.collection-no-results{grid-column:1/-1;padding:28px;text-align:center;color:var(--muted);font-size:calc(10.5px + var(--tp-text-extra,0px));font-weight:750}.collection-footnote{margin:15px 18px 4px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));line-height:1.5;font-weight:650}
.gacha-collection-bonus{margin:9px 16px 0;padding:10px;border-radius:18px;border:1px solid rgba(91,113,75,.12);background:linear-gradient(145deg,#f5f8ef,#eaf1e2);display:grid;grid-template-columns:50px minmax(0,1fr) auto;gap:9px;align-items:center}.gacha-collection-bonus.hidden{display:none}.gacha-collection-bonus>div{width:50px;height:50px}.gacha-collection-art{width:50px;height:50px;border-radius:14px}.gacha-collection-bonus small{display:block;font-size:calc(8px + var(--tp-text-extra,0px));letter-spacing:.1em;font-weight:950;color:#7e8b72}.gacha-collection-bonus strong{display:block;margin-top:2px;font-size:calc(10.5px + var(--tp-text-extra,0px))}.gacha-collection-bonus em{display:block;margin-top:2px;font-size:calc(9px + var(--tp-text-extra,0px));color:var(--muted);font-style:normal;font-weight:700}.gacha-collection-bonus button{border:0;border-radius:11px;padding:8px;background:#607157;color:#fff;font-size:calc(9px + var(--tp-text-extra,0px));font-weight:900}.gacha-collection-pity{margin:5px 18px 0;color:#77816f;font-size:calc(9px + var(--tp-text-extra,0px));font-weight:750}
@keyframes lotDigBody{25%{transform:rotate(-4deg)}50%{transform:translateY(3px) rotate(5deg)}75%{transform:rotate(-3deg)}}
@keyframes lotDigHead{50%{transform:translateY(6px) rotate(8deg)}}
.city-location-pet-zone.lot-motion-dig .pet,.location-npc.lot-motion-dig .npc-mini-pet{animation:lotDigBody .44s ease-in-out 5}
.city-location-pet-zone.lot-motion-dig .head,.location-npc.lot-motion-dig .head{animation:lotDigHead .44s ease-in-out 5}
.city-location-pet-zone.lot-motion-dig::after{content:"";position:absolute;left:50%;bottom:27px;width:46px;height:12px;transform:translateX(-50%);border-radius:50%;background:radial-gradient(ellipse,#7b5d3b 0 42%,rgba(105,78,48,.35) 45% 61%,transparent 64%);opacity:.8;animation:digDust .5s ease-in-out 4;pointer-events:none}
@keyframes digDust{50%{width:60px;opacity:.42}}
@media(max-width:600px){.collection-grid{grid-template-columns:1fr}.collection-sheet{max-height:94dvh}.collection-source-note{grid-template-columns:1fr}.gacha-collection-bonus{grid-template-columns:48px minmax(0,1fr)}.gacha-collection-bonus button{grid-column:1/-1;width:100%}}
@media(min-width:900px){.collection-sheet{width:min(820px,calc(100vw - 40px));left:50%;transform:translateX(-50%)}.collection-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.collection-set-progress{grid-template-columns:1fr 1fr}}


/* TinyPal v8.84 — animazioni specie uniche */
.pet.species-dog.behavior-spin:not(.sleeping){animation:dogSignatureSpin .72s ease-in-out 3!important}
.pet.species-dog.behavior-spin .head{animation:dogSignatureHead .36s ease-in-out 6!important}
.pet.species-dog.behavior-spin .tail{animation:dogSignatureTail .14s linear infinite!important}
@keyframes dogSignatureSpin{0%{transform:translateY(0) rotate(0deg)}30%{transform:translateY(-6px) rotate(8deg)}60%{transform:translateY(-3px) rotate(-9deg)}100%{transform:translateY(0) rotate(0deg)}}
@keyframes dogSignatureHead{0%,100%{translate:0 0;rotate:0deg}50%{translate:0 -2px;rotate:8deg}}
@keyframes dogSignatureTail{0%{rotate:-44deg}100%{rotate:-2deg}}

.pet.species-cat.behavior-knead .body{animation:catSignatureBody 1.05s ease-in-out 4!important}
.pet.species-cat.behavior-knead .head{animation:catSignatureHead 1.05s ease-in-out 4!important}
.pet.species-cat.behavior-knead .leg-left{animation:catSignatureKneadLeft .4s ease-in-out 10!important}
.pet.species-cat.behavior-knead .leg-right{animation:catSignatureKneadRight .4s ease-in-out 10!important}
.pet.species-cat.behavior-knead .tail{animation:catSignatureTail 1s ease-in-out 4 alternate!important}
@keyframes catSignatureBody{0%,100%{translate:0 0}50%{translate:0 4px}}
@keyframes catSignatureHead{0%,100%{translate:0 0;rotate:0deg}50%{translate:0 4px;rotate:3deg}}
@keyframes catSignatureKneadLeft{0%,100%{translate:0 0;rotate:-1deg}50%{translate:5px -8px;rotate:-10deg}}
@keyframes catSignatureKneadRight{0%,100%{translate:0 0;rotate:1deg}50%{translate:-5px -8px;rotate:10deg}}
@keyframes catSignatureTail{0%,100%{rotate:-53deg}50%{rotate:-24deg}}

.pet.species-rabbit.behavior-binky:not(.sleeping){animation:rabbitSignatureBinky .58s ease-in-out 4!important}
.pet.species-rabbit.behavior-binky .ear-left{animation:rabbitSignatureEarLeft .58s ease-in-out 4!important}
.pet.species-rabbit.behavior-binky .ear-right{animation:rabbitSignatureEarRight .58s ease-in-out 4!important}
.pet.species-rabbit.behavior-binky .tail{animation:rabbitSignatureTail .58s ease-in-out 4!important}
@keyframes rabbitSignatureBinky{0%,100%{transform:translateY(0) rotate(0deg)}35%{transform:translateY(-14px) rotate(-6deg)}68%{transform:translateY(-7px) rotate(7deg)}}
@keyframes rabbitSignatureEarLeft{0%,100%{rotate:-7deg}35%{rotate:-15deg}68%{rotate:1deg}}
@keyframes rabbitSignatureEarRight{0%,100%{rotate:7deg}35%{rotate:15deg}68%{rotate:-1deg}}
@keyframes rabbitSignatureTail{0%,100%{translate:0 0}50%{translate:0 -2px}}

.pet.species-fox.behavior-prowl:not(.sleeping){animation:foxSignatureProwl 1s ease-in-out 3!important}
.pet.species-fox.behavior-prowl .head{animation:foxSignatureHead 1s ease-in-out 3!important}
.pet.species-fox.behavior-prowl .tail{animation:foxSignatureTail .46s ease-in-out 6 alternate!important}
.pet.species-fox.behavior-prowl .leg-left{animation:foxSignatureLegLeft .34s ease-in-out 8 alternate!important}
.pet.species-fox.behavior-prowl .leg-right{animation:foxSignatureLegRight .34s ease-in-out 8 alternate!important}
@keyframes foxSignatureProwl{0%,100%{transform:translateX(0) translateY(0)}25%{transform:translateX(-7px) translateY(2px)}50%{transform:translateX(5px) translateY(-1px)}75%{transform:translateX(-4px) translateY(1px)}}
@keyframes foxSignatureHead{0%,100%{translate:0 0;rotate:0deg}50%{translate:0 5px;rotate:-7deg}}
@keyframes foxSignatureTail{0%,100%{rotate:-34deg}50%{rotate:-12deg}}
@keyframes foxSignatureLegLeft{0%{translate:0 0}100%{translate:2px -4px}}
@keyframes foxSignatureLegRight{0%{translate:0 -1px}100%{translate:-2px 3px}}

.pet.species-bear.behavior-sway:not(.sleeping){animation:bearSignatureSway 1.2s ease-in-out 3!important}
.pet.species-bear.behavior-sway .head{animation:bearSignatureHead 1.2s ease-in-out 3!important}
.pet.species-bear.behavior-sway .leg-left{animation:bearSignaturePaw .52s ease-in-out 6!important}
.pet.species-bear.behavior-sway .tail{animation:bearSignatureTail 1.2s ease-in-out 3!important}
@keyframes bearSignatureSway{0%,100%{transform:translateX(0) rotate(0deg)}25%{transform:translateX(-5px) rotate(-2deg)}75%{transform:translateX(5px) rotate(2deg)}}
@keyframes bearSignatureHead{0%,100%{translate:0 0;rotate:0deg}50%{translate:0 -2px;rotate:5deg}}
@keyframes bearSignaturePaw{0%,100%{translate:0 0;rotate:0deg}50%{translate:7px -11px;rotate:-11deg}}
@keyframes bearSignatureTail{0%,100%{translate:0 0}50%{translate:0 -1px}}


/* TinyPal v8.85 — il TinyPal attivo non viene duplicato in casa quando è fuori */
.room.active-pet-away > .pet-zone{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
.room.active-pet-away > .household-duo-fx{display:none!important}
.room-away-indicator{
  position:absolute;
  left:50%;
  bottom:20px;
  transform:translateX(-50%);
  z-index:12;
  width:min(330px,86%);
  min-height:62px;
  padding:10px 12px;
  border:1px solid rgba(55,65,56,.11);
  border-radius:20px;
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(12px);
  box-shadow:0 12px 28px rgba(41,50,42,.13),inset 0 1px rgba(255,255,255,.75);
  display:grid;
  grid-template-columns:42px minmax(0,1fr) 20px;
  gap:10px;
  align-items:center;
  text-align:left;
  color:inherit;
}
.room-away-indicator.hidden{display:none!important}
.room-away-indicator>span{
  width:42px;height:42px;border-radius:14px;background:#eef4ec;display:grid;place-items:center;font-size:22px;
}
.room-away-indicator small{display:block;font-size:calc(9px + var(--tp-text-extra,0px));letter-spacing:.12em;font-weight:950;color:var(--muted)}
.room-away-indicator strong{display:block;margin-top:2px;font-size:calc(12px + var(--tp-text-extra,0px));line-height:1.15}
.room-away-indicator em{display:block;margin-top:3px;font-style:normal;font-size:calc(9.5px + var(--tp-text-extra,0px));line-height:1.25;color:var(--muted);font-weight:700}
.room-away-indicator>b{font-size:calc(18px + var(--tp-text-extra,0px));color:#877e75;text-align:center}
.room.night .room-away-indicator{background:rgba(35,40,45,.76);color:#fff;border-color:rgba(255,255,255,.11)}
.room.night .room-away-indicator>span{background:rgba(255,255,255,.11)}
.room.night .room-away-indicator small,.room.night .room-away-indicator em{color:rgba(255,255,255,.65)}
@media(max-width:390px){.room-away-indicator{bottom:17px;width:82%;min-height:58px}}


/* TinyPal v8.86 — Centro di cura animali */
.city-location-scene.place-care .location-care-decor{display:block}
.city-location-scene.place-care{background:linear-gradient(#f0e8dc 0 30%,#e9dfd2 30% 69%,#bf9b78 69% 100%)}
.city-location-scene.place-care .city-location-sky{display:none}
.location-care-decor{position:absolute;inset:0;display:none;z-index:2;overflow:hidden;pointer-events:none}
.care-interior{position:absolute;inset:0;background:linear-gradient(180deg,#f2eadf 0 68%,transparent 68%)}
.care-interior::after{content:"";position:absolute;left:0;right:0;bottom:0;height:32%;background:repeating-linear-gradient(90deg,rgba(91,61,40,.08) 0 2px,transparent 2px 47px),linear-gradient(180deg,#c9a887,#b58c69)}
.care-wall-panel{position:absolute;top:74px;width:31%;height:105px;border-radius:16px;background:rgba(255,255,255,.26);border:1px solid rgba(112,86,63,.08)}
.care-wall-panel.cwp-a{left:4%}.care-wall-panel.cwp-b{right:4%}
.care-ceiling-light{position:absolute;top:19px;width:74px;height:9px;border-radius:999px;background:#fff9e8;box-shadow:0 8px 28px rgba(255,234,177,.5)}
.care-ceiling-light.ccl-a{left:24%}.care-ceiling-light.ccl-b{right:24%}
.care-wall-logo{position:absolute;left:50%;top:58px;transform:translateX(-50%);width:112px;padding:8px 9px;border-radius:14px;text-align:center;background:#fffaf2;border:1px solid rgba(105,78,55,.1);box-shadow:0 7px 16px rgba(70,50,34,.08)}
.care-wall-logo span{display:block;font-size:calc(18px + var(--tp-text-extra,0px));color:#b06f72}.care-wall-logo strong{display:block;font-size:calc(9.5px + var(--tp-text-extra,0px));letter-spacing:.12em}.care-wall-logo small{display:block;margin-top:2px;font-size:calc(7.5px + var(--tp-text-extra,0px));letter-spacing:.14em;color:#8d7a6d;font-weight:900}
.care-window{position:absolute;left:6%;top:58px;width:79px;height:83px;border:7px solid #e3d1bd;border-radius:10px;background:linear-gradient(#aad4e2,#e7efd8 65%,#83b978 66%);box-shadow:inset 0 0 0 2px rgba(255,255,255,.45)}
.care-window::before,.care-window::after{content:"";position:absolute;background:#e2d1bf}.care-window::before{left:50%;top:0;bottom:0;width:4px;transform:translateX(-50%)}.care-window::after{left:0;right:0;top:48%;height:4px}
.care-reception{position:absolute;right:7%;bottom:82px;width:92px;height:47px;border-radius:9px 9px 4px 4px;background:linear-gradient(180deg,#d3a97e,#a87955);box-shadow:inset 0 4px rgba(255,255,255,.18),0 8px 8px rgba(71,48,31,.14)}
.care-reception::before{content:"";position:absolute;left:-7px;right:-7px;top:-7px;height:10px;border-radius:7px;background:#754f38}.care-reception i{position:absolute;left:13px;top:15px;width:24px;height:18px;border-radius:4px;background:#f4eadb}.care-reception b{position:absolute;right:13px;top:13px;width:20px;height:23px;border-radius:4px;background:#6f7d6a}.care-reception span{position:absolute;right:18px;top:18px;width:10px;height:6px;border-radius:50%;background:#fff6e9}
.care-bed{position:absolute;bottom:48px;width:76px;height:35px;border-radius:50% 50% 38% 38%;background:linear-gradient(#c88f89,#a86966);box-shadow:inset 0 5px rgba(255,255,255,.18),0 7px 8px rgba(65,45,34,.13)}
.care-bed::before{content:"";position:absolute;left:9px;right:9px;top:8px;height:19px;border-radius:50%;background:#ead6bd}.care-bed.cb-a{left:8%}.care-bed.cb-b{left:30%;transform:scale(.88);transform-origin:center bottom}
.care-play-zone{position:absolute;left:48%;bottom:43px;width:98px;height:59px;border-radius:49%;background:radial-gradient(ellipse,#dfcdb8 0 60%,#bd9a77 62% 68%,transparent 70%);}
.care-ball{position:absolute;left:20px;top:22px;width:22px;height:22px;border-radius:50%;background:linear-gradient(135deg,#d67a6f 0 50%,#f0c671 51%);box-shadow:0 3px 4px rgba(60,43,31,.14)}
.care-toy{position:absolute;right:22px;top:19px;width:28px;height:17px;border-radius:999px;background:#778e77;transform:rotate(-16deg)}
.care-toy::before,.care-toy::after{content:"";position:absolute;top:-4px;width:9px;height:25px;border-radius:50%;background:#637963}.care-toy::before{left:-3px}.care-toy::after{right:-3px}
.care-feeding-station{position:absolute;right:8%;bottom:42px;width:74px;height:39px;border-radius:8px;background:linear-gradient(180deg,#d7c3a7,#aa8968);box-shadow:0 6px 7px rgba(58,43,31,.13)}
.care-feeding-station::before,.care-feeding-station::after{content:"";position:absolute;bottom:7px;width:27px;height:13px;border-radius:50% 50% 45% 45%;border:4px solid #e5ddd3;background:#c8e0e1}.care-feeding-station::before{left:6px}.care-feeding-station::after{right:6px;background:#dfbd83}
.care-plant{position:absolute;right:2%;top:126px;width:37px;height:49px}.care-plant::before{content:"";position:absolute;left:8px;bottom:0;width:22px;height:20px;border-radius:3px 3px 10px 10px;background:#b97855}.care-plant i{position:absolute;left:16px;bottom:15px;width:7px;height:27px;background:#68875e;border-radius:50% 0 50% 0;box-shadow:-11px -5px 0 1px #78986b,10px -11px 0 1px #5f8057;transform:rotate(-8deg)}
.care-gate{position:absolute;left:2%;bottom:115px;width:50px;height:38px;border-left:5px solid #aa896d;border-right:5px solid #aa896d;background:repeating-linear-gradient(90deg,transparent 0 8px,#c4a78c 8px 12px)}

.care-center-open .location-social-card{display:none!important}
.city-location-actions.care-center-mode{display:block!important}
.care-center-dashboard{display:grid;gap:11px;width:100%}
.care-center-hero{display:grid;grid-template-columns:54px minmax(0,1fr);gap:12px;padding:14px;border-radius:20px;background:linear-gradient(145deg,#f7eee5,#f6f4ec);border:1px solid rgba(94,70,54,.08)}
.care-center-hero>span{width:54px;height:54px;border-radius:17px;display:grid;place-items:center;background:#fff;font-size:27px;color:#a96c70;box-shadow:0 7px 17px rgba(76,55,40,.08)}
.care-center-hero small,.care-center-plan-head small{display:block;font-size:calc(9.5px + var(--tp-text-extra,0px));letter-spacing:.1em;font-weight:950;color:#8d7b6d}.care-center-hero strong{display:block;margin-top:4px;font-size:calc(14px + var(--tp-text-extra,0px))}.care-center-hero p{margin-top:4px;font-size:calc(11.5px + var(--tp-text-extra,0px));line-height:1.4;color:var(--muted);font-weight:650}
.care-center-warning{display:flex;gap:10px;align-items:center;padding:11px 12px;border-radius:16px;background:#f8e9e6;color:#7f4d46}.care-center-warning>span{width:29px;height:29px;border-radius:50%;display:grid;place-items:center;background:#fff;font-weight:950}.care-center-warning strong{display:block;font-size:calc(12px + var(--tp-text-extra,0px))}.care-center-warning small{display:block;margin-top:2px;font-size:calc(9.5px + var(--tp-text-extra,0px));line-height:1.3;font-weight:700}
.care-center-plan-head{display:flex;justify-content:space-between;align-items:end;gap:10px;padding:3px 2px}.care-center-plan-head strong{display:block;margin-top:3px;font-size:calc(13px + var(--tp-text-extra,0px))}.care-center-plan-head>span{padding:7px 10px;border-radius:999px;background:#f2ece4;font-size:calc(11.5px + var(--tp-text-extra,0px));font-weight:950}
.care-center-plan-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.care-center-plan{min-height:88px;border:1px solid rgba(85,65,50,.09);border-radius:17px;background:#fff;padding:10px;text-align:left;display:grid;grid-template-columns:30px minmax(0,1fr);gap:8px;position:relative}.care-center-plan>span{font-size:22px}.care-center-plan div small{display:block;font-size:calc(9px + var(--tp-text-extra,0px));font-weight:950;color:#9a8475;letter-spacing:.08em}.care-center-plan div strong{display:block;margin-top:3px;font-size:calc(11.5px + var(--tp-text-extra,0px))}.care-center-plan div em{display:block;margin-top:3px;font-style:normal;font-size:calc(9px + var(--tp-text-extra,0px));color:var(--muted);font-weight:700}.care-center-plan>b{grid-column:2;font-size:calc(10.5px + var(--tp-text-extra,0px));color:#735f50}.care-center-plan:disabled{opacity:.42}
.care-center-services{display:grid;grid-template-columns:1fr 1fr;gap:6px}.care-center-services span{padding:8px 9px;border-radius:12px;background:#f4f1eb;font-size:calc(9.5px + var(--tp-text-extra,0px));font-weight:800;color:#635a53}
.care-center-progress{padding:11px 12px;border-radius:16px;background:#f5f1ea}.care-center-progress>div{display:flex;justify-content:space-between;font-size:calc(10.5px + var(--tp-text-extra,0px));font-weight:900}.care-center-progress i{display:block;margin-top:7px;height:7px;border-radius:999px;background:#e1d9d0;overflow:hidden}.care-center-progress b{display:block;height:100%;border-radius:999px;background:#7d9479}
.care-center-live-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.care-center-live-grid>div{padding:9px 5px;border-radius:14px;background:#fff;text-align:center;border:1px solid rgba(84,65,50,.06)}.care-center-live-grid span{font-size:calc(16px + var(--tp-text-extra,0px))}.care-center-live-grid strong{display:block;margin-top:4px;font-size:calc(11.5px + var(--tp-text-extra,0px))}.care-center-live-grid small{display:block;margin-top:2px;font-size:calc(9px + var(--tp-text-extra,0px));color:var(--muted);font-weight:800}
.care-center-pickup{width:100%;border:0;border-radius:17px;padding:12px 14px;background:#ece6df;color:#403832;font-size:calc(12px + var(--tp-text-extra,0px));font-weight:950;text-align:left}.care-center-pickup small{display:block;margin-top:3px;font-size:calc(9.5px + var(--tp-text-extra,0px));color:#81766e;font-weight:700}.care-center-pickup.primary{background:#2d352d;color:#fff}.care-center-pickup.primary small{color:rgba(255,255,255,.65)}
.city-place-care>span{color:#a66e72}
@media(max-width:330px){.care-center-plan-grid{grid-template-columns:1fr}.care-center-live-grid{grid-template-columns:1fr 1fr}}


/* TinyPal v8.87 — secondo animale Fase 5: presenza e stato indipendenti */
.household-slot-card{grid-template-rows:auto auto}
.household-slot-live{
  grid-column:2 / -1;
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  margin-top:7px;padding-top:7px;border-top:1px solid rgba(72,61,53,.07);
  min-width:0;
}
.household-slot-place{
  display:inline-flex;align-items:center;gap:5px;max-width:48%;
  padding:5px 8px;border-radius:999px;background:rgba(92,111,91,.09);
  color:#586957;font-size:calc(9.5px + var(--tp-text-extra,0px));font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.household-slot-place.away{background:rgba(104,126,148,.11);color:#5e7184}
.household-slot-place.care{background:rgba(151,111,125,.11);color:#805f6b}
.household-slot-vitals{display:flex;gap:6px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.household-slot-vitals span{font-size:calc(9.5px + var(--tp-text-extra,0px));font-weight:850;color:var(--muted);white-space:nowrap}
.household-duo-card.paused{opacity:.86}
.household-duo-card.paused .household-duo-actions button{opacity:.48}
.household-duo-card.paused p{color:#756a62}
.household-roadmap .next{opacity:.78}
.household-roadmap .next>i{background:#eef0ec;color:#687264}
@media(max-width:390px){
  .household-slot-live{align-items:flex-start;flex-direction:column}
  .household-slot-place{max-width:100%}
  .household-slot-vitals{justify-content:flex-start}
}


/* TinyPal v8.88 — secondo animale: routine parallele visibili */
.household-room-companion{transition:left .7s cubic-bezier(.2,.8,.2,1),top .7s cubic-bezier(.2,.8,.2,1),opacity .25s ease,transform .25s ease!important}
.household-room-companion.companion-auto-bowl .head,
.household-room-companion.companion-auto-eat .head{animation:rigEatHead .46s ease-in-out infinite alternate!important}
.household-room-companion.companion-auto-drink .head{animation:rigDrinkHead .55s ease-in-out infinite alternate!important}
.household-room-companion.companion-auto-toilet .household-companion-pet{animation:inactivePotty .85s ease-in-out 3!important}
.household-room-companion.companion-auto-essential .head{animation:rigLookHead 2.4s ease-in-out 1!important}
.household-room-companion.companion-auto-rest .household-companion-pet{animation:inactiveRest 2.1s ease-in-out infinite!important}
.household-room-companion.companion-auto-play .household-companion-pet{animation:inactivePlay .6s ease-in-out 4!important}
.household-room-companion.companion-auto-explore .head{animation:rigLookHead 2.4s ease-in-out 1!important}
.household-room-companion.companion-auto-recovered .household-companion-pet{animation:inactiveHappy .55s ease-in-out 4!important}
.household-room-companion.companion-auto-play .tail,
.household-room-companion.companion-auto-recovered .tail{animation-duration:.2s!important}
@keyframes inactivePotty{0%,100%{translate:0 0}50%{translate:0 2px}}
@keyframes inactiveRest{0%,100%{translate:0 0}50%{translate:0 2px}}
@keyframes inactivePlay{0%,100%{translate:0 0;rotate:0deg}50%{translate:0 -7px;rotate:2deg}}
@keyframes inactiveHappy{0%,100%{translate:0 0}50%{translate:0 -9px}}
.household-background-action{grid-column:2 / -1;display:block!important;margin:-2px 0 3px;color:var(--muted);font-size:calc(9.5px + var(--tp-text-extra,0px))!important;font-weight:750;line-height:1.25;white-space:normal}
.household-slot-card{position:relative}


/* ============================================================
   TinyPal v8.89 — Secondo animale Fase 7: USCITE INSIEME
   ============================================================ */
.city-household-travel{
  margin-top:9px;padding:11px;border-radius:19px;background:linear-gradient(145deg,#f7f4ef,#f1f5ef);
  border:1px solid rgba(71,91,68,.08);
}
.city-household-travel-head{display:flex;align-items:center;gap:9px;margin-bottom:8px}
.city-household-travel-head>span{width:34px;height:34px;border-radius:12px;background:#fff;display:grid;place-items:center;font-size:calc(16px + var(--tp-text-extra,0px))}
.city-household-travel-head strong{display:block;font-size:calc(11.5px + var(--tp-text-extra,0px))}
.city-household-travel-head small{display:block;margin-top:2px;color:var(--muted);font-size:calc(9.5px + var(--tp-text-extra,0px));font-weight:700}
.city-household-travel-options{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.city-household-travel-options button{min-height:55px;border:1px solid rgba(67,80,66,.09);border-radius:14px;background:#fff;color:inherit;padding:8px;display:grid;grid-template-columns:26px 1fr;column-gap:7px;align-items:center;text-align:left}
.city-household-travel-options button>span{grid-row:1/3;font-size:calc(17px + var(--tp-text-extra,0px));text-align:center}
.city-household-travel-options button strong{font-size:calc(10.5px + var(--tp-text-extra,0px))}.city-household-travel-options button small{font-size:calc(9px + var(--tp-text-extra,0px));color:var(--muted);font-weight:700}
.city-household-travel-options button.active{background:#405a47;color:#fff;border-color:#405a47;box-shadow:0 6px 15px rgba(53,75,59,.15)}
.city-household-travel-options button.active small{color:rgba(255,255,255,.72)}
.city-household-travel-options button:disabled{opacity:.42;cursor:not-allowed}

.city-location-companion-zone{
  position:absolute;left:64%;top:73%;width:170px;height:190px;transform:translate(-50%,-50%) scale(var(--household-location-scale,.3));
  transform-origin:center center;z-index:8;display:flex;align-items:center;justify-content:center;pointer-events:auto;
  transition:left .95s cubic-bezier(.22,.76,.22,1),top .95s cubic-bezier(.22,.76,.22,1),filter .18s ease;
}
.city-location-companion-zone .pet{transform:none!important;animation:idle 2.15s ease-in-out infinite}
.location-household-companion-shadow{position:absolute;left:50%;bottom:21px;transform:translateX(-50%);width:102px;height:19px;border-radius:50%;background:rgba(45,38,31,.17);filter:blur(3px);z-index:1}
.location-household-companion-name{position:absolute;left:50%;bottom:1px;transform:translateX(-50%);padding:5px 9px;border-radius:999px;background:rgba(255,255,255,.91);box-shadow:0 5px 13px rgba(44,38,31,.10);font-size:calc(10.5px + var(--tp-text-extra,0px));font-weight:950;white-space:nowrap;z-index:12}
.city-location-scene.night .location-household-companion-name{background:rgba(37,45,53,.88);color:#fff}
.city-location-companion-zone .sick-mark{z-index:12}
.city-location-scene.observer-mode .city-location-companion-zone{display:none!important}

/* Stesse micro-routine dei lotti, ma senza fondere i due TinyPal. */
.city-location-companion-zone.lot-motion-walk .pet{animation:lotWalkBob .42s ease-in-out infinite!important}
.city-location-companion-zone.lot-motion-sniff .head{animation:lotSniffHead .58s ease-in-out infinite!important}
.city-location-companion-zone.lot-motion-rest .pet{animation:lotRestBreath 1.8s ease-in-out infinite!important}
.city-location-companion-zone.lot-motion-play .pet{animation:lotPlayHop .5s ease-in-out 4!important}
.city-location-companion-zone.lot-motion-look .head{animation:lotLookTilt 1.3s ease-in-out 2!important}
.city-location-companion-zone.lot-motion-social .pet{animation:lotSocialBounce .66s ease-in-out 3!important}
.city-location-companion-zone.lot-motion-play .tail,.city-location-companion-zone.lot-motion-social .tail{animation-duration:.25s!important}
.city-location-companion-zone.lot-motion-rest .tail{animation:none!important}

.city-location-pet-info.duo-outing{grid-template-columns:minmax(0,1fr) auto}
.city-location-pet-info.duo-outing>div:first-child::after{content:"USCITA INSIEME";display:inline-block;margin-top:5px;padding:3px 6px;border-radius:999px;background:#e6efe5;color:#516a55;font-size:calc(8px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.06em}

@media(max-width:390px){
  .city-household-travel-options{grid-template-columns:1fr}
  .city-location-companion-zone{width:154px;height:178px}
}


/* TinyPal v8.90 — Secondo animale Fase 8: assistenza famiglia */
.household-care-hub{margin-top:12px;padding:14px;border-radius:23px;background:linear-gradient(145deg,#f2f7f1,#fffaf4);border:1px solid rgba(73,99,77,.12);box-shadow:0 10px 24px rgba(54,75,58,.06)}
.household-care-hub-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.household-care-hub-head strong{display:block;margin-top:3px;font-size:calc(14px + var(--tp-text-extra,0px))}.household-care-hub-head small{display:block;margin-top:4px;color:var(--muted);font-size:calc(9.5px + var(--tp-text-extra,0px));line-height:1.4;font-weight:700}.household-care-hub-mark{width:37px;height:37px;border-radius:13px;background:#fff;display:grid;place-items:center;color:#5d7b63;font-size:calc(20px + var(--tp-text-extra,0px));box-shadow:0 5px 14px rgba(61,83,65,.08);flex:0 0 auto}
.household-care-members{display:grid;gap:8px;margin-top:11px}.household-care-member{padding:11px;border-radius:18px;background:rgba(255,255,255,.86);border:1px solid rgba(74,87,76,.08)}.household-care-member.alert{background:linear-gradient(145deg,#fff7f3,#fff);border-color:rgba(163,91,71,.14)}.household-care-member.center{background:linear-gradient(145deg,#f4f2ff,#fff);border-color:rgba(102,88,151,.14)}
.household-care-member-head{display:grid;grid-template-columns:41px minmax(0,1fr) auto;gap:9px;align-items:center}.household-care-avatar{width:41px;height:41px;border-radius:14px;background:#f5f1ea;display:grid;place-items:center;overflow:hidden}.household-care-avatar .pet{scale:.25;transform-origin:center center;pointer-events:none}.household-care-copy strong{display:block;font-size:calc(12px + var(--tp-text-extra,0px))}.household-care-copy small{display:block;margin-top:2px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));line-height:1.35;font-weight:700}.household-care-state{padding:5px 7px;border-radius:999px;background:#edf4ed;color:#56705a;font-size:calc(9px + var(--tp-text-extra,0px));font-style:normal;font-weight:950;white-space:nowrap}.household-care-member.alert .household-care-state{background:#f8e8e3;color:#9c5748}.household-care-member.center .household-care-state{background:#ebe7f5;color:#725f94}
.household-care-vitals{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:8px}.household-care-vitals span{padding:6px 4px;border-radius:10px;background:#f7f5f1;text-align:center;font-size:calc(9px + var(--tp-text-extra,0px));font-weight:900;color:#5d5751}.household-care-vitals span.low{background:#faece7;color:#995546}
.household-care-actions{display:flex;gap:6px;overflow-x:auto;margin-top:8px;padding-bottom:1px;scrollbar-width:none}.household-care-actions::-webkit-scrollbar{display:none}.household-care-actions button{flex:0 0 auto;min-height:34px;padding:7px 9px;border:0;border-radius:11px;background:#eeece8;color:#514b46;font-size:calc(9px + var(--tp-text-extra,0px));font-weight:900;white-space:nowrap}.household-care-actions button.primary{background:#607664;color:#fff}.household-care-actions button.rx{background:#eee8f7;color:#6c5b8a}.household-care-actions button.pickup{background:#5f6e82;color:#fff}.household-care-actions button:disabled{opacity:.42}
.household-care-empty{padding:14px;border-radius:16px;background:#f7f5f1;text-align:center;color:var(--muted);font-size:calc(10.5px + var(--tp-text-extra,0px));font-weight:750}
@media(min-width:720px){.household-care-members{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* TinyPal v8.91 — Secondo animale Fase 9: Passeggiate di Famiglia */
.walk-family-choice{margin:10px 0;padding:12px;border:1px solid rgba(83,103,79,.10);border-radius:20px;background:linear-gradient(180deg,#f5f8f2,#eef5eb)}
.walk-family-choice-head{display:flex;align-items:center;gap:10px}.walk-family-choice-head>span{width:40px;height:40px;border-radius:13px;background:#fff;display:grid;place-items:center;font-size:calc(18px + var(--tp-text-extra,0px));box-shadow:0 5px 14px rgba(57,75,53,.08)}
.walk-family-choice-head strong{display:block;font-size:calc(12px + var(--tp-text-extra,0px))}.walk-family-choice-head small{display:block;margin-top:2px;color:var(--muted);font-size:calc(9.5px + var(--tp-text-extra,0px));font-weight:700}
.walk-family-choice-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:9px}.walk-family-choice-actions button{min-height:56px;border:1px solid rgba(70,91,66,.09);border-radius:15px;padding:8px;background:#fff;color:inherit;display:flex;align-items:center;gap:8px;text-align:left}.walk-family-choice-actions button>span{font-size:calc(17px + var(--tp-text-extra,0px))}.walk-family-choice-actions button strong{display:block;font-size:calc(10.5px + var(--tp-text-extra,0px))}.walk-family-choice-actions button small{display:block;margin-top:2px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));font-weight:700}.walk-family-choice-actions button.active{background:#405f47;color:#fff;border-color:#405f47}.walk-family-choice-actions button.active small{color:rgba(255,255,255,.72)}.walk-family-choice-actions button:disabled{opacity:.45}
.walk-family-vitals{display:flex;align-items:center;gap:7px;margin-top:8px;padding:7px 9px;border-radius:12px;background:rgba(255,255,255,.72)}.walk-family-vitals span{font-size:calc(9.5px + var(--tp-text-extra,0px));font-weight:850}.walk-family-vitals small{margin-left:auto;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));font-weight:800}
.walk-map-marker-companion{z-index:8;transform:translate(-50%,-50%) translate(9px,9px)}.walk-map-marker-companion span{background:#f3ede7!important;box-shadow:0 5px 15px rgba(67,51,39,.15)!important}
.walk-pet-marker-companion{z-index:4;top:-8px}.walk-pet-marker-companion>span{background:#f8f3ed}.walk-pet-marker-companion>i{background:#7d6a85;transform:rotate(-4deg)}.walk-pet-marker-companion>small{position:absolute;left:50%;top:-14px;transform:translateX(-50%) skewX(7deg);padding:2px 5px;border-radius:999px;background:rgba(255,255,255,.9);font-size:calc(8px + var(--tp-text-extra,0px));font-weight:900;white-space:nowrap;color:#62564e;box-shadow:0 3px 8px rgba(60,48,38,.08)}
.park-pet-companion{left:63%;bottom:39px;background:#f8f3ed;animation-delay:.35s}
.walk-scene.family-walk .walk-pet-marker>span{box-shadow:0 8px 18px rgba(55,46,38,.16),0 0 0 2px rgba(255,255,255,.35)}
.walk-leash-card.family-walk-leash .walk-leash-head::before{content:"🐾🐾";font-size:calc(14px + var(--tp-text-extra,0px));margin-right:2px}
.walk-home-rewards.family-walk-rewards{grid-template-columns:repeat(4,1fr)}
@media(max-width:390px){.walk-family-choice-actions{grid-template-columns:1fr}.walk-pet-marker-companion>small{display:none}.park-pet-companion{left:66%}}


/* TinyPal v8.92 — Secondo animale Fase 10: Convivenza avanzata */
.household-dynamics-card{margin-top:11px;padding:14px;border:1px solid rgba(81,91,74,.11);border-radius:23px;background:linear-gradient(145deg,#f5f8f2,#fff9f1);box-shadow:0 10px 25px rgba(57,71,52,.055)}
.household-dynamics-card.hidden{display:none!important}.household-dynamics-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start}.household-dynamics-head strong{display:block;margin-top:3px;font-size:calc(14px + var(--tp-text-extra,0px))}.household-dynamics-head small{display:block;margin-top:4px;color:var(--muted);font-size:calc(9.5px + var(--tp-text-extra,0px));line-height:1.35;font-weight:700}.household-synergy{min-width:62px;padding:8px 9px;border-radius:15px;background:#fff;text-align:center;box-shadow:0 5px 14px rgba(61,70,56,.06)}.household-synergy strong{font-size:calc(15px + var(--tp-text-extra,0px));color:#63745d}.household-synergy small{display:block;margin-top:2px;font-size:calc(8px + var(--tp-text-extra,0px));letter-spacing:.1em;color:var(--muted);font-weight:900}
.household-temperaments{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:11px}.household-temperament{display:grid;grid-template-columns:32px minmax(0,1fr);gap:8px;align-items:center;padding:8px 9px;border-radius:15px;background:rgba(255,255,255,.72);border:1px solid rgba(77,83,70,.07)}.household-temperament>span{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;background:#edf2e9;font-size:calc(16px + var(--tp-text-extra,0px))}.household-temperament strong{display:block;font-size:calc(9.5px + var(--tp-text-extra,0px))}.household-temperament small{display:block;margin-top:2px;color:var(--muted);font-size:calc(8.5px + var(--tp-text-extra,0px));font-weight:700}
.household-shared-preferences{display:flex;gap:6px;overflow-x:auto;margin-top:9px;padding-bottom:1px;scrollbar-width:none}.household-shared-preferences::-webkit-scrollbar{display:none}.household-pref-chip{flex:0 0 auto;display:inline-flex;align-items:center;gap:5px;padding:7px 9px;border-radius:999px;background:#eef3ea;border:1px solid rgba(87,103,76,.08);font-size:calc(9px + var(--tp-text-extra,0px));font-weight:850;color:#596551}.household-pref-chip span{font-size:calc(13px + var(--tp-text-extra,0px))}
.household-favorite-ritual{display:grid;grid-template-columns:43px minmax(0,1fr) auto;gap:9px;align-items:center;margin-top:11px;padding:11px;border-radius:18px;background:linear-gradient(135deg,#fff,#f5efe7);border:1px solid rgba(100,84,68,.08)}.household-ritual-mark{width:43px;height:43px;border-radius:14px;display:grid;place-items:center;background:#eef3e9;font-size:21px;box-shadow:inset 0 1px rgba(255,255,255,.8)}.household-favorite-ritual small{display:block;color:#8b8279;font-size:calc(8px + var(--tp-text-extra,0px));letter-spacing:.09em;font-weight:900}.household-favorite-ritual strong{display:block;margin-top:2px;font-size:calc(11.5px + var(--tp-text-extra,0px))}.household-favorite-ritual p{margin:3px 0 0;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));line-height:1.35;font-weight:690}.household-favorite-ritual button{border:0;border-radius:13px;padding:9px 10px;background:#63745d;color:#fff;font:inherit;font-size:calc(9px + var(--tp-text-extra,0px));font-weight:900;white-space:nowrap}.household-favorite-ritual button:disabled{opacity:.42}
.household-shared-history-wrap{margin-top:11px}.household-shared-history-wrap>div:first-child{display:flex;align-items:center;justify-content:space-between}.household-shared-history-wrap>div:first-child>small{color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));font-weight:800}.household-shared-history{display:grid;gap:5px;margin-top:7px}.household-shared-moment{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:7px;align-items:center;padding:7px 8px;border-radius:13px;background:rgba(255,255,255,.67)}.household-shared-moment>span{font-size:calc(14px + var(--tp-text-extra,0px));text-align:center}.household-shared-moment strong{display:block;font-size:calc(9px + var(--tp-text-extra,0px))}.household-shared-moment small{display:block;margin-top:2px;color:var(--muted);font-size:calc(8px + var(--tp-text-extra,0px))}.household-shared-moment time{color:#9a9188;font-size:calc(8px + var(--tp-text-extra,0px));font-weight:800}.household-shared-empty{padding:9px;border-radius:13px;background:rgba(255,255,255,.62);color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));line-height:1.4;text-align:center;font-weight:700}

/* Nuove pose a due: usano translate/rotate separati e non alterano la scala del rig. */
.room.duo-interacting.duo-ritual-chase .pet-zone,.room.duo-interacting.duo-ritual-chase .household-room-companion{top:53%!important}
.room.duo-interacting.duo-ritual-groom .pet-zone,.room.duo-interacting.duo-ritual-groom .household-room-companion{top:56%!important}
.room.duo-interacting.duo-ritual-explore .pet-zone,.room.duo-interacting.duo-ritual-explore .household-room-companion{top:54%!important}
.room.duo-interacting.duo-ritual-nap .pet-zone,.room.duo-interacting.duo-ritual-nap .household-room-companion{top:59%!important}
.room.duo-interacting.duo-ritual-forage .pet-zone,.room.duo-interacting.duo-ritual-forage .household-room-companion{top:55%!important}
.room.duo-interacting.duo-ritual-watch .pet-zone,.room.duo-interacting.duo-ritual-watch .household-room-companion{top:55%!important}
.room.duo-ritual-chase #petButton,.room.duo-ritual-chase .household-companion-pet{animation:duoRitualChase .58s ease-in-out 5!important}
@keyframes duoRitualChase{0%,100%{translate:0 0;rotate:0deg}30%{translate:-5px -6px;rotate:-3deg}65%{translate:6px -3px;rotate:3deg}}
.room.duo-ritual-groom #petButton .head,.room.duo-ritual-groom .household-companion-pet .head{animation:duoRitualGroomHead .7s ease-in-out 5!important}.room.duo-ritual-groom #petButton .leg-left,.room.duo-ritual-groom .household-companion-pet .leg-left{animation:duoRitualGroomPaw .42s ease-in-out 8!important}
@keyframes duoRitualGroomHead{0%,100%{translate:0 0;rotate:0deg}50%{translate:0 5px;rotate:-8deg}}@keyframes duoRitualGroomPaw{0%,100%{translate:0 0;rotate:0deg}50%{translate:7px -11px;rotate:-10deg}}
.room.duo-ritual-explore #petButton .head,.room.duo-ritual-explore .household-companion-pet .head,.room.duo-ritual-forage #petButton .head,.room.duo-ritual-forage .household-companion-pet .head{animation:duoRitualSniff .58s ease-in-out 6!important}@keyframes duoRitualSniff{0%,100%{translate:0 0;rotate:0deg}50%{translate:0 5px;rotate:7deg}}
.room.duo-ritual-nap #petButton,.room.duo-ritual-nap .household-companion-pet{animation:duoRitualNap 1.8s ease-in-out 3!important}@keyframes duoRitualNap{0%,100%{translate:0 1px;rotate:-1deg}50%{translate:0 3px;rotate:1deg}}
.room.duo-ritual-watch #petButton .head,.room.duo-ritual-watch .household-companion-pet .head{animation:duoRitualWatch 1.3s ease-in-out 3!important}@keyframes duoRitualWatch{0%,100%{rotate:-4deg}50%{rotate:5deg}}
.household-duo-fx.duo-ritual-chase i,.household-duo-fx.duo-ritual-chase b,.household-duo-fx.duo-ritual-chase em{width:7px;height:7px;border-radius:50%;background:#e8c967;animation:duoPlaySpark .8s ease-in-out infinite}.household-duo-fx.duo-ritual-groom i::before,.household-duo-fx.duo-ritual-groom b::before,.household-duo-fx.duo-ritual-groom em::before{content:"♡";color:#bc8da0;font-style:normal}.household-duo-fx.duo-ritual-groom i{left:28%;top:34%}.household-duo-fx.duo-ritual-groom b{left:50%;top:13%}.household-duo-fx.duo-ritual-groom em{right:23%;top:40%}.household-duo-fx.duo-ritual-explore i::before,.household-duo-fx.duo-ritual-forage i::before{content:"· · ·";color:#75866f;font-style:normal;font-weight:950}.household-duo-fx.duo-ritual-explore i,.household-duo-fx.duo-ritual-forage i{left:45%;top:20%}.household-duo-fx.duo-ritual-nap i::before{content:"z Z";color:#8c8197;font-style:normal;font-weight:950}.household-duo-fx.duo-ritual-nap i{left:46%;top:18%}.household-duo-fx.duo-ritual-watch i::before{content:"✦";color:#82927a;font-style:normal}.household-duo-fx.duo-ritual-watch i{left:48%;top:20%}
@media(max-width:620px){.household-favorite-ritual{grid-template-columns:40px minmax(0,1fr)}.household-favorite-ritual button{grid-column:1/-1;width:100%}.household-temperaments{grid-template-columns:1fr}.household-dynamics-head{grid-template-columns:1fr auto}}
@media(prefers-reduced-motion:reduce){.room.duo-ritual-chase #petButton,.room.duo-ritual-chase .household-companion-pet,.room.duo-ritual-groom #petButton .head,.room.duo-ritual-groom .household-companion-pet .head,.room.duo-ritual-groom #petButton .leg-left,.room.duo-ritual-groom .household-companion-pet .leg-left,.room.duo-ritual-explore #petButton .head,.room.duo-ritual-explore .household-companion-pet .head,.room.duo-ritual-forage #petButton .head,.room.duo-ritual-forage .household-companion-pet .head,.room.duo-ritual-nap #petButton,.room.duo-ritual-nap .household-companion-pet,.room.duo-ritual-watch #petButton .head,.room.duo-ritual-watch .household-companion-pet .head{animation:none!important}}


/* TinyPal v8.93 — Fase 11: gestione quotidiana di gruppo */
.household-daily-card{margin-top:12px;padding:15px;border:1px solid rgba(72,79,68,.09);border-radius:24px;background:linear-gradient(180deg,#f7f8f4,#f2f4ef)}
.household-daily-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start}.household-daily-head strong{display:block;margin-top:4px;font-size:calc(14px + var(--tp-text-extra,0px))}.household-daily-head small{display:block;margin-top:3px;color:var(--muted);font-size:calc(10.5px + var(--tp-text-extra,0px));line-height:1.35;font-weight:700}.household-daily-progress{min-width:61px;padding:10px;border-radius:18px;background:#fff;text-align:center;box-shadow:0 5px 15px rgba(56,64,52,.06)}.household-daily-progress strong{font-size:calc(16px + var(--tp-text-extra,0px))}.household-daily-progress small{margin-top:2px;font-size:calc(9px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.1em}
.household-daily-members{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.household-daily-member{display:grid;grid-template-columns:38px minmax(0,1fr);gap:8px;align-items:center;padding:9px;border-radius:17px;background:#fff;border:1px solid rgba(70,75,65,.06)}.household-daily-member-avatar{width:38px;height:38px;display:grid;place-items:center;overflow:hidden;border-radius:13px;background:#f4f1ec}.household-daily-member-avatar .household-preview-pet{transform:scale(.28)!important;transform-origin:center}.household-daily-member strong{display:block;font-size:calc(11.5px + var(--tp-text-extra,0px))}.household-daily-member small{display:block;margin-top:2px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));font-weight:750}.household-daily-mini-needs{display:flex;gap:5px;margin-top:4px;flex-wrap:wrap}.household-daily-mini-needs b{font-size:calc(9px + var(--tp-text-extra,0px));font-weight:900;padding:3px 5px;border-radius:999px;background:#f2f3ef}.household-daily-mini-needs b.low{background:#f8e9e5;color:#8e5147}
.household-daily-priority{display:grid;grid-template-columns:38px 1fr;gap:9px;align-items:center;margin-top:9px;padding:10px 11px;border-radius:17px;background:#fff}.household-daily-priority>span{width:38px;height:38px;border-radius:13px;display:grid;place-items:center;background:#eef3eb;font-size:calc(19px + var(--tp-text-extra,0px))}.household-daily-priority small{display:block;font-size:calc(9px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.1em;color:var(--muted)}.household-daily-priority strong{display:block;margin-top:2px;font-size:calc(11.5px + var(--tp-text-extra,0px))}.household-daily-priority p{margin:2px 0 0;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));line-height:1.3;font-weight:650}.household-daily-priority.warn>span{background:#f7ebe7}
.household-daily-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:10px}.household-daily-actions button{position:relative;min-height:77px;padding:10px 28px 10px 10px;border:1px solid rgba(72,75,67,.07);border-radius:17px;background:#fff;text-align:left;color:inherit}.household-daily-actions button>span{font-size:calc(19px + var(--tp-text-extra,0px))}.household-daily-actions button strong{display:block;margin-top:6px;font-size:calc(10.5px + var(--tp-text-extra,0px))}.household-daily-actions button small{display:block;margin-top:2px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));line-height:1.25;font-weight:650}.household-daily-actions button em{position:absolute;right:9px;top:9px;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:#efefeb;color:#999;font-size:calc(10.5px + var(--tp-text-extra,0px));font-style:normal;font-weight:950}.household-daily-actions button.done em{background:#dfeadd;color:#57705b}.household-daily-actions button.done{background:#f7faf5}.household-daily-actions button:disabled{opacity:.46}
.household-daily-reward{display:flex;gap:9px;align-items:center;margin-top:10px;padding:10px 11px;border-radius:16px;background:#ede9df}.household-daily-reward>span{font-size:calc(20px + var(--tp-text-extra,0px))}.household-daily-reward strong{display:block;font-size:calc(10.5px + var(--tp-text-extra,0px))}.household-daily-reward small{display:block;margin-top:2px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));font-weight:700}.household-daily-reward.claimed{background:#e6efe3}.household-daily-reward.claimed>span{animation:pawPop .35s ease-out}
@media(max-width:380px){.household-daily-members,.household-daily-actions{grid-template-columns:1fr}.household-daily-head{grid-template-columns:1fr}.household-daily-progress{justify-self:start}}


/* TinyPal v8.94 — Avventura Fase 1 */
.arcade-adventure-section{margin:0 0 14px;padding:14px;border-radius:24px;background:linear-gradient(145deg,#eef4e8,#e2ebdc);border:1px solid rgba(72,93,62,.10)}
.adventure-feature-card{width:100%;border:0;border-radius:21px;padding:0;background:#fff;display:grid;grid-template-columns:118px minmax(0,1fr) auto;gap:12px;align-items:center;text-align:left;color:inherit;overflow:hidden;box-shadow:0 7px 20px rgba(57,72,49,.07)}
.adventure-feature-art{position:relative;height:128px;background:linear-gradient(#b9d8b0 0 43%,#7ead71 43% 100%);overflow:hidden}
.adventure-feature-art .adv-path{position:absolute;left:44px;top:46px;width:43px;height:110px;background:#d7c49e;transform:rotate(12deg);border-radius:50%}
.adventure-feature-art .adv-tree{position:absolute;bottom:15px;width:34px;height:72px}.adventure-feature-art .adv-tree::before{content:"";position:absolute;left:14px;bottom:0;width:9px;height:40px;border-radius:5px;background:#79583d}.adventure-feature-art .adv-tree::after{content:"";position:absolute;left:-6px;top:0;width:47px;height:45px;border-radius:50%;background:#5d9455;box-shadow:12px 11px 0 -9px #4f8249}.adventure-feature-art .adv-tree.a{left:8px}.adventure-feature-art .adv-tree.b{right:6px;transform:scale(.85)}
.adventure-feature-art .adv-paw{position:absolute;left:52px;bottom:17px;font-size:27px;filter:drop-shadow(0 4px 3px rgba(50,40,25,.13))}.adventure-feature-art .adv-spark{position:absolute;right:18px;top:18px;font-size:22px;color:#fff8bc;text-shadow:0 0 12px rgba(255,245,180,.9)}
.adventure-feature-copy{padding:13px 0}.adventure-feature-copy>span{font-size:calc(9px + var(--tp-text-extra,0px));letter-spacing:.11em;font-weight:950;color:#66805e}.adventure-feature-copy>strong{display:block;margin-top:4px;font-size:calc(14px + var(--tp-text-extra,0px));line-height:1.2}.adventure-feature-copy>small{display:block;margin-top:5px;color:var(--muted);font-size:calc(9.5px + var(--tp-text-extra,0px));line-height:1.35;font-weight:700}.adventure-feature-progress{margin-top:10px;display:grid;grid-template-columns:minmax(80px,150px) auto;gap:7px;align-items:center}.adventure-feature-progress>i{height:6px;border-radius:99px;background:#e8ece5;overflow:hidden}.adventure-feature-progress>i>b{display:block;height:100%;width:0;background:#718a68;border-radius:inherit}.adventure-feature-progress em{font-size:calc(9px + var(--tp-text-extra,0px));font-style:normal;font-weight:850;color:#6d7968}.adventure-feature-cta{padding-right:14px;white-space:nowrap;font-size:calc(10.5px + var(--tp-text-extra,0px));color:#607458}

.adventure-sheet{width:min(760px,calc(100vw - 22px));max-height:94dvh;overflow:auto;padding-bottom:18px}.adventure-sheet-head p{max-width:540px}.adventure-hub{padding:0 16px 8px}.adventure-hero{border-radius:23px;overflow:hidden;background:#f5f7ef;border:1px solid rgba(73,87,65,.09)}.adventure-hero-scene{height:178px;position:relative;overflow:hidden;background:linear-gradient(#b7d9bc 0 44%,#82b875 44% 100%)}
.adventure-hero-scene .h-path{position:absolute;left:41%;top:51px;width:110px;height:160px;background:linear-gradient(90deg,#bea276,#e4d2ac,#b99366);transform:perspective(100px) rotateX(14deg) rotate(-9deg);border-radius:50%}.adventure-hero-scene .h-tree{position:absolute;bottom:17px;width:80px;height:126px}.adventure-hero-scene .h-tree::before{content:"";position:absolute;left:35px;bottom:0;width:17px;height:70px;border-radius:8px;background:linear-gradient(90deg,#664631,#936b48,#5c3e2d)}.adventure-hero-scene .h-tree::after{content:"";position:absolute;left:0;top:0;width:80px;height:79px;border-radius:50%;background:#5e9859;box-shadow:28px 12px 0 -13px #4e874b,-18px 20px 0 -17px #70a767}.adventure-hero-scene .h1{left:7%}.adventure-hero-scene .h2{right:7%;transform:scale(.88)}.adventure-hero-scene .h-paw{position:absolute;left:48%;bottom:20px;font-size:38px}.adventure-hero-scene .h-glow{position:absolute;right:23%;top:55px;color:#fff5a3;font-size:26px;text-shadow:0 0 15px rgba(255,248,175,.95)}
.adventure-hero-copy{padding:14px 15px}.adventure-hero-copy>strong{display:block;margin-top:4px;font-size:calc(17px + var(--tp-text-extra,0px))}.adventure-hero-copy p{margin:6px 0 0;color:var(--muted);font-size:calc(11.5px + var(--tp-text-extra,0px));line-height:1.45;font-weight:650}
.adventure-progress-card{margin-top:11px;padding:13px;border-radius:20px;background:#fff;border:1px solid var(--line)}.adventure-progress-card>div:first-child{display:grid;grid-template-columns:42px minmax(0,1fr);gap:10px;align-items:center}.adventure-progress-card>div:first-child>span{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:#eef3e8;font-size:22px}.adventure-progress-card small{display:block;font-size:calc(9px + var(--tp-text-extra,0px));letter-spacing:.08em;font-weight:900;color:var(--muted)}.adventure-progress-card strong{display:block;margin-top:2px;font-size:calc(16px + var(--tp-text-extra,0px))}.adventure-progress-card em{display:block;margin-top:1px;font-size:calc(9px + var(--tp-text-extra,0px));color:#72806d;font-style:normal;font-weight:800}.adventure-progress-card>i{display:block;height:8px;border-radius:99px;background:#eceee9;margin-top:10px;overflow:hidden}.adventure-progress-card>i>b{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#6d8c63,#a4b986)}.adventure-hub-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:10px}.adventure-hub-stats span{padding:8px;border-radius:12px;background:#f6f7f3;text-align:center}.adventure-hub-stats strong{font-size:calc(12px + var(--tp-text-extra,0px))}.adventure-hub-stats small{font-size:calc(8px + var(--tp-text-extra,0px));letter-spacing:0;margin-top:2px}
.adventure-how{display:grid;grid-template-columns:40px minmax(0,1fr);gap:10px;align-items:center;margin-top:11px;padding:12px;border-radius:18px;background:#f4f1e9}.adventure-how>span{font-size:26px}.adventure-how strong{font-size:calc(11.5px + var(--tp-text-extra,0px))}.adventure-how p{margin:3px 0 0;color:var(--muted);font-size:calc(9.5px + var(--tp-text-extra,0px));line-height:1.4;font-weight:650}.adventure-start{width:100%;margin-top:11px;border:0;border-radius:18px;padding:12px;background:#52694d;color:#fff;display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:10px;align-items:center;text-align:left}.adventure-start>span{width:42px;height:42px;border-radius:13px;background:rgba(255,255,255,.13);display:grid;place-items:center;font-size:23px}.adventure-start strong{display:block;font-size:calc(12px + var(--tp-text-extra,0px))}.adventure-start small{display:block;margin-top:3px;color:rgba(255,255,255,.72);font-size:calc(9px + var(--tp-text-extra,0px));line-height:1.3}.adventure-start>b{font-size:calc(20px + var(--tp-text-extra,0px))}.adventure-start:disabled{opacity:.48}

.adventure-game{padding:0 12px 10px}.adventure-topbar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:9px;align-items:center;margin-bottom:8px}.adventure-topbar>button{border:0;border-radius:11px;padding:8px 10px;background:#f1f2ed;font-size:calc(9.5px + var(--tp-text-extra,0px));font-weight:900;color:#5d6559}.adventure-topbar>div small{font-size:calc(8px + var(--tp-text-extra,0px));letter-spacing:.1em;font-weight:950;color:#75806f}.adventure-topbar>div strong{display:block;margin-top:2px;font-size:calc(11.5px + var(--tp-text-extra,0px))}.adventure-topbar>span{text-align:right;padding:6px 8px;border-radius:11px;background:#edf3e8}.adventure-topbar>span b{display:block;font-size:calc(12px + var(--tp-text-extra,0px))}.adventure-topbar>span small{font-size:calc(8px + var(--tp-text-extra,0px));color:#72806e;font-weight:850}
.adventure-viewport{position:relative;height:470px;border-radius:22px;overflow:hidden;background:#7fab70;border:1px solid rgba(53,76,47,.15);touch-action:none;user-select:none;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18),0 9px 22px rgba(45,62,41,.09)}.adventure-world{position:absolute;left:0;top:0;width:1020px;height:560px;transform:translate(0,0);transform-origin:0 0;background:linear-gradient(90deg,#8fbd7d 0 33.333%,#78ad70 33.333% 68.6%,#6b9d65 68.6% 100%);transition:transform .06s linear}.adventure-zone-bg{position:absolute;top:0;height:100%;pointer-events:none}.adventure-zone-bg strong{position:absolute;top:27px;left:50%;transform:translateX(-50%);font-size:34px;letter-spacing:.08em;color:rgba(255,255,255,.07);white-space:nowrap}.adventure-zone-bg.zone-a{left:0;width:340px}.adventure-zone-bg.zone-b{left:340px;width:360px;background:linear-gradient(180deg,rgba(76,117,74,.12),transparent)}.adventure-zone-bg.zone-c{left:700px;width:320px;background:radial-gradient(circle at 75% 28%,rgba(255,241,157,.15),transparent 23%)}
.adventure-path-main{position:absolute;left:68px;top:326px;width:868px;height:128px;border-radius:50%;background:linear-gradient(180deg,#d8c698,#bca16f);transform:rotate(-2deg);box-shadow:inset 0 8px 14px rgba(255,255,255,.13),inset 0 -8px 14px rgba(92,69,42,.10)}.adventure-path-main::after{content:"";position:absolute;inset:13px 0;background:radial-gradient(circle at 8% 38%,rgba(103,77,47,.12) 0 2px,transparent 2.5px) 0 0/47px 33px}.adventure-path-turn{position:absolute;width:155px;height:100px;border-radius:50%;background:#cbb583}.adventure-path-turn.p1{left:320px;top:286px;transform:rotate(-22deg)}.adventure-path-turn.p2{right:31px;top:293px;transform:rotate(18deg)}
.adventure-river{position:absolute;left:470px;top:0;width:90px;height:560px;background:linear-gradient(90deg,#699ca8,#8ec4cd 45%,#5d939f);box-shadow:inset 11px 0 18px rgba(38,82,92,.13),inset -11px 0 18px rgba(255,255,255,.10)}.adventure-river i{position:absolute;left:8px;width:70px;height:8px;border-top:2px solid rgba(255,255,255,.25);border-radius:50%}.adventure-river i:nth-child(1){top:95px}.adventure-river i:nth-child(2){top:226px;left:19px}.adventure-river i:nth-child(3){top:468px;left:2px}.adventure-bridge{position:absolute;left:453px;top:344px;width:126px;height:84px;z-index:3;transform:rotate(-1deg);background:repeating-linear-gradient(90deg,#8c633e 0 14px,#b48254 14px 27px);border-radius:9px;box-shadow:0 8px 8px rgba(46,43,29,.18),inset 0 3px rgba(255,255,255,.18)}.adventure-bridge::before,.adventure-bridge::after{content:"";position:absolute;left:-2px;right:-2px;height:7px;border-radius:4px;background:#65462f}.adventure-bridge::before{top:5px}.adventure-bridge::after{bottom:5px}
.adventure-tree{position:absolute;width:76px;height:116px;transform:translate(-50%,-50%) scale(var(--s,1));transform-origin:center bottom;filter:drop-shadow(0 7px 5px rgba(42,67,37,.14));pointer-events:none}.adventure-tree i{position:absolute;left:32px;bottom:0;width:14px;height:68px;border-radius:7px;background:linear-gradient(90deg,#5f402d,#916a47,#573a29)}.adventure-tree b{position:absolute;left:0;top:0;width:76px;height:76px;border-radius:50%;background:#4f8b4c;box-shadow:22px 10px 0 -12px #3e7b40,-18px 18px 0 -15px #6da35e}.adventure-bush{position:absolute;width:49px;height:28px;border-radius:50%;transform:translate(-50%,-50%);background:#548b4e;box-shadow:16px -7px 0 -6px #6aa05c,-13px -5px 0 -7px #467d47;pointer-events:none}
.adventure-sign{position:absolute;width:85px;height:46px;padding:7px;border-radius:7px;background:#d3b17b;border:3px solid #755335;color:#563c28;text-align:center;box-shadow:0 5px 6px rgba(62,43,28,.14);transform:translate(-50%,-50%);pointer-events:none}.adventure-sign::after{content:"";position:absolute;left:35px;bottom:-31px;width:10px;height:29px;background:#64442d}.adventure-sign b{display:block;font-size:calc(9px + var(--tp-text-extra,0px))}.adventure-sign small{display:block;margin-top:2px;font-size:calc(7.5px + var(--tp-text-extra,0px));font-weight:850}.adventure-riddle-stone{position:absolute;width:88px;height:47px;border-radius:50% 50% 12px 12px;background:linear-gradient(#9a9f8f,#686f65);transform:translate(-50%,-50%);box-shadow:inset 0 2px rgba(255,255,255,.18),0 6px 8px rgba(47,51,43,.15);pointer-events:none}.adventure-riddle-stone small{position:absolute;inset:0;display:grid;place-items:center;color:#e5e7d4;font-size:calc(13px + var(--tp-text-extra,0px));font-weight:900;text-shadow:0 1px #444}
.adventure-pickup{position:absolute;transform:translate(-50%,-50%);width:50px;height:57px;display:grid;justify-items:center;pointer-events:none;transition:opacity .25s,scale .25s}.adventure-pickup>span{width:38px;height:38px;border-radius:13px;display:grid;place-items:center;background:rgba(255,255,255,.91);font-size:21px;box-shadow:0 6px 13px rgba(47,56,39,.15);animation:adventurePickupFloat 1.7s ease-in-out infinite alternate}.adventure-pickup small{margin-top:3px;padding:2px 5px;border-radius:99px;background:rgba(45,54,40,.67);color:#fff;font-size:calc(7.5px + var(--tp-text-extra,0px));font-weight:800;white-space:nowrap}.adventure-pickup.collected{opacity:0;scale:.6}.adventure-pickup:nth-of-type(2n)>span{animation-delay:-.7s}@keyframes adventurePickupFloat{to{translate:0 -5px}}
.adventure-digspot{position:absolute;width:64px;height:45px;transform:translate(-50%,-50%);pointer-events:none}.adventure-digspot i{position:absolute;left:4px;right:4px;bottom:0;height:22px;border-radius:50%;background:#826849;box-shadow:inset 0 4px rgba(72,51,33,.18)}.adventure-digspot b{position:absolute;left:22px;top:0;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#e4d49b;color:#796742;font-size:calc(14px + var(--tp-text-extra,0px));box-shadow:0 4px 8px rgba(45,38,28,.12)}.adventure-digspot.dug b{display:none}.adventure-digspot.dug i{background:#5f4935;transform:scale(1.1)}
.adventure-altar{position:absolute;width:92px;height:102px;transform:translate(-50%,-50%);pointer-events:none}.adventure-altar i{position:absolute;left:15px;bottom:10px;width:62px;height:78px;border-radius:45% 45% 22% 22%;background:linear-gradient(90deg,#65513c,#997853,#5b4938);box-shadow:inset 7px 0 rgba(255,255,255,.07),0 8px 8px rgba(45,36,27,.18)}.adventure-altar b{position:absolute;left:34px;top:33px;color:#f4dfa2;font-size:25px;text-shadow:0 0 11px rgba(248,222,143,.7)}.adventure-altar small{position:absolute;left:50%;bottom:-2px;transform:translateX(-50%);padding:3px 7px;border-radius:99px;background:rgba(45,49,39,.76);color:white;font-size:calc(8px + var(--tp-text-extra,0px));white-space:nowrap;font-weight:850}
.adventure-player{position:absolute;width:88px;height:98px;transform:translate(-50%,-78%);z-index:12;pointer-events:none;filter:drop-shadow(0 6px 4px rgba(55,41,29,.14))}.adventure-player-scale{position:absolute;left:-31px;top:-31px;width:150px;height:168px;transform:scale(.46);transform-origin:center bottom}.adventure-player .pet{animation:idle 2s ease-in-out infinite!important}.adventure-player.walking .pet{animation:adventurePetWalk .38s ease-in-out infinite!important}.adventure-player-shadow{position:absolute;left:50%;bottom:6px;transform:translateX(-50%);width:58px;height:14px;border-radius:50%;background:rgba(50,42,31,.20);filter:blur(2px);z-index:-1}@keyframes adventurePetWalk{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-6px) rotate(2deg)}}
.adventure-tip{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);padding:8px 11px;border-radius:99px;background:rgba(38,46,35,.76);color:#fff;font-size:calc(9.5px + var(--tp-text-extra,0px));font-weight:850;pointer-events:none;backdrop-filter:blur(5px)}.adventure-zone-toast{position:absolute;left:50%;top:18px;transform:translateX(-50%);padding:8px 13px;border-radius:99px;background:rgba(255,255,255,.91);font-size:calc(10.5px + var(--tp-text-extra,0px));font-weight:950;color:#586851;box-shadow:0 5px 15px rgba(43,56,40,.12);pointer-events:none}.adventure-bottom-hud{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;margin-top:8px}.adventure-collected-strip{display:flex;gap:5px;overflow:hidden}.adventure-collected-strip>span{width:31px;height:31px;border-radius:9px;display:grid;place-items:center;background:#eef0eb;color:#a8ada4;font-size:calc(13px + var(--tp-text-extra,0px));font-weight:950}.adventure-collected-strip>span.found{background:#f5f2e3;color:#4c5946;font-size:calc(16px + var(--tp-text-extra,0px))}.adventure-collected-strip>span.key{background:#eee7d4}.adventure-context{min-height:42px;border:0;border-radius:13px;padding:7px 11px;background:#53694d;color:#fff;display:flex;align-items:center;gap:7px;white-space:nowrap}.adventure-context span{font-size:calc(17px + var(--tp-text-extra,0px))}.adventure-context strong{font-size:calc(9.5px + var(--tp-text-extra,0px))}.adventure-context.hidden{display:none}

.adventure-puzzle,.adventure-result{padding:5px 16px 18px}.adventure-puzzle-card,.adventure-result-card{padding:20px;border-radius:25px;background:#f7f5ee;border:1px solid rgba(75,67,54,.09);text-align:center}.adventure-puzzle-icon,.adventure-result-card>span:first-child{display:grid;place-items:center;width:62px;height:62px;margin:0 auto 10px;border-radius:20px;background:#e9e5d6;font-size:31px}.adventure-puzzle-card>strong,.adventure-result-card>strong{display:block;margin-top:5px;font-size:calc(18px + var(--tp-text-extra,0px))}.adventure-puzzle-card>p,.adventure-result-card>p{max-width:430px;margin:7px auto 0;color:var(--muted);font-size:calc(10.5px + var(--tp-text-extra,0px));line-height:1.5;font-weight:650}.adventure-riddle-clue{display:flex;align-items:center;justify-content:center;gap:9px;margin:16px 0 10px}.adventure-riddle-clue span{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:#fff;font-size:22px;box-shadow:0 5px 12px rgba(50,45,35,.06)}.adventure-riddle-clue i{font-style:normal;color:#a29b8d}.adventure-puzzle-input{display:flex;justify-content:center;gap:7px;margin:12px 0}.adventure-puzzle-input i{width:38px;height:38px;border-radius:12px;border:1px dashed #b5b0a6;background:#fff;display:grid;place-items:center;font-style:normal;font-size:calc(20px + var(--tp-text-extra,0px))}.adventure-puzzle-input i.filled{border-style:solid;background:#eef3e9}.adventure-puzzle-input.wrong{animation:advPuzzleShake .28s linear 2}@keyframes advPuzzleShake{25%{translate:-4px 0}75%{translate:4px 0}}.adventure-symbols{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0}.adventure-symbols button{border:1px solid var(--line);border-radius:16px;background:#fff;padding:11px;font-size:24px}.adventure-symbols small{display:block;margin-top:5px;font-size:calc(9px + var(--tp-text-extra,0px));color:var(--muted);font-weight:800}.adventure-puzzle-message{display:block;min-height:18px;color:#776f63;font-size:calc(9.5px + var(--tp-text-extra,0px));font-weight:750}.adventure-puzzle-card .ghost-button{margin-top:8px}.adventure-result-card{background:linear-gradient(145deg,#f7f8ef,#edf3e7)}.adventure-result-card>span:first-child{background:#fff1c9}.adventure-result-rewards{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:15px}.adventure-result-rewards span{padding:10px 6px;border-radius:14px;background:#fff}.adventure-result-rewards strong{display:block;font-size:calc(12px + var(--tp-text-extra,0px))}.adventure-result-rewards small{display:block;margin-top:2px;font-size:calc(8px + var(--tp-text-extra,0px));color:var(--muted);font-weight:800}.adventure-result-card>button{width:100%;margin-top:14px;border:0;border-radius:15px;padding:12px;background:#53694d;color:#fff;font-size:calc(10.5px + var(--tp-text-extra,0px));font-weight:900}
@media(max-width:560px){.adventure-feature-card{grid-template-columns:92px minmax(0,1fr)}.adventure-feature-art{height:134px}.adventure-feature-cta{grid-column:2;padding:0 0 10px}.adventure-viewport{height:430px}.adventure-hub-stats{grid-template-columns:1fr 1fr 1fr}.adventure-result-rewards{grid-template-columns:1fr}.adventure-sheet{width:calc(100vw - 10px);max-height:96dvh}.adventure-player-scale{transform:scale(.43)}}
@media(min-width:900px){.adventure-viewport{height:500px}.adventure-hub{display:grid;grid-template-columns:1.25fr .75fr;gap:12px}.adventure-hero{grid-row:span 3}.adventure-how,.adventure-start,.adventure-progress-card{margin-top:0}}


/* TinyPal v8.95 — avventura più lunga, monete e presenza reale */
body.adventure-run-active #room > .pet-zone{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
body.adventure-run-active #room > .household-duo-fx{display:none!important}
.adventure-world{width:1480px!important;height:620px!important;background:linear-gradient(90deg,#91bf7f 0 20.2%,#7eaf73 20.2% 40.5%,#6fa466 40.5% 62.2%,#779d66 62.2% 79.7%,#65945e 79.7% 100%)!important}
.adventure-zone-bg.zone-a{left:0!important;width:300px!important}
.adventure-zone-bg.zone-b{left:300px!important;width:300px!important}
.adventure-zone-bg.zone-c{left:600px!important;width:320px!important}
.adventure-zone-bg.zone-d{left:920px;width:260px;background:linear-gradient(180deg,rgba(82,88,70,.15),transparent)}
.adventure-zone-bg.zone-e{left:1180px;width:300px;background:radial-gradient(circle at 65% 30%,rgba(255,236,157,.17),transparent 27%)}
.adventure-coin-cache{position:absolute;transform:translate(-50%,-50%);width:48px;height:54px;display:grid;justify-items:center;pointer-events:none;transition:opacity .22s,scale .22s}
.adventure-coin-cache>span{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#fff7c8,#e8bd55);font-size:calc(20px + var(--tp-text-extra,0px));box-shadow:0 6px 13px rgba(70,56,27,.18),inset 0 1px rgba(255,255,255,.75);animation:adventurePickupFloat 1.55s ease-in-out infinite alternate}
.adventure-coin-cache small{margin-top:3px;padding:2px 6px;border-radius:99px;background:rgba(44,50,38,.69);color:#fff;font-size:calc(7.5px + var(--tp-text-extra,0px));font-weight:900;white-space:nowrap}
.adventure-coin-cache.collected{opacity:0;scale:.55}
.adventure-rune{position:absolute;transform:translate(-50%,-50%);width:62px;height:76px;pointer-events:none}
.adventure-rune i{position:absolute;left:11px;right:11px;bottom:3px;height:62px;border-radius:46% 46% 16% 16%;background:linear-gradient(90deg,#69776b,#9dad9d 46%,#59675c);box-shadow:inset 5px 0 rgba(255,255,255,.12),0 7px 9px rgba(46,52,43,.18)}
.adventure-rune b{position:absolute;left:50%;top:24px;transform:translateX(-50%);font-size:24px;color:#c8e8d1;text-shadow:0 0 12px rgba(166,231,191,.55)}
.adventure-rune small{position:absolute;left:50%;bottom:-9px;transform:translateX(-50%);font-size:calc(7.5px + var(--tp-text-extra,0px));font-weight:900;padding:3px 6px;border-radius:99px;color:#fff;background:rgba(42,48,39,.72);white-space:nowrap}
.adventure-rune.active b{color:#fff5ac;text-shadow:0 0 15px rgba(255,234,126,.95)}
.adventure-rune.active i{filter:brightness(1.1);box-shadow:inset 5px 0 rgba(255,255,255,.18),0 0 18px rgba(239,221,112,.32)}
.adventure-forest-gate{position:absolute;left:1162px;top:383px;width:44px;height:180px;transform:translate(-50%,-50%);pointer-events:none;opacity:.96}
.adventure-forest-gate::before,.adventure-forest-gate::after{content:"";position:absolute;top:0;width:15px;height:180px;border-radius:9px;background:linear-gradient(90deg,#5f4631,#8a6747,#58402f);box-shadow:0 8px 10px rgba(46,34,25,.14)}
.adventure-forest-gate::before{left:0}.adventure-forest-gate::after{right:0}
.adventure-forest-gate i{position:absolute;left:5px;right:5px;top:70px;height:15px;border-radius:6px;background:#76573d;box-shadow:0 30px 0 #76573d}
.adventure-forest-gate.unlocked{opacity:.24;filter:saturate(.5)}
.adventure-collected-strip{overflow:visible;flex-wrap:wrap}
.adventure-collected-strip>span{width:25px;height:25px;border-radius:8px;font-size:calc(11.5px + var(--tp-text-extra,0px))}
.adventure-collected-strip>span.found{font-size:calc(14px + var(--tp-text-extra,0px))}
@media(max-width:390px){.adventure-collected-strip{gap:3px}.adventure-collected-strip>span{width:22px;height:22px}}

.adventure-path-main{width:1325px!important;left:70px!important;top:365px!important}
.adventure-path-turn.p2{right:78px!important;top:335px!important}
.adventure-river{height:620px!important}


/* =========================================================
   TinyPal v8.99 — ILLUMINAZIONE DINAMICA REALE
   Ora + alba/tramonto + meteo + stagione, con transizioni graduali.
   ========================================================= */
.room.dynamic-lighting,.city-location-scene.dynamic-lighting{
  --ambient-dark-alpha:0;
  --ambient-warm-alpha:.02;
  --ambient-cool-alpha:0;
  --ambient-cloud-alpha:0;
  --ambient-actor-brightness:1;
  --ambient-saturation:1;
}
.real-lighting-layer{
  position:absolute;inset:0;z-index:10;overflow:hidden;border-radius:inherit;pointer-events:none!important;
  transition:opacity 4s ease,background 4s ease;
}
.real-lighting-layer>*{position:absolute;inset:0;display:block;pointer-events:none!important;transition:opacity 4s ease,background 4s ease}
.ambient-dark-layer{background:rgba(8,14,27,var(--ambient-dark-alpha));mix-blend-mode:multiply}
.ambient-weather-layer{background:linear-gradient(180deg,rgba(67,80,95,var(--ambient-cloud-alpha)),rgba(80,87,94,var(--ambient-cloud-alpha)) 65%,transparent);mix-blend-mode:multiply}
.ambient-warm-layer{background:radial-gradient(ellipse at 15% 22%,rgba(255,181,105,var(--ambient-warm-alpha)),rgba(255,199,130,var(--ambient-warm-alpha)) 34%,transparent 72%);mix-blend-mode:soft-light}
.ambient-cool-layer{background:linear-gradient(145deg,rgba(102,143,198,var(--ambient-cool-alpha)),transparent 56%);mix-blend-mode:soft-light}

/* La luce ambientale colora anche gli animali senza cambiare il loro rig/scala. */
.room.dynamic-lighting .pet-zone,
.room.dynamic-lighting .household-room-companion{
  filter:brightness(var(--ambient-actor-brightness)) saturate(var(--ambient-saturation));
  transition:filter 4s ease;
}
.city-location-scene.dynamic-lighting .city-location-pet-zone,
.city-location-scene.dynamic-lighting .city-location-family-companion,
.city-location-scene.dynamic-lighting .location-npc{
  filter:brightness(var(--ambient-actor-brightness)) saturate(var(--ambient-saturation));
  transition:left .95s cubic-bezier(.22,.76,.22,1),top .95s cubic-bezier(.22,.76,.22,1),filter 4s ease;
}

/* Nella città il sole/luna percorre lentamente il cielo. */
.city-location-scene.dynamic-lighting:not(.ambient-indoor) .city-location-sun{
  right:auto!important;left:var(--ambient-sun-x)!important;top:var(--ambient-sun-y)!important;
  transition:left 55s linear,top 55s linear,filter 4s ease,background 4s ease,box-shadow 4s ease;
}
.city-location-scene.ambient-dawn .city-location-sun,
.city-location-scene.ambient-golden .city-location-sun,
.city-location-scene.ambient-dusk .city-location-sun{
  background:radial-gradient(circle at 35% 30%,#fff2c7,#f2b36f 65%,#cf7658)!important;
  box-shadow:0 0 0 14px rgba(244,174,100,.13),0 0 34px rgba(239,144,82,.18)!important;
}
.city-location-scene.ambient-night .city-location-sun,
.city-location-scene.ambient-predawn .city-location-sun{
  filter:brightness(.95) saturate(.7);
}

/* Finestra della cameretta: alba e tramonto entrano realmente nella stanza. */
.room.dynamic-lighting.ambient-dawn .room-window,
.room.dynamic-lighting.ambient-golden .room-window,
.room.dynamic-lighting.ambient-dusk .room-window{
  box-shadow:inset 0 0 18px rgba(255,192,126,.13),0 0 27px rgba(238,164,103,.08),0 10px 22px rgba(63,47,38,.10)!important;
}
.room.dynamic-lighting.ambient-dawn .sky-orb,
.room.dynamic-lighting.ambient-golden .sky-orb,
.room.dynamic-lighting.ambient-dusk .sky-orb{filter:sepia(.24) saturate(1.2)}
.room.dynamic-lighting.weather-cloudy .room-window,
.room.dynamic-lighting.weather-rain .room-window,
.room.dynamic-lighting.weather-storm .room-window,
.room.dynamic-lighting.weather-fog .room-window{filter:brightness(.91) saturate(.88)}

/* Le lampade della stanza diventano visibili già al crepuscolo o con cielo molto scuro. */
.room.dynamic-lighting.ambient-lamps-on .light-glow{z-index:11;opacity:1!important}
.room.dynamic-lighting.ambient-lamps-on .room-lamp:not(.is-off)::before,
.room.dynamic-lighting.ambient-lamps-on .room-floorlamp:not(.is-off)::before{
  box-shadow:0 0 18px 8px rgba(255,223,150,.46),0 0 42px 15px rgba(255,205,126,.15)!important;
}

/* Interni comunitari: illuminazione artificiale automatica quando fuori cala la luce. */
.city-location-scene.dynamic-lighting.ambient-indoor.ambient-artificial .shop-ceiling-light i,
.city-location-scene.dynamic-lighting.ambient-indoor.ambient-artificial .vet-ceiling-light i,
.city-location-scene.dynamic-lighting.ambient-indoor.ambient-artificial .care-ceiling-light{
  filter:brightness(1.08) saturate(1.03);
  box-shadow:0 8px 32px rgba(255,229,164,.42),0 0 24px rgba(255,236,195,.22)!important;
}
.city-location-scene.dynamic-lighting.place-vet.ambient-artificial .vet-ceiling-light i{box-shadow:0 8px 30px rgba(203,245,226,.33),0 0 20px rgba(218,255,240,.18)!important}

/* Piazza: i lampioni iniziano ad accendersi al crepuscolo, non a un'ora fissa. */
.city-location-scene.dynamic-lighting.place-square.ambient-artificial .square-lamp::before{
  box-shadow:inset 0 0 0 3px rgba(255,255,255,.24),0 0 35px 15px rgba(245,213,116,.27)!important;
}
.city-location-scene.dynamic-lighting.place-square.ambient-golden .square-lamp::before,
.city-location-scene.dynamic-lighting.place-square.ambient-dusk .square-lamp::before{
  box-shadow:inset 0 0 0 3px rgba(255,255,255,.18),0 0 25px 9px rgba(245,213,116,.16)!important;
}

/* Pioggia/temporale producono una giornata realmente più scura anche a mezzogiorno. */
.city-location-scene.dynamic-lighting.weather-storm .city-location-cloud{filter:brightness(.65);opacity:.68}
.city-location-scene.dynamic-lighting.weather-rain .city-location-cloud,
.city-location-scene.dynamic-lighting.weather-cloudy .city-location-cloud{filter:brightness(.82);opacity:.82}
.city-location-scene.dynamic-lighting.weather-fog .city-location-sky{filter:saturate(.72) contrast(.92)}

/* UI e controlli restano leggibili sopra la luce ambientale. */
.room.dynamic-lighting .partner-main-visit-bar,
.room.dynamic-lighting .arrange-toolbar,
.room.dynamic-lighting .room-away-indicator{z-index:24}
.city-location-scene.dynamic-lighting .city-location-label,
.city-location-scene.dynamic-lighting .city-location-weather-badge,
.city-location-scene.dynamic-lighting .location-pet-speech{z-index:22}

@media(prefers-reduced-motion:reduce){
  .real-lighting-layer,.real-lighting-layer>*,.city-location-scene.dynamic-lighting .city-location-sun,
  .room.dynamic-lighting .pet-zone,.room.dynamic-lighting .household-room-companion,
  .city-location-scene.dynamic-lighting .city-location-pet-zone,.city-location-scene.dynamic-lighting .location-npc{transition:none!important}
}


/* =========================================================
   TinyPal v9.00 — STANZA ESPANDIBILE
   Lo spazio rimane un'unica cameretta continua e scorrevole.
   ========================================================= */
.room-scroll-shell.room-expand-active{
  overflow-x:auto!important;
  overflow-y:hidden!important;
  scroll-snap-type:x proximity;
  overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
}
.room-scroll-shell.room-expand-active>.room{
  width:var(--room-expanded-width,860px)!important;
  min-width:var(--room-expanded-width,860px)!important;
  max-width:none!important;
  transition:width .72s cubic-bezier(.22,.76,.22,1),min-width .72s cubic-bezier(.22,.76,.22,1);
}
.room.room-expansion-1 .room-wall-texture::after,
.room.room-expansion-2 .room-wall-texture::after,
.room.room-expansion-3 .room-wall-texture::after,
.room.room-expansion-4 .room-wall-texture::after,
.room.room-expansion-5 .room-wall-texture::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(90deg,transparent 0 24.8%,rgba(84,61,41,.038) 24.95% 25.05%,transparent 25.2% 49.8%,rgba(84,61,41,.034) 49.95% 50.05%,transparent 50.2% 74.8%,rgba(84,61,41,.03) 74.95% 75.05%,transparent 75.2% 100%);
  opacity:.58;
}
.room-expansion-indicator{
  position:absolute;left:16px;top:14px;z-index:14;
  display:flex;align-items:center;gap:7px;
  min-height:31px;padding:6px 10px;border-radius:999px;
  background:rgba(255,255,255,.76);border:1px solid rgba(74,58,43,.09);
  backdrop-filter:blur(10px);box-shadow:0 7px 18px rgba(55,43,32,.08);
  color:#51473f;pointer-events:none;
}
.room-expansion-indicator.hidden{display:none!important}
.room-expansion-indicator span{font-size:calc(14px + var(--tp-text-extra,0px))}
.room-expansion-indicator strong{font-size:calc(10.5px + var(--tp-text-extra,0px));letter-spacing:.04em}
.room.night .room-expansion-indicator{background:rgba(34,39,52,.70);color:#f4efe8;border-color:rgba(255,255,255,.08)}
.room-scroll-shell.room-expand-active::after{
  content:"SCORRI LA STANZA  ↔";
  position:sticky;left:50%;bottom:9px;z-index:18;
  display:block;width:max-content;margin:-27px auto 8px;
  padding:5px 9px;border-radius:999px;
  background:rgba(45,40,36,.58);color:#fff;
  font-size:calc(9px + var(--tp-text-extra,0px));font-weight:900;letter-spacing:.12em;
  pointer-events:none;opacity:.62;backdrop-filter:blur(6px);
}
.room-scroll-shell.arranging.room-expand-active::after{content:"ARREDO PRO · TRASCINA PER SCORRERE  ↔";opacity:.82}

.room-expansion-sheet-grid{display:block!important}
.room-expansion-hero{
  padding:17px;border-radius:23px;margin-bottom:13px;
  background:linear-gradient(145deg,#f3eee6,#faf7f1);
  border:1px solid rgba(82,62,42,.08);
}
.room-expansion-hero-top{display:flex;align-items:center;gap:12px}
.room-expansion-hero-mark{
  width:54px;height:54px;border-radius:18px;display:grid;place-items:center;
  background:#fff;font-size:27px;box-shadow:0 8px 18px rgba(63,47,32,.08);flex:0 0 auto
}
.room-expansion-hero-copy{min-width:0;flex:1}
.room-expansion-hero-copy small{display:block;font-size:calc(9.5px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.12em;color:var(--muted)}
.room-expansion-hero-copy strong{display:block;margin-top:4px;font-size:calc(18px + var(--tp-text-extra,0px));letter-spacing:-.025em}
.room-expansion-hero-copy p{margin:4px 0 0;color:var(--muted);font-size:calc(11.5px + var(--tp-text-extra,0px));line-height:1.38;font-weight:650}
.room-expansion-size{
  flex:0 0 auto;padding:7px 9px;border-radius:12px;background:#fff;text-align:center;
  box-shadow:inset 0 0 0 1px rgba(70,55,42,.06)
}
.room-expansion-size strong{display:block;font-size:calc(14px + var(--tp-text-extra,0px))}.room-expansion-size small{display:block;margin-top:1px;font-size:calc(9px + var(--tp-text-extra,0px));color:var(--muted);font-weight:900}
.room-expansion-track{height:7px;margin-top:14px;border-radius:999px;background:rgba(67,54,43,.08);overflow:hidden}
.room-expansion-track i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#82977d,#c3a674);transition:width .4s ease}
.room-expansion-helper{margin:9px 1px 0;font-size:calc(10.5px + var(--tp-text-extra,0px));line-height:1.38;color:var(--muted);font-weight:650}
.room-expansion-list{display:grid;gap:9px}
.room-expansion-stage{
  width:100%;display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:10px;align-items:center;
  padding:12px;border:1px solid rgba(74,58,45,.08);border-radius:19px;background:#f8f5f0;color:inherit;text-align:left
}
.room-expansion-stage.current{background:#edf4eb;border-color:rgba(78,110,77,.16)}
.room-expansion-stage.completed{background:#f7f5f1;opacity:.76}
.room-expansion-stage.available{background:linear-gradient(145deg,#f8f0e3,#fffaf3);border-color:rgba(177,132,69,.18);box-shadow:0 8px 20px rgba(86,59,31,.06)}
.room-expansion-stage.locked{opacity:.58}
.room-expansion-stage-icon{width:46px;height:46px;border-radius:15px;background:#fff;display:grid;place-items:center;font-size:22px;box-shadow:0 5px 13px rgba(65,48,32,.07)}
.room-expansion-stage-copy{min-width:0}.room-expansion-stage-copy strong{display:block;font-size:calc(13px + var(--tp-text-extra,0px))}.room-expansion-stage-copy small{display:block;margin-top:3px;color:var(--muted);font-size:calc(10px + var(--tp-text-extra,0px));line-height:1.3;font-weight:650}
.room-expansion-stage-side{text-align:right}.room-expansion-stage-side b{display:block;font-size:calc(11.5px + var(--tp-text-extra,0px))}.room-expansion-stage-side em{display:block;margin-top:3px;font-style:normal;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));font-weight:850}
.room-expansion-stage.available .room-expansion-stage-side b{color:#8c682d}
.room-expansion-stage[data-buy-level]{cursor:pointer}
.room-expansion-footnote{margin-top:12px;padding:11px 12px;border-radius:16px;background:var(--surface-2);color:var(--muted);font-size:calc(10.5px + var(--tp-text-extra,0px));line-height:1.42;font-weight:650}

@media(max-width:560px){
  .room-expansion-indicator{left:10px;top:10px;padding:5px 8px}.room-expansion-indicator strong{font-size:calc(9.5px + var(--tp-text-extra,0px))}
  .room-expansion-hero{padding:14px}.room-expansion-hero-mark{width:46px;height:46px;border-radius:15px;font-size:23px}
  .room-expansion-hero-copy strong{font-size:calc(16px + var(--tp-text-extra,0px))}.room-expansion-size{padding:6px 8px}
  .room-expansion-stage{grid-template-columns:40px minmax(0,1fr) auto;padding:10px;gap:8px}.room-expansion-stage-icon{width:40px;height:40px;font-size:calc(19px + var(--tp-text-extra,0px))}
}


/* =========================================================
   TinyPal v9.01 — LUCE LAMPADE LOCALIZZATA
   Ogni lampada illumina realmente la zona sotto il proprio bulbo.
   ========================================================= */
.lamp-light-layer{
  position:absolute;inset:0;z-index:11;overflow:hidden;border-radius:inherit;
  pointer-events:none!important;opacity:var(--lamp-layer-visibility,1);
  transition:opacity 2.2s ease;
}
.lamp-light-field{
  position:absolute;left:0;top:0;width:0;height:0;pointer-events:none!important;
  --lamp-cone-h:130px;--lamp-cone-w:180px;--lamp-pool-w:220px;--lamp-pool-h:46px;--lamp-source-strength:1;
}
.lamp-light-field.hidden{display:none!important}
.lamp-light-field .lamp-light-halo,
.lamp-light-field .lamp-light-cone,
.lamp-light-field .lamp-light-floor{position:absolute;display:block;pointer-events:none!important}

/* Piccolo alone esattamente sul bulbo. */
.lamp-light-field .lamp-light-halo{
  left:0;top:0;width:74px;height:66px;transform:translate(-50%,-48%);border-radius:50%;
  background:radial-gradient(circle,rgba(255,246,205,calc(.60*var(--lamp-source-strength))) 0%,rgba(255,224,153,calc(.28*var(--lamp-source-strength))) 34%,rgba(255,211,125,0) 72%);
  filter:blur(2.2px);mix-blend-mode:screen;
}

/* Fascio: parte stretto dal paralume e si apre verso il pavimento. */
.lamp-light-field .lamp-light-cone{
  left:0;top:1px;width:var(--lamp-cone-w);height:var(--lamp-cone-h);
  clip-path:polygon(47% 0,53% 0,96% 100%,4% 100%);
  background:
    radial-gradient(ellipse at 50% 2%,rgba(255,245,202,calc(.26*var(--lamp-source-strength))) 0%,rgba(255,226,158,calc(.15*var(--lamp-source-strength))) 38%,rgba(255,211,126,calc(.06*var(--lamp-source-strength))) 68%,rgba(255,204,116,0) 100%);
  filter:blur(2.8px);mix-blend-mode:screen;transform:translateX(-50%);transform-origin:50% 0;
}

/* Pozza di luce sul pavimento, centrata dove arriva il fascio. */
.lamp-light-field .lamp-light-floor{
  left:0;top:calc(var(--lamp-cone-h) - 8px);
  width:var(--lamp-pool-w);height:var(--lamp-pool-h);border-radius:50%;
  background:radial-gradient(ellipse,rgba(255,229,165,calc(.24*var(--lamp-source-strength))) 0%,rgba(255,213,135,calc(.11*var(--lamp-source-strength))) 45%,rgba(255,206,125,0) 76%);
  filter:blur(4px);mix-blend-mode:screen;transform:translateX(-50%);
}

/* Le sorgenti fisiche corrispondono visivamente ai fasci. */
.room.dynamic-lighting .room-lamp:not(.is-off) .lamp-bulb,
.room.dynamic-lighting .room-floorlamp:not(.is-off) .floorlamp-bulb{
  box-shadow:0 0 10px 5px rgba(255,228,160,.46),inset 0 2px rgba(255,255,255,.66)!important;
  filter:brightness(1.08);
}
.room.dynamic-lighting .room-lamp.is-off .lamp-bulb,
.room.dynamic-lighting .room-floorlamp.is-off .floorlamp-bulb{box-shadow:none!important;filter:grayscale(.7) brightness(.72)}

/* Sopra i fasci resta solo la UI; animali e mobili ricevono invece la luce locale. */
.room .room-meta,.room .room-expansion-indicator,.room .arrange-badge,.room .arrange-toolbar{z-index:14}

@media(max-width:560px){
  .lamp-light-field .lamp-light-cone{filter:blur(2.2px)}
  .lamp-light-field .lamp-light-floor{filter:blur(3.2px)}
}
@media(prefers-reduced-motion:reduce){.lamp-light-layer{transition:none!important}}


/* =========================================================
   TinyPal v9.02 — Codice amico + Novità aggiornamento
   ========================================================= */
.social-add-code-hint{display:block;margin-top:9px;font-size:calc(13px + var(--tp-text-extra,0px));line-height:1.45;color:var(--muted,#7a746f);font-weight:650;transition:.2s ease}
.social-add-code-hint.valid{color:#377b59}.social-add-code-hint.invalid{color:#a86b43}
.whats-new-highlight{width:100%;display:flex;align-items:center;gap:14px;margin:14px 0 16px;padding:14px 16px;text-align:left;border:1px solid rgba(255,179,93,.34);background:linear-gradient(135deg,rgba(255,249,239,.98),rgba(255,238,220,.93));box-shadow:0 12px 30px rgba(93,62,34,.08);cursor:pointer;position:relative;overflow:hidden}
.whats-new-highlight::after{content:"";position:absolute;width:120px;height:120px;border-radius:50%;right:-52px;top:-64px;background:radial-gradient(circle,rgba(255,192,115,.24),transparent 70%);pointer-events:none}
.whats-new-highlight-icon{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;flex:none;font-size:23px;background:rgba(255,255,255,.86);box-shadow:0 7px 18px rgba(106,75,48,.09)}
.whats-new-highlight-copy{min-width:0;display:flex;flex-direction:column;gap:3px;flex:1}.whats-new-highlight-copy small{font-size:calc(11.5px + var(--tp-text-extra,0px));letter-spacing:.08em;font-style:normal;font-weight:850;color:#9a6a43}.whats-new-highlight-copy small b{font-size:calc(11.5px + var(--tp-text-extra,0px));margin-left:5px;color:#71482a}.whats-new-highlight-copy strong{font-size:calc(15px + var(--tp-text-extra,0px));color:#3f3128}.whats-new-highlight-copy em{font-size:calc(13px + var(--tp-text-extra,0px));line-height:1.38;color:#76675d;font-style:normal;font-weight:580}.whats-new-highlight-arrow{font-size:28px;color:#a97a54;flex:none}
.whats-new-sheet{max-height:min(88dvh,860px);overflow:auto}.whats-new-head p{max-width:620px}.whats-new-hero{margin:4px 16px 18px;padding:18px;border-radius:24px;background:linear-gradient(135deg,#fff7e9,#ffe7d0);display:flex;align-items:center;gap:15px;border:1px solid rgba(222,153,86,.22)}.whats-new-hero>span{font-size:34px;width:58px;height:58px;border-radius:19px;background:rgba(255,255,255,.8);display:grid;place-items:center;flex:none}.whats-new-hero div{display:flex;flex-direction:column;gap:4px}.whats-new-hero small,.whats-new-section-head span{font-size:calc(11.5px + var(--tp-text-extra,0px));letter-spacing:.09em;font-weight:850;color:#a06c42}.whats-new-hero strong{font-size:calc(17px + var(--tp-text-extra,0px));color:#433229}.whats-new-hero p{margin:0;font-size:calc(14px + var(--tp-text-extra,0px));color:#75665d;line-height:1.45}.whats-new-section{padding:0 16px 18px}.whats-new-section-head{display:flex;flex-direction:column;gap:2px;margin-bottom:10px}.whats-new-section-head strong{font-size:calc(16px + var(--tp-text-extra,0px))}.whats-new-list{display:grid;gap:10px}.whats-new-item{display:flex;gap:12px;padding:13px;border-radius:18px;background:rgba(255,255,255,.76);border:1px solid rgba(91,77,67,.08)}.whats-new-item>span{width:39px;height:39px;display:grid;place-items:center;border-radius:13px;background:#fff5ea;font-size:calc(20px + var(--tp-text-extra,0px));flex:none}.whats-new-item div{min-width:0}.whats-new-item strong{font-size:calc(14px + var(--tp-text-extra,0px))}.whats-new-item p,.whats-new-important-item p{font-size:calc(13px + var(--tp-text-extra,0px));color:#766b64;line-height:1.42;margin:3px 0 0}.whats-new-section.important{padding-top:2px}.whats-new-important{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.whats-new-important-item{min-width:0;padding:13px;border-radius:18px;background:linear-gradient(180deg,rgba(248,248,246,.94),rgba(243,241,238,.9));border:1px solid rgba(82,75,68,.07)}.whats-new-important-item>span{font-size:22px;display:block;margin-bottom:6px}.whats-new-important-item small{display:block;font-size:calc(10.5px + var(--tp-text-extra,0px));letter-spacing:.07em;font-weight:800;color:#9b8b7f}.whats-new-important-item strong{display:block;font-size:calc(14px + var(--tp-text-extra,0px));margin-top:2px}.whats-new-actions{position:sticky;bottom:0;padding:12px 16px max(16px,env(safe-area-inset-bottom));background:linear-gradient(180deg,rgba(250,248,245,0),rgba(250,248,245,.97) 24%);display:flex;gap:9px;justify-content:flex-end}.whats-new-actions button{min-height:44px;border-radius:14px;padding:0 15px}.whats-new-actions .primary{background:#4a3b31;color:#fff}
@media(max-width:680px){.whats-new-important{grid-template-columns:1fr}.whats-new-highlight{margin-inline:0}.whats-new-actions{display:grid;grid-template-columns:1fr 1fr}.whats-new-actions button{padding:0 8px;font-size:calc(13px + var(--tp-text-extra,0px))}}


/* TinyPal v9.03 — sincronizzazione multi-dispositivo */
.account-multidevice-card{margin-top:10px;padding:12px;border-radius:18px;background:linear-gradient(145deg,#f3f8f5,#edf5f7);border:1px solid rgba(75,103,89,.14);box-shadow:0 8px 22px rgba(55,76,64,.06)}
.account-multidevice-head{display:grid;grid-template-columns:34px 1fr auto;gap:9px;align-items:center}.account-multidevice-head>span{width:34px;height:34px;border-radius:12px;display:grid;place-items:center;background:#fff;font-size:calc(17px + var(--tp-text-extra,0px));box-shadow:0 5px 14px rgba(60,83,70,.09)}.account-multidevice-head strong{display:block;font-size:calc(11.5px + var(--tp-text-extra,0px))}.account-multidevice-head small{display:block;margin-top:2px;font-size:calc(9px + var(--tp-text-extra,0px));color:var(--muted);line-height:1.4}.account-multidevice-head>b{font-size:calc(8px + var(--tp-text-extra,0px));letter-spacing:.08em;padding:5px 7px;border-radius:999px;background:#dff3e7;color:#39634d}
.account-device-list{display:grid;gap:6px;margin-top:10px}.account-device-row{display:grid;grid-template-columns:30px 1fr 9px;gap:8px;align-items:center;padding:8px 9px;border-radius:13px;background:rgba(255,255,255,.72);border:1px solid rgba(70,95,82,.08)}.account-device-row>span{font-size:calc(15px + var(--tp-text-extra,0px));text-align:center}.account-device-row strong{display:block;font-size:calc(9.5px + var(--tp-text-extra,0px))}.account-device-row small{display:block;margin-top:2px;font-size:calc(8.5px + var(--tp-text-extra,0px));color:var(--muted)}.account-device-row>i{width:8px;height:8px;border-radius:50%;background:#c4ccc7;box-shadow:0 0 0 3px rgba(196,204,199,.18)}.account-device-row.online>i{background:#5cb67a;box-shadow:0 0 0 3px rgba(92,182,122,.16)}.account-device-row.current{border-color:rgba(71,125,96,.2);background:#fff}.account-device-empty{padding:10px;text-align:center;border-radius:12px;background:rgba(255,255,255,.55);font-size:calc(9px + var(--tp-text-extra,0px));color:var(--muted)}.account-multidevice-card>p{margin:8px 2px 0;font-size:calc(8.5px + var(--tp-text-extra,0px));line-height:1.5;color:var(--muted)}
@media(max-width:520px){.account-multidevice-card{padding:11px}.account-device-row{grid-template-columns:28px 1fr 8px}}


/* TinyPal v9.04 — codice amico universale cross-platform */
.social-code-platforms{display:block;margin-top:4px;font-weight:700;letter-spacing:.01em;opacity:.72}
#socialFriendCode{letter-spacing:.085em;font-variant-numeric:tabular-nums}
.social-add-code-hint.valid{color:var(--success,#2f7d5b)}
.social-add-code-hint.invalid{color:var(--danger,#a64e45)}


/* TinyPal v9.05 — fix finestre iPhone: Impostazioni + Famiglia */
/* Le emoji ZWJ di famiglia su iOS possono disegnare oltre il box visuale. */
.settings-row-icon{
  overflow:hidden;
  contain:paint;
  line-height:1;
  flex:none;
}
.settings-row-copy{
  position:relative;
  z-index:1;
  overflow:hidden;
}
.settings-row-copy strong,
.settings-row-copy small{
  max-width:100%;
  overflow-wrap:anywhere;
}

/* La riga di presenza/bisogni non deve comprimersi contro la scheda del pet. */
.household-slot-live{box-sizing:border-box;width:100%}
.household-slot-vitals{min-width:0}
.household-slot-vitals span{display:inline-flex;align-items:center;justify-content:center;min-width:0}

/* iPhone / telefoni larghi: prima versione scattava solo sotto 390px e sui
   modelli da ~414/428px i quattro valori finivano schiacciati. */
@media(max-width:520px){
  .household-sheet{width:min(100%,540px)!important}
  .household-slot-card{
    grid-template-columns:24px 68px minmax(0,1fr) auto;
    column-gap:8px;
  }
  .household-slot-avatar{width:68px;height:68px;border-radius:20px}
  .household-slot-live{
    grid-column:2 / -1;
    display:grid;
    grid-template-columns:1fr;
    gap:7px;
    align-items:stretch;
  }
  .household-slot-place{
    max-width:100%;
    width:max-content;
    min-width:0;
  }
  .household-slot-vitals{
    width:100%;
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:4px;
    justify-content:stretch;
  }
  .household-slot-vitals span{
    width:100%;
    min-height:27px;
    padding:4px 3px;
    border-radius:10px;
    background:#f7f5f1;
    font-size:calc(9px + var(--tp-text-extra,0px));
    line-height:1;
    text-align:center;
  }
  .settings-row{
    grid-template-columns:36px minmax(0,1fr) auto 11px;
    column-gap:9px;
  }
  .settings-row-icon{width:36px;height:36px;font-size:calc(18px + var(--tp-text-extra,0px))}
}
@media(max-width:390px){
  .household-slot-card{
    grid-template-columns:22px 62px minmax(0,1fr);
    padding-right:9px;
  }
  .household-slot-avatar{width:62px;height:62px}
  .household-slot-action{grid-column:3;justify-self:start;margin-top:3px}
  .household-slot-live{grid-column:2 / -1}
  .household-slot-vitals span{font-size:calc(9px + var(--tp-text-extra,0px));padding:4px 2px}
  .settings-row{grid-template-columns:34px minmax(0,1fr) 11px}
  .settings-row-badge{display:none}
}
@media(max-width:340px){
  .household-slot-vitals{grid-template-columns:repeat(2,minmax(0,1fr))}
}


/* =========================================================
   v9.07 — Casa reale dell'host nelle visite Amici Live
   ========================================================= */
.visit-house-banner{width:100%;margin:0 0 10px;padding:10px 12px;border:1px solid rgba(72,92,76,.10);border-radius:18px;background:linear-gradient(135deg,#edf4ec,#f7f2eb);display:grid;grid-template-columns:9px 40px minmax(0,1fr) auto;gap:9px;align-items:center;box-shadow:0 8px 22px rgba(60,72,61,.06)}
.visit-house-banner.hidden{display:none!important}.visit-house-live{width:8px;height:8px;border-radius:50%;background:#70a879;box-shadow:0 0 0 4px rgba(112,168,121,.12);animation:socialLivePulse 1.4s ease-in-out infinite}.visit-house-icon{width:40px;height:40px;border-radius:13px;background:rgba(255,255,255,.8);display:grid;place-items:center;font-size:calc(20px + var(--tp-text-extra,0px))}.visit-house-banner small{display:block;font-size:calc(8px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.10em;color:#708078}.visit-house-banner strong{display:block;margin-top:2px;font-size:calc(12px + var(--tp-text-extra,0px))}.visit-house-banner em{display:block;margin-top:2px;font-size:calc(9px + var(--tp-text-extra,0px));line-height:1.3;color:var(--muted);font-style:normal;font-weight:700}.visit-house-banner>b{padding:6px 8px;border-radius:999px;background:#dfeadf;color:#55705b;font-size:calc(8px + var(--tp-text-extra,0px));letter-spacing:.08em}.visit-house-banner.guest{background:linear-gradient(135deg,#eee9f5,#f8f3ed);border-color:rgba(105,85,126,.12)}.visit-house-banner.guest .visit-house-live{background:#9078a2;box-shadow:0 0 0 4px rgba(144,120,162,.12)}.visit-house-banner[data-state="slow"] .visit-house-live{background:#c39f5f}.visit-house-banner[data-state="error"] .visit-house-live,.visit-house-banner[data-state="stale"] .visit-house-live{background:#bd7f6e}
#room.visit-remote-house{outline:2px solid rgba(123,97,142,.10);outline-offset:-2px}#room.visit-remote-house .room-object,#room.visit-remote-house .species-essential-object{pointer-events:none!important}#room.visit-remote-house .arrange-badge,#room.visit-remote-house .arrange-toolbar{display:none!important}.visit-remote-house-shell{scroll-behavior:smooth}.partner-furniture-zone.host-view .partner-furniture-grid{opacity:.48}.partner-furniture-zone.host-view .partner-furniture-grid button{pointer-events:none}.partner-furniture-zone.host-view{background:linear-gradient(180deg,#eef3ed,#f7f5f1)}
@media(max-width:520px){.visit-house-banner{grid-template-columns:8px 34px minmax(0,1fr) auto;padding:9px;gap:7px}.visit-house-icon{width:34px;height:34px;font-size:calc(17px + var(--tp-text-extra,0px))}.visit-house-banner strong{font-size:calc(11.5px + var(--tp-text-extra,0px))}.visit-house-banner em{font-size:calc(8.4px + var(--tp-text-extra,0px))}.visit-house-banner>b{padding:5px 6px}}


/* v9.08 — Piazza Sociale · Fase 1 */
.city-road.road-social{stroke-width:14;stroke:#b7aa96;stroke-dasharray:3 4}
.city-place-social{border-color:rgba(94,88,145,.18);background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(244,241,255,.95))}
.city-place-social>span{filter:drop-shadow(0 3px 6px rgba(84,75,133,.12))}
.city-place-social .social-square-map-dot{position:absolute;right:8px;top:8px;width:7px;height:7px;border-radius:50%;background:#8a8891;box-shadow:0 0 0 3px rgba(138,136,145,.12)}
.city-place-social.live .social-square-map-dot{background:#56a66d;box-shadow:0 0 0 3px rgba(86,166,109,.14);animation:socialSquareLivePulse 1.8s ease-in-out infinite}
.city-place-social.live>small{color:#4d825b;font-weight:950}
@keyframes socialSquareLivePulse{0%,100%{scale:1;opacity:.85}50%{scale:1.3;opacity:1}}

.social-square-sheet{width:min(780px,calc(100vw - 18px));max-height:95dvh;overflow:auto;padding-bottom:calc(18px + var(--safe-bottom))}
.social-square-head{align-items:flex-start;position:sticky;top:-9px;z-index:12;background:linear-gradient(180deg,var(--surface) 82%,rgba(255,255,255,0));padding-top:9px;padding-bottom:8px}
.social-square-head p{margin-top:5px;color:var(--muted);font-size:calc(11.5px + var(--tp-text-extra,0px));line-height:1.35;font-weight:650;max-width:520px}
.social-square-livebar{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px 13px;border-radius:18px;background:#f3f1f5;border:1px solid rgba(84,78,107,.08)}
.social-square-livebar>.social-square-live-dot{width:9px;height:9px;border-radius:50%;background:#aaa6ad;box-shadow:0 0 0 4px rgba(120,116,126,.09)}
.social-square-livebar[data-state="live"]>.social-square-live-dot{background:#58a46d;box-shadow:0 0 0 4px rgba(88,164,109,.11);animation:socialSquareLivePulse 1.7s ease-in-out infinite}
.social-square-livebar[data-state="error"]>.social-square-live-dot{background:#c57968}
.social-square-livebar strong{display:block;font-size:calc(11.5px + var(--tp-text-extra,0px))}.social-square-livebar small{display:block;margin-top:2px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));font-weight:700}.social-square-livebar>b{font-size:calc(11.5px + var(--tp-text-extra,0px));padding:6px 8px;border-radius:999px;background:#fff;color:#645e6c}

.social-square-scene{position:relative;height:470px;margin-top:10px;overflow:hidden;border-radius:26px;border:1px solid rgba(68,83,64,.10);background:linear-gradient(180deg,#c9d9d0 0 27%,#e6d9c8 27% 100%);touch-action:none;user-select:none;-webkit-user-select:none;box-shadow:inset 0 -18px 40px rgba(94,73,55,.05)}
.social-square-sky{position:absolute;inset:0 0 60% 0;background:linear-gradient(#b9d6dc,#dfe6db);pointer-events:none}.social-square-sky>i{position:absolute;width:54px;height:22px;border-radius:50%;background:rgba(255,255,255,.58);left:13%;top:25%;box-shadow:30px 5px 0 rgba(255,255,255,.48)}.social-square-sky>b{position:absolute;width:38px;height:16px;border-radius:50%;background:rgba(255,255,255,.5);right:17%;top:18%;box-shadow:-21px 3px 0 rgba(255,255,255,.44)}
.social-square-buildings{position:absolute;left:0;right:0;top:17%;height:35%;display:flex;align-items:flex-end;justify-content:space-around;pointer-events:none}.social-square-buildings>i{display:block;width:21%;height:66%;border-radius:10px 10px 0 0;background:linear-gradient(90deg,#c8b7a5,#eadac5);border:1px solid rgba(84,65,50,.09);box-shadow:inset 0 -10px 0 rgba(104,79,57,.06)}.social-square-buildings>i:nth-child(2){height:86%;background:linear-gradient(90deg,#b9c2ad,#d9ddc7)}.social-square-buildings>i:nth-child(3){height:74%;background:linear-gradient(90deg,#d1b7b4,#ead0c9)}.social-square-buildings>i:nth-child(4){height:91%;background:linear-gradient(90deg,#b5b3c6,#d8d1dc)}
.social-square-paving{position:absolute;left:-8%;right:-8%;top:49%;bottom:-9%;background:repeating-linear-gradient(90deg,transparent 0 54px,rgba(119,95,74,.08) 55px 57px),repeating-linear-gradient(0deg,transparent 0 39px,rgba(119,95,74,.07) 40px 42px);transform:perspective(300px) rotateX(10deg);transform-origin:center top;pointer-events:none}
.social-square-fountain{position:absolute;left:50%;top:52%;width:118px;height:70px;translate:-50% -50%;border-radius:50%;background:#b9c8c6;border:5px solid #ece8de;box-shadow:0 10px 17px rgba(69,75,67,.14);pointer-events:none;z-index:2}.social-square-fountain>i{position:absolute;left:50%;top:43%;width:18px;height:38px;translate:-50% -50%;background:#d8d2c5;border-radius:8px}.social-square-fountain>b{position:absolute;left:50%;top:-18px;width:52px;height:29px;translate:-50% 0;border:3px solid rgba(202,227,231,.85);border-left-color:transparent;border-right-color:transparent;border-radius:50%}.social-square-fountain>em{position:absolute;inset:10px;border-radius:50%;background:rgba(137,190,201,.62);box-shadow:inset 0 0 0 2px rgba(255,255,255,.28)}
.social-square-tree{position:absolute;z-index:2;width:58px;height:76px;pointer-events:none}.social-square-tree:before{content:"";position:absolute;left:26px;bottom:0;width:8px;height:42px;background:#8a6b4e;border-radius:5px}.social-square-tree>i{position:absolute;left:3px;top:0;width:54px;height:54px;border-radius:48% 52% 45% 55%;background:#78976e;box-shadow:15px 10px 0 #88a879,-12px 12px 0 #6f8d67}.social-square-tree.tree-a{left:7%;top:40%}.social-square-tree.tree-b{right:8%;top:42%;scale:.9}
.social-square-bench{position:absolute;z-index:2;width:72px;height:14px;border-radius:5px;background:#9b7559;box-shadow:0 7px 0 -3px #725841;pointer-events:none}.social-square-bench:before,.social-square-bench:after{content:"";position:absolute;bottom:-14px;width:6px;height:17px;background:#725841}.social-square-bench:before{left:10px}.social-square-bench:after{right:10px}.social-square-bench.bench-a{left:16%;top:62%;rotate:-3deg}.social-square-bench.bench-b{right:14%;top:64%;rotate:3deg}
.social-square-players{position:absolute;inset:0;z-index:5;pointer-events:none}
.social-square-player{position:absolute;width:92px;height:118px;translate:-50% -88%;transition:left .32s linear,top .32s linear;pointer-events:auto;cursor:pointer;display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 7px 7px rgba(63,48,36,.15))}
.social-square-player.self{pointer-events:none}.social-square-player.walking{animation:socialSquareBob .34s ease-in-out infinite alternate}@keyframes socialSquareBob{from{translate:-50% -88%}to{translate:-50% -92%}}
.social-square-pet-body{position:absolute;inset:0;display:grid;place-items:center}.social-square-player .household-pet-preview{left:50%!important;top:55%!important;transform:translate(-50%,-50%) scale(.37)!important;filter:drop-shadow(0 6px 5px rgba(72,50,34,.12))!important}.social-square-player.self .household-pet-preview{filter:drop-shadow(0 0 6px rgba(95,132,93,.25)) drop-shadow(0 6px 5px rgba(72,50,34,.12))!important}
.social-square-player-label{position:absolute;left:50%;bottom:-4px;translate:-50% 0;min-width:78px;max-width:125px;padding:5px 7px;border-radius:10px;background:rgba(255,255,255,.91);box-shadow:0 5px 14px rgba(65,52,43,.10);text-align:center;white-space:nowrap}.social-square-player-label strong{display:block;overflow:hidden;text-overflow:ellipsis;font-size:calc(9.5px + var(--tp-text-extra,0px))}.social-square-player-label small{display:block;margin-top:1px;overflow:hidden;text-overflow:ellipsis;color:var(--muted);font-size:calc(8px + var(--tp-text-extra,0px));font-weight:700}.social-square-player.self .social-square-player-label{background:rgba(235,244,233,.94)}.social-square-player.self .social-square-player-label:after{content:"TU";position:absolute;right:-4px;top:-6px;padding:2px 4px;border-radius:999px;background:#668166;color:#fff;font-size:calc(7.5px + var(--tp-text-extra,0px));font-weight:950}
.social-square-empty{position:absolute;left:50%;top:67%;translate:-50% -50%;z-index:8;width:min(250px,72%);padding:13px;border-radius:18px;background:rgba(255,255,255,.9);text-align:center;box-shadow:0 10px 25px rgba(73,60,49,.10);pointer-events:none}.social-square-empty>span{font-size:25px}.social-square-empty strong{display:block;margin-top:4px;font-size:calc(11.5px + var(--tp-text-extra,0px))}.social-square-empty small{display:block;margin-top:3px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));line-height:1.35;font-weight:650}
.social-square-tap-hint{position:absolute;left:50%;bottom:10px;translate:-50% 0;z-index:9;padding:7px 10px;border-radius:999px;background:rgba(44,43,40,.72);color:#fff;font-size:calc(9px + var(--tp-text-extra,0px));font-weight:700;pointer-events:none;white-space:nowrap;transition:opacity .25s ease}.social-square-tap-hint.hidden{opacity:0}.social-square-tap-hint strong{font-weight:950}
.social-square-inspect{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:10px;align-items:center;margin-top:10px;padding:11px;border-radius:19px;background:#f7f4f1;border:1px solid rgba(83,70,59,.07)}.social-square-inspect-avatar{position:relative;width:52px;height:52px;border-radius:16px;background:#eee9e2;overflow:hidden}.social-square-inspect-avatar .household-pet-preview{left:50%!important;top:52%!important;transform:translate(-50%,-50%) scale(.29)!important}.social-square-inspect-copy{min-width:0}.social-square-inspect-copy>small{display:block;color:#847b85;font-size:calc(8px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.09em}.social-square-inspect-copy>strong{display:block;margin-top:3px;font-size:calc(13px + var(--tp-text-extra,0px))}.social-square-inspect-copy>span{display:block;margin-top:3px;color:var(--muted);font-size:calc(9.5px + var(--tp-text-extra,0px));font-weight:700}.social-square-inspect>button{border:0;border-radius:12px;padding:8px 9px;background:#fff;color:#635d58;font:inherit;font-size:calc(9px + var(--tp-text-extra,0px));font-weight:900}
.social-square-footer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;margin-top:10px;padding:11px 12px;border-radius:19px;background:#f4f6f3}.social-square-footer>div{display:grid;grid-template-columns:28px minmax(0,1fr);gap:8px;align-items:center}.social-square-footer>div>span{font-size:22px}.social-square-footer p{margin:0}.social-square-footer strong{display:block;font-size:calc(10.5px + var(--tp-text-extra,0px))}.social-square-footer small{display:block;margin-top:2px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));line-height:1.3;font-weight:650}.social-square-footer>.primary-btn{min-height:40px;padding:9px 12px;font-size:calc(9.5px + var(--tp-text-extra,0px))}
body.social-square-active #room .pet-zone{visibility:hidden!important;pointer-events:none!important}

@media(max-width:620px){.social-square-sheet{width:100%;max-height:96dvh}.social-square-scene{height:450px;border-radius:22px}.social-square-player{width:82px;height:108px}.social-square-player .household-pet-preview{transform:translate(-50%,-50%) scale(.33)!important}.social-square-footer{grid-template-columns:1fr}.social-square-footer>.primary-btn{width:100%}}
@media(max-width:390px){.social-square-scene{height:420px}.social-square-head p{font-size:calc(9.5px + var(--tp-text-extra,0px))}.social-square-player{width:74px;height:100px}.social-square-player .household-pet-preview{transform:translate(-50%,-50%) scale(.30)!important}.social-square-player-label{min-width:68px;max-width:105px}.social-square-fountain{width:98px;height:61px}.social-square-inspect{grid-template-columns:46px minmax(0,1fr)}.social-square-inspect-avatar{width:46px;height:46px}.social-square-inspect>button{grid-column:1/-1;width:100%}}
.city-place-social.current::after{display:none}


/* TinyPal v9.09 — Piazza Sociale Fase 2 */
.social-square-player.known .social-square-player-label{box-shadow:0 5px 14px rgba(65,52,43,.10),0 0 0 2px rgba(113,143,107,.16)}
.social-square-known-badge{position:absolute;right:-1px;top:5px;z-index:5;padding:3px 5px;border-radius:999px;background:rgba(235,244,232,.96);color:#58705a;font-size:calc(7.5px + var(--tp-text-extra,0px));font-weight:950;box-shadow:0 3px 9px rgba(70,84,64,.12);pointer-events:none}
.social-square-action-bubble{position:absolute;left:50%;top:-2px;z-index:8;translate:-50% -100%;min-width:32px;height:32px;padding:0 7px;border-radius:16px;background:#fff;display:grid;place-items:center;font-size:calc(18px + var(--tp-text-extra,0px));box-shadow:0 7px 18px rgba(61,48,39,.16);animation:socialSquareActionPop .34s ease-out;pointer-events:none}
@keyframes socialSquareActionPop{0%{scale:.45;opacity:0;translate:-50% -65%}70%{scale:1.12}100%{scale:1;opacity:1;translate:-50% -100%}}
.social-square-player.action-to-me:after{content:"";position:absolute;inset:15px 9px 5px;border-radius:50%;border:2px solid rgba(239,182,92,.52);animation:socialSquareTargetPulse 1s ease-out infinite;pointer-events:none}
@keyframes socialSquareTargetPulse{0%{scale:.75;opacity:.8}100%{scale:1.25;opacity:0}}
.social-square-inspect{display:block;padding:12px}
.social-square-inspect-top{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:10px;align-items:center}
.social-square-inspect-status{margin-top:9px;padding:7px 9px;border-radius:12px;background:#fff;color:#6c665f;font-size:calc(9px + var(--tp-text-extra,0px));font-weight:850}.social-square-inspect-status[data-state="friends"]{background:#f3ebf0;color:#7b596b}.social-square-inspect-status[data-state="incoming"]{background:#eef3e9;color:#58705b}.social-square-inspect-status[data-state="outgoing"]{background:#f4f1e8;color:#766c54}
.social-square-inspect-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-top:9px}.social-square-inspect-actions button{min-width:0;min-height:70px;border:1px solid rgba(81,70,61,.07);border-radius:15px;background:#fff;color:inherit;padding:8px 6px;text-align:center}.social-square-inspect-actions button>span{display:block;font-size:calc(18px + var(--tp-text-extra,0px))}.social-square-inspect-actions button strong{display:block;margin-top:5px;font-size:calc(9px + var(--tp-text-extra,0px))}.social-square-inspect-actions button small{display:block;margin-top:2px;color:var(--muted);font-size:calc(7.8px + var(--tp-text-extra,0px));line-height:1.2;font-weight:700}.social-square-inspect-actions button:disabled{opacity:.48}.social-square-inspect-actions #socialSquareAddFriend[data-friend-state="incoming"]{background:#eef5ec}.social-square-inspect-actions #socialSquareAddFriend[data-friend-state="friends"]{background:#f5eef2}
.social-square-reaction-tray{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:7px;padding:7px;border-radius:15px;background:#ece9e5}.social-square-reaction-tray button{border:0;border-radius:12px;background:#fff;padding:7px 4px;color:inherit}.social-square-reaction-tray span{display:block;font-size:calc(20px + var(--tp-text-extra,0px))}.social-square-reaction-tray small{display:block;margin-top:2px;font-size:calc(7.5px + var(--tp-text-extra,0px));font-weight:800;color:var(--muted)}
.social-square-encounters{margin-top:10px;padding:12px;border-radius:20px;background:#f6f5f1;border:1px solid rgba(76,69,61,.07)}.social-square-encounters-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start}.social-square-encounters-head strong{display:block;margin-top:3px;font-size:calc(12px + var(--tp-text-extra,0px))}.social-square-encounters-head small{display:block;margin-top:3px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));line-height:1.3;font-weight:650}.social-square-encounters-head>b{min-width:30px;height:30px;border-radius:12px;background:#fff;display:grid;place-items:center;font-size:calc(10.5px + var(--tp-text-extra,0px));color:#657063}
.social-square-encounters-list{display:grid;gap:6px;margin-top:9px;max-height:250px;overflow:auto}.social-square-encounter-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px;border-radius:15px;background:#fff}.social-square-encounter-avatar{position:relative;width:42px;height:42px;border-radius:12px;overflow:hidden;background:#eeeae4}.social-square-encounter-avatar .household-pet-preview{left:50%!important;top:52%!important;transform:translate(-50%,-50%) scale(.25)!important}.social-square-encounter-row>div:nth-child(2){min-width:0}.social-square-encounter-row strong{display:block;font-size:calc(9.5px + var(--tp-text-extra,0px))}.social-square-encounter-row small{display:block;margin-top:2px;color:var(--muted);font-size:calc(8px + var(--tp-text-extra,0px));white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:700}.social-square-encounter-row em{display:block;margin-top:2px;color:#9a9288;font-size:calc(7.5px + var(--tp-text-extra,0px));font-style:normal;font-weight:750}.social-square-encounter-row>b{padding:5px 6px;border-radius:999px;background:#f0f1ed;color:#6d756a;font-size:calc(7.7px + var(--tp-text-extra,0px));white-space:nowrap}.social-square-encounter-row>b[data-state="friends"]{background:#f2e8ef;color:#7b596b}.social-square-encounter-row>b[data-state="incoming"]{background:#e9f1e5;color:#58705b}
.social-square-encounters-empty{text-align:center;padding:13px 8px}.social-square-encounters-empty>span{font-size:22px}.social-square-encounters-empty strong{display:block;margin-top:3px;font-size:calc(9.5px + var(--tp-text-extra,0px))}.social-square-encounters-empty small{display:block;margin-top:2px;color:var(--muted);font-size:calc(8px + var(--tp-text-extra,0px))}
@media(max-width:620px){.social-square-inspect-actions{grid-template-columns:repeat(2,1fr)}.social-square-inspect-actions button{min-height:62px}.social-square-encounters-list{max-height:220px}}
@media(max-width:390px){.social-square-inspect-top{grid-template-columns:46px minmax(0,1fr)}.social-square-inspect-top>#socialSquareInspectClose{grid-column:1/-1;width:100%}.social-square-inspect-actions{gap:6px}.social-square-encounter-row{grid-template-columns:38px minmax(0,1fr)}.social-square-encounter-avatar{width:38px;height:38px}.social-square-encounter-row>b{grid-column:2;justify-self:start}}


/* v9.09 · Piazza Sociale Fase 2 — interazioni, ambiente e schede */
.social-square-fountain>em{overflow:hidden;animation:socialSquareWater 2.4s ease-in-out infinite}
.social-square-fountain>em:after{content:"";position:absolute;left:-30%;right:-30%;top:38%;height:12px;border-radius:50%;border-top:2px solid rgba(255,255,255,.48);animation:socialSquareRipple 2.2s linear infinite}
@keyframes socialSquareWater{0%,100%{opacity:.78}50%{opacity:1}}
@keyframes socialSquareRipple{from{translate:-12% 0;opacity:.25}50%{opacity:.7}to{translate:12% 0;opacity:.25}}
.social-square-tree>i{transform-origin:50% 85%;animation:socialSquareLeaves 4.8s ease-in-out infinite alternate}.social-square-tree.tree-b>i{animation-delay:-2.1s}
@keyframes socialSquareLeaves{from{rotate:-1.3deg;translate:0 0}to{rotate:1.7deg;translate:1px -1px}}
.social-square-lamp{position:absolute;z-index:3;width:14px;height:76px;pointer-events:none}.social-square-lamp:before{content:"";position:absolute;left:5px;bottom:0;width:4px;height:58px;border-radius:4px;background:#5e625d}.social-square-lamp>i{position:absolute;left:0;top:4px;width:14px;height:15px;border-radius:5px;background:#eee6c8;border:2px solid #65645d;box-sizing:border-box}.social-square-lamp>i:after{content:"";position:absolute;left:50%;top:7px;width:64px;height:64px;translate:-50% 0;border-radius:50%;background:radial-gradient(circle,rgba(255,226,154,.34),rgba(255,226,154,0) 68%);opacity:0;transition:opacity .35s ease}.social-square-lamp.lamp-a{left:28%;top:38%}.social-square-lamp.lamp-b{right:26%;top:39%}
.social-square-scene.ambient-night .social-square-lamp>i,.social-square-scene.ambient-predawn .social-square-lamp>i,.social-square-scene.ambient-dusk .social-square-lamp>i{background:#ffe8a5;box-shadow:0 0 11px rgba(255,221,137,.55)}.social-square-scene.ambient-night .social-square-lamp>i:after,.social-square-scene.ambient-predawn .social-square-lamp>i:after,.social-square-scene.ambient-dusk .social-square-lamp>i:after{opacity:1}
.social-square-butterfly{position:absolute;z-index:4;font-size:calc(10.5px + var(--tp-text-extra,0px));color:#fff8cf;text-shadow:0 1px 4px rgba(89,72,46,.28);pointer-events:none;animation:socialSquareButterfly 7s ease-in-out infinite}.social-square-butterfly.butterfly-a{left:20%;top:47%}.social-square-butterfly.butterfly-b{right:19%;top:54%;animation-delay:-3.2s}
@keyframes socialSquareButterfly{0%,100%{translate:0 0;rotate:-12deg}25%{translate:8px -7px;rotate:10deg}55%{translate:15px 2px;rotate:-5deg}80%{translate:5px 7px;rotate:8deg}}
.social-square-birds{position:absolute;z-index:3;left:66%;top:18%;width:34px;height:14px;pointer-events:none;opacity:.62;animation:socialSquareBirds 13s linear infinite}.social-square-birds i,.social-square-birds b{position:absolute;width:9px;height:5px;border-top:2px solid rgba(68,75,72,.65);border-radius:50%;rotate:13deg}.social-square-birds b{left:16px;top:5px;rotate:-9deg}@keyframes socialSquareBirds{0%{translate:-45px 0;opacity:0}12%{opacity:.62}88%{opacity:.62}100%{translate:90px -10px;opacity:0}}
.social-square-player .social-square-pet-body{transition:transform .2s ease;transform-origin:center bottom}.social-square-player.facing-left .social-square-pet-body{transform:rotateY(180deg)}.social-square-player.facing-right .social-square-pet-body{transform:rotateY(0deg)}
.social-square-player.gesture-greet .social-square-pet-body{animation:socialSquareGreet .55s ease-in-out 2}@keyframes socialSquareGreet{0%,100%{rotate:0deg}35%{rotate:-4deg}70%{rotate:3deg}}
.social-square-action-bubble.seen{animation:none}.social-square-inspect-status[data-state="offline"]{background:#eee;color:#777}.social-square-inspect-details{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:9px}.social-square-inspect-details span{min-width:0;padding:7px 8px;border-radius:12px;background:#fff;color:#6b655f;font-size:calc(8.7px + var(--tp-text-extra,0px));font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.social-square-inspect-details b{display:block;margin-bottom:2px;color:#9a9188;font-size:calc(7.3px + var(--tp-text-extra,0px));letter-spacing:.04em;text-transform:uppercase}.social-square-inspect-actions button.hidden{display:none!important}.social-square-inspect-actions{grid-template-columns:repeat(5,minmax(0,1fr))}.social-square-reaction-tray{grid-template-columns:repeat(6,1fr)}
.social-hub-encounters{margin-top:12px;padding:12px;border-radius:20px;background:#f6f5f1;border:1px solid rgba(76,69,61,.07)}.social-hub-encounters .social-section-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start}.social-hub-encounters .social-section-head small{display:block;margin-top:3px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));font-weight:650}.social-hub-encounters .social-section-head>b{min-width:30px;height:30px;border-radius:12px;background:#fff;display:grid;place-items:center;font-size:calc(10.5px + var(--tp-text-extra,0px))}.social-hub-encounters .social-square-encounters-list{max-height:230px}
@media(max-width:620px){.social-square-inspect-actions{grid-template-columns:repeat(2,1fr)}.social-square-reaction-tray{grid-template-columns:repeat(3,1fr)}.social-square-inspect-details{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.social-square-fountain>em,.social-square-fountain>em:after,.social-square-tree>i,.social-square-butterfly,.social-square-birds,.social-square-player.gesture-greet .social-square-pet-body{animation:none!important}}

/* =========================================================
   TinyPal v9.10 — PIAZZA SOCIALE · FASE 3
   Attività condivise, hotspot, eventi e Passa la palla.
   ========================================================= */
.social-square-event{margin:10px 0 9px;display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 11px;border-radius:18px;background:linear-gradient(145deg,#f7f4ec,#ece8df);border:1px solid rgba(85,73,60,.08);box-shadow:0 8px 22px rgba(67,52,41,.06)}
.social-square-event>span{width:42px;height:42px;border-radius:14px;background:#fff;display:grid;place-items:center;font-size:21px;box-shadow:0 6px 15px rgba(66,52,42,.08)}
.social-square-event>div{min-width:0}.social-square-event small{display:block;color:#9b8d7d;font-size:calc(7.5px + var(--tp-text-extra,0px));font-weight:900;letter-spacing:.08em}.social-square-event strong{display:block;margin-top:2px;font-size:calc(10.5px + var(--tp-text-extra,0px))}.social-square-event p{margin:2px 0 0;color:var(--muted);font-size:calc(8.4px + var(--tp-text-extra,0px));line-height:1.3;font-weight:650}.social-square-event>b{min-width:44px;padding:7px 8px;border-radius:12px;background:#fff;text-align:center;font-size:calc(9.5px + var(--tp-text-extra,0px));font-variant-numeric:tabular-nums}
.social-square-event[data-event="fountain"]>span{background:#edf5f6}.social-square-event[data-event="bench"]>span{background:#f4efe8}.social-square-event[data-event="ball"]>span{background:#eef3e8}.social-square-event[data-event="social"]>span{background:#f4edf3}
.social-square-hotspot{position:absolute;z-index:4;border:0;border-radius:999px;padding:5px 7px;background:rgba(255,255,255,.88);box-shadow:0 5px 14px rgba(67,54,43,.12);display:flex;align-items:center;gap:4px;color:#655d55;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);transition:transform .18s ease,box-shadow .18s ease,background .18s ease}
.social-square-hotspot span{font-size:calc(11.5px + var(--tp-text-extra,0px))}.social-square-hotspot strong{font-size:calc(7.6px + var(--tp-text-extra,0px));letter-spacing:.01em}.social-square-hotspot:active{transform:translateY(1px)}.social-square-hotspot.event-hot{background:#fff8db;box-shadow:0 0 0 2px rgba(238,191,79,.34),0 7px 18px rgba(96,70,30,.15);animation:socialSquareHotspotEvent 1.8s ease-in-out infinite}
.social-square-hotspot.hotspot-bench{left:22%;top:56%}.social-square-hotspot.hotspot-fountain{left:50%;top:52%;translate:-50% 0}.social-square-hotspot.hotspot-ball{right:13%;top:68%}
@keyframes socialSquareHotspotEvent{0%,100%{box-shadow:0 0 0 2px rgba(238,191,79,.24),0 7px 18px rgba(96,70,30,.12)}50%{box-shadow:0 0 0 5px rgba(238,191,79,.12),0 9px 22px rgba(96,70,30,.18)}}
.social-square-player.activity-pick{filter:drop-shadow(0 7px 7px rgba(63,48,36,.15)) drop-shadow(0 0 8px rgba(225,176,74,.65))}.social-square-player.activity-pick:after{content:"SCEGLI";position:absolute;top:4px;left:50%;translate:-50% 0;padding:3px 6px;border-radius:999px;background:#fff4c8;color:#765f28;font-size:calc(7.3px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.08em}
.social-square-player.activity-bench .social-square-pet-body{animation:socialSquareSitMoment 1.8s ease-in-out infinite}.social-square-player.activity-fountain .social-square-pet-body{animation:socialSquareFountainMoment 1.4s ease-in-out infinite}.social-square-player.activity-ball .social-square-pet-body{animation:socialSquareBallMoment .9s ease-in-out infinite}
@keyframes socialSquareSitMoment{0%,100%{translate:0 3px;rotate:0deg}50%{translate:0 4px;rotate:1deg}}
@keyframes socialSquareFountainMoment{0%,100%{translate:0 0;rotate:-1deg}50%{translate:0 -2px;rotate:1deg}}
@keyframes socialSquareBallMoment{0%,100%{translate:0 0;rotate:-2deg}50%{translate:0 -4px;rotate:2deg}}
.social-square-shared-ball{position:absolute;z-index:80;translate:-50% -50%;font-size:calc(17px + var(--tp-text-extra,0px));pointer-events:none;filter:drop-shadow(0 5px 4px rgba(73,56,35,.22));animation:socialSquareSharedBall .52s ease-in-out infinite alternate}.social-square-shared-ball.score-odd{animation-direction:alternate-reverse}
@keyframes socialSquareSharedBall{from{transform:translateX(-24px) translateY(0) rotate(-18deg)}to{transform:translateX(24px) translateY(-7px) rotate(18deg)}}
.social-square-activity-tray{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:7px;padding:7px;border-radius:16px;background:#ece9e5}.social-square-activity-tray button{min-width:0;border:0;border-radius:13px;background:#fff;padding:8px 5px;color:inherit;text-align:center}.social-square-activity-tray span{display:block;font-size:calc(19px + var(--tp-text-extra,0px))}.social-square-activity-tray strong{display:block;margin-top:4px;font-size:calc(8.7px + var(--tp-text-extra,0px))}.social-square-activity-tray small{display:block;margin-top:2px;color:var(--muted);font-size:calc(7.4px + var(--tp-text-extra,0px));font-weight:750;line-height:1.2}.social-square-activity-tray button:disabled{opacity:.45}
.social-square-activity-invite{margin-top:9px;display:grid;grid-template-columns:42px minmax(0,1fr);gap:10px;align-items:center;padding:10px;border-radius:18px;background:#f6f1e8;border:1px solid rgba(105,82,53,.09)}.social-square-activity-invite>span{width:42px;height:42px;border-radius:14px;background:#fff;display:grid;place-items:center;font-size:21px}.social-square-activity-invite>div:nth-child(2){min-width:0}.social-square-activity-invite small{display:block;color:#9a8978;font-size:calc(7.5px + var(--tp-text-extra,0px));font-weight:900;letter-spacing:.07em}.social-square-activity-invite strong{display:block;margin-top:2px;font-size:calc(10.2px + var(--tp-text-extra,0px))}.social-square-activity-invite p{margin:2px 0 0;color:var(--muted);font-size:calc(8.2px + var(--tp-text-extra,0px));line-height:1.3;font-weight:650}.social-square-activity-invite-actions{grid-column:1/-1;display:flex;gap:7px}.social-square-activity-invite-actions button{flex:1;min-height:34px;font-size:calc(8.7px + var(--tp-text-extra,0px))}
.social-square-activity-hud{margin-top:9px;padding:10px;border-radius:19px;background:linear-gradient(145deg,#eef1e9,#f7f4ef);border:1px solid rgba(73,84,65,.08)}.social-square-activity-hud-head{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:9px;align-items:center}.social-square-activity-hud-head>span{width:42px;height:42px;border-radius:14px;background:#fff;display:grid;place-items:center;font-size:21px}.social-square-activity-hud-head>div{min-width:0}.social-square-activity-hud-head small{display:block;color:#8a9485;font-size:calc(7.4px + var(--tp-text-extra,0px));font-weight:900;letter-spacing:.06em}.social-square-activity-hud-head strong{display:block;margin-top:2px;font-size:calc(10.3px + var(--tp-text-extra,0px))}.social-square-activity-hud-head p{margin:2px 0 0;color:var(--muted);font-size:calc(8.2px + var(--tp-text-extra,0px))}.social-square-activity-hud-head>b{padding:7px;border-radius:11px;background:#fff;font-size:calc(9.5px + var(--tp-text-extra,0px));font-variant-numeric:tabular-nums}.social-square-activity-end{width:100%;margin-top:7px;min-height:34px;font-size:calc(8.4px + var(--tp-text-extra,0px))}
.social-square-ball-score{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:8px;align-items:center;margin-top:8px;padding:8px;border-radius:14px;background:#fff}.social-square-ball-score>span{font-size:calc(20px + var(--tp-text-extra,0px))}.social-square-ball-score small{display:block;color:#9c948a;font-size:calc(7.2px + var(--tp-text-extra,0px));font-weight:900}.social-square-ball-score strong{display:block;margin-top:1px;font-size:calc(14px + var(--tp-text-extra,0px))}.social-square-ball-score button{min-height:34px;padding-inline:10px;font-size:calc(8.5px + var(--tp-text-extra,0px))}
.social-square-inspect-actions{grid-template-columns:repeat(3,minmax(0,1fr))}
.social-square-inspect-actions #socialSquareActivities{background:#f7f2e7}
.social-square-scene.activity-lock .social-square-tap-hint{opacity:.5}.social-square-scene.activity-lock .social-square-hotspot{pointer-events:none;opacity:.55}
@media(max-width:620px){.social-square-event{grid-template-columns:38px minmax(0,1fr) auto;padding:9px}.social-square-event>span{width:38px;height:38px}.social-square-hotspot{padding:5px 6px}.social-square-hotspot strong{font-size:calc(7.5px + var(--tp-text-extra,0px))}.social-square-activity-tray{grid-template-columns:1fr}.social-square-activity-tray button{display:grid;grid-template-columns:34px minmax(0,1fr);grid-template-rows:auto auto;text-align:left;align-items:center;padding:7px 9px}.social-square-activity-tray button span{grid-row:1/3;font-size:calc(18px + var(--tp-text-extra,0px))}.social-square-activity-tray button strong{margin:0;font-size:calc(9px + var(--tp-text-extra,0px))}.social-square-activity-tray button small{margin:1px 0 0}.social-square-inspect-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.social-square-ball-score{grid-template-columns:30px minmax(0,1fr)}.social-square-ball-score button{grid-column:1/-1;width:100%}}
@media(max-width:390px){.social-square-event{grid-template-columns:34px minmax(0,1fr)}.social-square-event>span{width:34px;height:34px}.social-square-event>b{grid-column:2;justify-self:start;padding:4px 7px}.social-square-hotspot.hotspot-bench{left:15%;top:57%}.social-square-hotspot.hotspot-ball{right:7%;top:69%}.social-square-activity-hud-head{grid-template-columns:36px minmax(0,1fr)}.social-square-activity-hud-head>span{width:36px;height:36px}.social-square-activity-hud-head>b{grid-column:2;justify-self:start;padding:4px 7px}}
@media(prefers-reduced-motion:reduce){.social-square-hotspot.event-hot,.social-square-player.activity-bench .social-square-pet-body,.social-square-player.activity-fountain .social-square-pet-body,.social-square-player.activity-ball .social-square-pet-body,.social-square-shared-ball{animation:none!important}}


/* =========================================================
   TinyPal v9.11 — PIAZZA SOCIALE · FASE 4
   Passaporto Sociale, missioni, badge e titoli.
   ========================================================= */
.social-square-passport-card,.social-hub-passport{border:1px solid rgba(82,89,126,.16);background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(246,246,255,.95));border-radius:24px;box-shadow:0 14px 34px rgba(52,54,88,.10);overflow:hidden}
.social-square-passport-card{margin:10px 0 12px}.social-square-passport-toggle{width:100%;border:0;background:transparent;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:14px;text-align:left;color:inherit}.social-square-passport-mark{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;font-size:25px;background:linear-gradient(145deg,#fff2bd,#f1e6ff);box-shadow:inset 0 0 0 1px rgba(97,79,127,.08)}
.social-square-passport-toggle>div{min-width:0}.social-square-passport-toggle small,.social-hub-passport-head small{display:block;font-size:calc(11.5px + var(--tp-text-extra,0px));font-weight:900;letter-spacing:.08em;opacity:.58}.social-square-passport-toggle strong,.social-hub-passport-head strong{display:block;font-size:calc(15px + var(--tp-text-extra,0px));margin-top:2px}.social-square-passport-toggle p,.social-hub-passport-head p{display:flex;gap:8px;margin:3px 0 7px;font-size:calc(12px + var(--tp-text-extra,0px))}.social-square-passport-toggle p b,.social-hub-passport-head p b{color:#69549b}.social-square-passport-toggle p span,.social-hub-passport-head p em{font-style:normal;opacity:.65}.social-square-passport-toggle i,.social-hub-passport-head i{height:6px;border-radius:999px;background:rgba(66,67,96,.09);display:block;overflow:hidden}.social-square-passport-toggle i b,.social-hub-passport-head i b{height:100%;display:block;border-radius:inherit;background:linear-gradient(90deg,#f4c956,#9b7ce0);transition:width .35s ease}.social-square-passport-toggle>em{font-style:normal;font-weight:900;font-size:calc(13px + var(--tp-text-extra,0px));background:#f1ecff;padding:6px 8px;border-radius:999px;color:#67518f}
.social-square-passport-body,.social-hub-passport-body{padding:0 14px 14px}.social-hub-passport{margin:12px 0}.social-hub-passport-head{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;padding:14px}.social-hub-passport-head>span{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;font-size:24px;background:linear-gradient(145deg,#fff1bc,#eee7ff)}
.social-passport-loading{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;align-items:center;padding:12px;border-radius:18px;background:rgba(255,255,255,.75)}.social-passport-loading>span{grid-row:1/3;font-size:24px}.social-passport-loading strong{font-size:calc(14px + var(--tp-text-extra,0px))}.social-passport-loading small{font-size:calc(12px + var(--tp-text-extra,0px));opacity:.62}
.social-passport-section{padding-top:13px;border-top:1px solid rgba(68,68,92,.08);margin-top:12px}.social-passport-section:first-child{margin-top:0}.social-passport-section-head{display:flex;justify-content:space-between;align-items:end;gap:10px;margin-bottom:9px}.social-passport-section-head small{display:block;font-size:calc(10.5px + var(--tp-text-extra,0px));font-weight:900;letter-spacing:.08em;opacity:.55}.social-passport-section-head strong{font-size:calc(14px + var(--tp-text-extra,0px))}.social-passport-section-head>b{font-size:calc(11.5px + var(--tp-text-extra,0px));padding:5px 8px;border-radius:999px;background:rgba(116,91,171,.09);color:#69539b}
.social-passport-missions{display:grid;gap:8px}.social-passport-mission{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:10px;border:1px solid rgba(76,76,103,.09);border-radius:17px;background:rgba(255,255,255,.74)}.social-passport-mission>span{font-size:22px}.social-passport-mission>div{min-width:0}.social-passport-mission strong{font-size:calc(13px + var(--tp-text-extra,0px));display:block}.social-passport-mission small{display:block;font-size:calc(11.5px + var(--tp-text-extra,0px));opacity:.62;margin:2px 0 6px}.social-passport-mission i,.social-passport-badge i{display:block;height:5px;border-radius:999px;overflow:hidden;background:rgba(60,60,80,.08)}.social-passport-mission i b,.social-passport-badge i b{height:100%;display:block;background:linear-gradient(90deg,#f2c955,#8c76d7);border-radius:inherit}.social-passport-mission em{display:block;font-style:normal;font-size:calc(10.5px + var(--tp-text-extra,0px));margin-top:4px;opacity:.58}.social-passport-mission>button{border:0;border-radius:12px;padding:8px 9px;font-size:calc(11.5px + var(--tp-text-extra,0px));font-weight:900;background:#6e56a0;color:white}.social-passport-mission>button:disabled{background:rgba(73,73,90,.08);color:rgba(45,45,60,.44)}.social-passport-mission.complete{border-color:rgba(226,178,52,.30);box-shadow:0 0 0 2px rgba(246,207,91,.08)}.social-passport-mission.claimed{opacity:.72}
.social-passport-badges{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.social-passport-badge{padding:10px;border-radius:16px;border:1px solid rgba(70,70,98,.09);background:rgba(255,255,255,.72);display:flex;flex-direction:column;min-width:0}.social-passport-badge>span{font-size:22px}.social-passport-badge strong{font-size:calc(12px + var(--tp-text-extra,0px));margin-top:3px}.social-passport-badge small{font-size:calc(10.5px + var(--tp-text-extra,0px));line-height:1.3;opacity:.58;min-height:25px;margin:2px 0 5px}.social-passport-badge em{font-style:normal;font-size:calc(10.5px + var(--tp-text-extra,0px));font-weight:800;margin-bottom:5px}.social-passport-badge.locked{filter:saturate(.45);opacity:.62}.social-passport-badge.unlocked{background:linear-gradient(150deg,rgba(255,250,226,.95),rgba(250,245,255,.95));border-color:rgba(215,173,56,.22)}
.social-passport-titles{display:flex;gap:8px;overflow-x:auto;padding:2px 1px 4px;scrollbar-width:none}.social-passport-titles::-webkit-scrollbar{display:none}.social-passport-title{flex:0 0 150px;min-height:82px;border-radius:16px;border:1px solid rgba(78,73,105,.10);background:rgba(255,255,255,.75);padding:9px;text-align:left;color:inherit}.social-passport-title>span{font-size:calc(20px + var(--tp-text-extra,0px))}.social-passport-title strong{display:block;font-size:calc(12px + var(--tp-text-extra,0px));margin:3px 0}.social-passport-title small{display:block;font-size:calc(10.5px + var(--tp-text-extra,0px));opacity:.56}.social-passport-title.selected{border-color:rgba(118,83,171,.40);box-shadow:0 0 0 2px rgba(123,91,184,.10);background:#f4efff}.social-passport-title.locked{opacity:.48}
.social-square-social-title{display:block!important;font-style:normal!important;font-size:calc(9.5px + var(--tp-text-extra,0px))!important;line-height:1.05!important;margin-top:2px!important;color:#67518f!important;white-space:nowrap}.social-square-passport-detail{grid-column:1/-1}.social-square-encounter-row small{line-height:1.35}
@media(min-width:760px){.social-passport-missions{grid-template-columns:repeat(3,minmax(0,1fr))}.social-passport-mission{grid-template-columns:auto 1fr}.social-passport-mission>button{grid-column:1/-1}.social-passport-badges{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:520px){.social-square-passport-toggle{grid-template-columns:auto 1fr;padding:12px}.social-square-passport-toggle>em{display:none}.social-square-passport-mark,.social-hub-passport-head>span{width:42px;height:42px;border-radius:14px;font-size:21px}.social-passport-mission{grid-template-columns:auto 1fr}.social-passport-mission>button{grid-column:1/-1;width:100%}.social-passport-badges{grid-template-columns:repeat(2,minmax(0,1fr))}.social-passport-title{flex-basis:138px}}


/* =========================================================
   TinyPal v9.12 — PIAZZA SOCIALE · RESTYLE ESTETICO
   Rifinitura importante della scena e della UI sociale.
   ========================================================= */
.social-square-sheet{
  width:min(820px,calc(100vw - 16px));
  background:
    linear-gradient(180deg,rgba(255,255,255,.98),rgba(251,248,243,.98));
}
.social-square-head{
  top:-10px;
  background:linear-gradient(180deg,rgba(255,252,248,.98) 78%,rgba(255,255,255,0));
}
.social-square-head h2{
  letter-spacing:-.02em;
}
.social-square-head p{
  color:#7a7067;
  max-width:560px;
}
.social-square-livebar{
  position:relative;
  overflow:hidden;
  padding:12px 14px;
  border-radius:20px;
  background:
    linear-gradient(145deg,rgba(255,255,255,.95),rgba(243,238,231,.96));
  border:1px solid rgba(110,94,76,.09);
  box-shadow:0 10px 26px rgba(69,53,38,.07), inset 0 1px 0 rgba(255,255,255,.6);
}
.social-square-livebar::after{
  content:"";
  position:absolute;
  inset:auto 12px 0;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(137,117,96,.12),transparent);
}
.social-square-livebar strong{font-size:calc(11.4px + var(--tp-text-extra,0px));color:#574b43}
.social-square-livebar small{font-size:calc(8.7px + var(--tp-text-extra,0px));color:#8c8178}
.social-square-livebar>b{
  background:linear-gradient(145deg,#fff,#f7f2ea);
  color:#6a5f56;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7);
}

.social-square-scene{
  --sq-sky-top:#bcdde7;
  --sq-sky-bottom:#ebf1e5;
  --sq-stone-1:#e8dac6;
  --sq-stone-2:#d8c2a2;
  --sq-stone-line:rgba(119,94,72,.075);
  position:relative;
  height:500px;
  margin-top:12px;
  border-radius:30px;
  border:1px solid rgba(106,90,73,.10);
  background:
    radial-gradient(circle at var(--ambient-sun-x,76%) 15%, rgba(255,237,177,.52), rgba(255,237,177,0) 16%),
    linear-gradient(180deg,var(--sq-sky-top) 0 27%, var(--sq-sky-bottom) 27% 41%, var(--sq-stone-1) 41% 73%, var(--sq-stone-2) 73% 100%);
  box-shadow:
    0 18px 42px rgba(84,65,47,.12),
    inset 0 1px 0 rgba(255,255,255,.55),
    inset 0 -22px 40px rgba(103,77,54,.08);
}
.social-square-scene::before,
.social-square-scene::after{
  content:"";
  position:absolute;
  pointer-events:none;
}
.social-square-scene::before{
  inset:0;
  border-radius:inherit;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.36);
  background:
    radial-gradient(circle at 12% 10%, rgba(255,255,255,.24), transparent 18%),
    radial-gradient(circle at 88% 86%, rgba(122,164,128,.10), transparent 18%);
  z-index:0;
}
.social-square-scene::after{
  left:10px; right:10px; bottom:10px; height:40px;
  border-radius:22px;
  background:linear-gradient(180deg,rgba(120,91,67,0),rgba(120,91,67,.08));
  filter:blur(8px);
  z-index:1;
}
.social-square-sky{
  inset:0 0 54% 0;
  background:
    linear-gradient(180deg,#afd3df 0,#c9e2e3 46%, rgba(235,241,229,.85) 100%);
}
.social-square-sky::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(255,255,255,.18),rgba(255,255,255,0) 58%);
}
.social-square-sky::after{
  content:"";
  position:absolute;
  left:-8%; right:-8%; bottom:-24px; height:44px;
  background:radial-gradient(ellipse at center, rgba(255,255,255,.55), rgba(255,255,255,0) 72%);
  opacity:.45;
}
.social-square-sky>i,
.social-square-sky>b{
  background:rgba(255,255,255,.68);
  filter:blur(.1px);
}
.social-square-sky>i{
  width:68px;height:24px;left:10%;top:20%;box-shadow:34px 6px 0 rgba(255,255,255,.56),14px 11px 0 4px rgba(255,255,255,.36)
}
.social-square-sky>b{
  width:44px;height:18px;right:14%;top:14%;box-shadow:-26px 4px 0 rgba(255,255,255,.5),-8px 10px 0 4px rgba(255,255,255,.34)
}
.social-square-sun-glow{
  position:absolute;
  top:10%; right:11%; width:66px; height:66px; z-index:1; pointer-events:none;
  border-radius:50%;
  background:radial-gradient(circle, rgba(255,241,192,.95) 0 26%, rgba(255,241,192,.38) 36%, rgba(255,241,192,0) 68%);
  box-shadow:0 0 40px rgba(255,225,162,.24);
}
.social-square-bunting{
  position:absolute;
  left:8%; right:8%; top:21%; height:18px; z-index:2; pointer-events:none;
  opacity:.88;
}
.social-square-bunting::before{
  content:"";
  position:absolute;
  left:0; right:0; top:1px; height:2px; border-radius:999px;
  background:linear-gradient(90deg,rgba(101,83,67,.12),rgba(101,83,67,.42),rgba(101,83,67,.12));
}
.social-square-bunting::after{
  content:"";
  position:absolute;
  left:0; right:0; top:2px; height:16px;
  background:
    conic-gradient(from 45deg at 8px 0,#e18f84 90deg,transparent 0) 0 0/24px 16px repeat-x,
    conic-gradient(from 45deg at 8px 0,#f0cf73 90deg,transparent 0) 8px 0/24px 16px repeat-x,
    conic-gradient(from 45deg at 8px 0,#90ba9c 90deg,transparent 0) 16px 0/24px 16px repeat-x,
    conic-gradient(from 45deg at 8px 0,#9bb8dd 90deg,transparent 0) 24px 0/24px 16px repeat-x;
  opacity:.92;
}
.social-square-buildings{
  left:4%; right:4%; top:20%; height:34%;
  align-items:flex-end; justify-content:space-between; z-index:1;
}
.social-square-buildings>i{
  position:relative;
  display:block;
  width:22%;
  overflow:hidden;
  border-radius:18px 18px 0 0;
  border:1px solid rgba(92,71,52,.10);
  box-shadow:0 10px 16px rgba(73,55,41,.08), inset 0 1px 0 rgba(255,255,255,.38), inset 0 -12px 0 rgba(93,70,50,.05);
  background:
    linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,0) 25%),
    repeating-linear-gradient(90deg, transparent 0 14px, rgba(118,96,76,.04) 14px 15px),
    linear-gradient(90deg,#cfbaa5,#eadcc7);
}
.social-square-buildings>i::before,
.social-square-buildings>i::after{
  content:"";
  position:absolute;
  left:8%; right:8%;
}
.social-square-buildings>i::before{
  top:10px; height:44px; border-radius:8px 8px 4px 4px;
  background:
    repeating-linear-gradient(90deg,#86a5b2 0 13px,#f4e7d6 13px 18px),
    repeating-linear-gradient(180deg,transparent 0 11px,rgba(109,87,66,.08) 11px 12px);
  opacity:.92;
}
.social-square-buildings>i::after{
  bottom:10px; height:18px; border-radius:999px 999px 0 0;
  background:rgba(120,91,67,.08);
}
.social-square-buildings>i:nth-child(1){height:66%;background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,0) 25%),repeating-linear-gradient(90deg, transparent 0 14px, rgba(118,96,76,.04) 14px 15px),linear-gradient(90deg,#d6bea6,#eddcc9)}
.social-square-buildings>i:nth-child(1)::after{background:linear-gradient(180deg,#d27e6e,#c76d63)}
.social-square-buildings>i:nth-child(2){height:88%;background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,0) 25%),repeating-linear-gradient(90deg, transparent 0 14px, rgba(118,96,76,.04) 14px 15px),linear-gradient(90deg,#b7c6b4,#dde4cf)}
.social-square-buildings>i:nth-child(2)::after{background:linear-gradient(180deg,#7196a1,#618390)}
.social-square-buildings>i:nth-child(3){height:74%;background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,0) 25%),repeating-linear-gradient(90deg, transparent 0 14px, rgba(118,96,76,.04) 14px 15px),linear-gradient(90deg,#d8b9b2,#efd7d0)}
.social-square-buildings>i:nth-child(3)::after{background:linear-gradient(180deg,#93b879,#7ca064)}
.social-square-buildings>i:nth-child(4){height:92%;background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,0) 25%),repeating-linear-gradient(90deg, transparent 0 14px, rgba(118,96,76,.04) 14px 15px),linear-gradient(90deg,#b5b8d4,#dfe0ec)}
.social-square-buildings>i:nth-child(4)::after{background:linear-gradient(180deg,#cc9d5b,#c0844a)}

.social-square-paving{
  left:-6%; right:-6%; top:45%; bottom:-9%; z-index:1;
  background:
    radial-gradient(circle at 50% 26%, rgba(255,255,255,.16) 0 58px, rgba(176,149,122,.12) 59px 78px, transparent 79px),
    linear-gradient(180deg,rgba(255,255,255,.18),rgba(255,255,255,0) 26%),
    repeating-linear-gradient(90deg, transparent 0 50px, var(--sq-stone-line) 50px 52px),
    repeating-linear-gradient(0deg, transparent 0 34px, rgba(117,92,70,.065) 34px 36px),
    linear-gradient(180deg,#ebdfcf,#dbc5a8 78%, #d2b792 100%);
  transform:perspective(440px) rotateX(18deg);
  transform-origin:center top;
}
.social-square-paving::before{
  content:"";
  position:absolute;
  left:13%; right:13%; top:4%; height:28px;
  border-radius:50%;
  background:radial-gradient(ellipse at center, rgba(255,255,255,.35), rgba(255,255,255,0) 68%);
}
.social-square-paving::after{
  content:"";
  position:absolute;
  left:6%; right:6%; top:0; height:8px;
  border-top:1px solid rgba(255,255,255,.35);
  background:linear-gradient(180deg,rgba(255,255,255,.25),rgba(255,255,255,0));
}

.social-square-flowerbed{
  position:absolute;
  z-index:3;
  width:88px; height:34px; top:57%;
  border-radius:20px;
  background:linear-gradient(180deg,#bf9a73,#936b49);
  box-shadow:0 7px 15px rgba(74,57,40,.12), inset 0 1px 0 rgba(255,255,255,.36);
  pointer-events:none;
}
.social-square-flowerbed::before{
  content:"";
  position:absolute;
  inset:4px 5px 8px;
  border-radius:16px;
  background:linear-gradient(180deg,#6c8b55,#50754a);
}
.social-square-flowerbed>i,
.social-square-flowerbed>b{
  position:absolute;
  width:8px; height:8px; top:8px;
  border-radius:50%;
  background:#ffd8c8;
  box-shadow:
    12px 8px 0 #fff0ac,
    23px -1px 0 #f3a3a3,
    35px 7px 0 #d9b8ff,
    47px 0 0 #ffefb1,
    58px 8px 0 #f7b0ba;
}
.social-square-flowerbed>b{
  top:15px; left:12px; width:6px; height:6px; opacity:.84;
  background:#fef2bc;
  box-shadow:
    16px -5px 0 #ffc6cc,
    30px 1px 0 #f0d1ff,
    43px -5px 0 #ffe8ae,
    57px 0 0 #ffd6c6;
}
.social-square-flowerbed.flowerbed-a{left:6%}
.social-square-flowerbed.flowerbed-b{right:6%}

.social-square-fountain{
  top:53%; width:128px; height:82px; z-index:4;
  border-radius:50%;
  background:linear-gradient(180deg,#c5d2ce,#a8b9b4);
  border:5px solid #efe7da;
  box-shadow:0 14px 22px rgba(64,72,67,.16), inset 0 2px 0 rgba(255,255,255,.45);
}
.social-square-fountain::before{
  content:"";
  position:absolute;
  left:50%; top:52%; width:94px; height:50px;
  translate:-50% -50%;
  border-radius:50%;
  background:radial-gradient(circle at 50% 44%, rgba(163,216,228,.92), rgba(115,177,193,.70) 68%, rgba(92,144,154,.22) 100%);
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.30);
}
.social-square-fountain>i{
  top:40%; width:20px; height:42px;
  background:linear-gradient(180deg,#e9e2d3,#cbc2b2);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.65);
}
.social-square-fountain>b{
  top:-16px; width:58px; height:31px;
  border-width:3px;
  border-top-color:rgba(218,240,244,.92);
  border-bottom-color:transparent;
}
.social-square-fountain>em{
  inset:14px 17px 13px;
  background:
    radial-gradient(circle at 35% 34%, rgba(255,255,255,.45), rgba(255,255,255,0) 20%),
    radial-gradient(circle at 62% 66%, rgba(255,255,255,.22), rgba(255,255,255,0) 25%),
    linear-gradient(180deg,rgba(148,201,214,.86),rgba(101,166,183,.68));
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.26);
  animation:socialSquareWaterRipple 3.2s ease-in-out infinite;
}
.social-square-fountain>em::before,
.social-square-fountain>em::after{
  content:"";
  position:absolute;
  inset:10px 17px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.38);
  opacity:.48;
}
.social-square-fountain>em::after{
  inset:16px 25px;
  opacity:.28;
}
@keyframes socialSquareWaterRipple{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.03)}
}

.social-square-tree{
  width:68px; height:94px; z-index:3;
}
.social-square-tree::before{
  left:30px; width:9px; height:46px;
  background:linear-gradient(180deg,#9b7958,#75553f);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.15);
}
.social-square-tree>i{
  left:4px; top:2px; width:60px; height:58px;
  border-radius:48% 52% 46% 54%;
  background:linear-gradient(180deg,#8eb17d,#6f9468);
  box-shadow:17px 12px 0 #9ac087,-13px 13px 0 #6f8f67, 2px -7px 0 1px rgba(255,255,255,.12) inset;
  animation:socialSquareLeaves 3.4s ease-in-out infinite;
}
.social-square-tree.tree-a{left:7%;top:39%}
.social-square-tree.tree-b{right:7%;top:40%;scale:.94}
@keyframes socialSquareLeaves{
  0%,100%{transform:rotate(-1deg) translateY(0)}
  50%{transform:rotate(1.3deg) translateY(-1px)}
}

.social-square-bench{
  width:80px; height:16px; z-index:3;
  border-radius:7px;
  background:linear-gradient(180deg,#b88966,#986e52);
  box-shadow:0 8px 0 -4px #6f523f, 0 10px 15px rgba(72,55,41,.10);
}
.social-square-bench::before,
.social-square-bench::after{
  bottom:-16px; width:7px; height:19px; background:#735543;
}
.social-square-bench.bench-a{left:16%;top:64%;rotate:-4deg}
.social-square-bench.bench-b{right:14%;top:65%;rotate:4deg}

.social-square-lamp{
  width:16px; height:82px;
}
.social-square-lamp::before{
  left:6px; width:4px; height:62px;
  background:linear-gradient(180deg,#6b6f69,#555952);
}
.social-square-lamp>i{
  left:-1px; top:3px; width:18px; height:18px;
  border-radius:6px;
  background:linear-gradient(180deg,#f8f1d6,#efe6be);
  border:2px solid #64655e;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.66);
}
.social-square-lamp>i::after{
  top:8px; width:72px; height:72px;
  background:radial-gradient(circle,rgba(255,226,154,.42),rgba(255,226,154,0) 72%);
}
.social-square-lamp.lamp-a{left:28%;top:37%}
.social-square-lamp.lamp-b{right:26%;top:38%}

.social-square-birds{
  z-index:2;
  opacity:.74;
}
.social-square-butterfly{
  color:#ffd28f;
  text-shadow:0 0 10px rgba(255,214,140,.28);
}

.social-square-player{
  width:96px; height:120px;
  filter:drop-shadow(0 9px 8px rgba(63,48,36,.16));
}
.social-square-player .household-pet-preview{
  filter:drop-shadow(0 7px 6px rgba(72,50,34,.15))!important;
}
.social-square-player-label{
  bottom:-7px;
  min-width:82px; max-width:132px;
  padding:6px 8px;
  border:1px solid rgba(111,93,75,.08);
  border-radius:13px;
  background:linear-gradient(145deg,rgba(255,255,255,.95),rgba(248,244,238,.94));
  box-shadow:0 8px 18px rgba(65,52,43,.11), inset 0 1px 0 rgba(255,255,255,.55);
}
.social-square-player-label strong{font-size:calc(9.9px + var(--tp-text-extra,0px));color:#4d4640}
.social-square-player-label small{font-size:calc(8.1px + var(--tp-text-extra,0px));color:#7c736d}
.social-square-player.self .social-square-player-label{
  background:linear-gradient(145deg,rgba(236,245,233,.98),rgba(229,239,226,.95));
}
.social-square-player.self .social-square-player-label::after{
  right:-5px; top:-7px;
  padding:2px 5px;
  background:#6f8b6d;
  box-shadow:0 4px 8px rgba(75,94,73,.18);
}
.social-square-player.known .social-square-player-label{
  box-shadow:0 8px 18px rgba(65,52,43,.11),0 0 0 2px rgba(113,143,107,.14), inset 0 1px 0 rgba(255,255,255,.55);
}
.social-square-empty{
  top:68%;
  width:min(270px,74%);
  padding:14px 15px;
  border-radius:22px;
  background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(248,244,238,.92));
  border:1px solid rgba(98,80,65,.07);
  box-shadow:0 14px 28px rgba(73,60,49,.10);
}
.social-square-tap-hint{
  bottom:12px;
  padding:8px 12px;
  background:rgba(63,53,46,.76);
  box-shadow:0 8px 22px rgba(45,38,33,.18);
}

.social-square-inspect,
.social-square-activity-invite,
.social-square-activity-hud,
.social-square-encounters,
.social-square-footer{
  border-radius:22px;
  border:1px solid rgba(90,75,61,.08);
  background:linear-gradient(145deg,rgba(255,255,255,.97),rgba(247,242,235,.95));
  box-shadow:0 12px 28px rgba(70,54,41,.07);
}
.social-square-inspect{
  margin-top:12px;
  padding:12px;
}
.social-square-inspect-avatar,
.social-square-encounter-avatar{
  border:1px solid rgba(90,75,61,.08);
  background:linear-gradient(145deg,#f4efe8,#e8e1d7);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55);
}
.social-square-inspect-copy>small{font-size:calc(8.2px + var(--tp-text-extra,0px));color:#8f8479}
.social-square-inspect-copy>strong{font-size:calc(13.5px + var(--tp-text-extra,0px));color:#4f4841}
.social-square-inspect-copy>span{font-size:calc(9.6px + var(--tp-text-extra,0px));color:#7d756e}
.social-square-inspect>button{
  background:linear-gradient(145deg,#fff,#f5efe8);
  border:1px solid rgba(95,78,64,.08);
  box-shadow:0 6px 14px rgba(77,59,44,.06);
}
.social-square-inspect-status{
  background:linear-gradient(145deg,#fff5cf,#f5e5a8);
  color:#735e2d;
  box-shadow:0 6px 16px rgba(145,116,38,.10);
}
.social-square-inspect-details span{
  padding:8px 9px;
  border-radius:14px;
  border:1px solid rgba(93,77,63,.05);
  background:rgba(255,255,255,.84);
  color:#69625b;
}
.social-square-inspect-details b{color:#998f84}
.social-square-inspect-actions{
  gap:8px;
}
.social-square-inspect-actions button{
  min-height:72px;
  border-radius:16px;
  border:1px solid rgba(90,76,62,.07);
  background:linear-gradient(145deg,#fff,#f5efe8);
  box-shadow:0 8px 16px rgba(76,58,43,.05);
}
.social-square-inspect-actions button:active{
  transform:translateY(1px);
}
.social-square-inspect-actions #socialSquareActivities,
.social-square-activity-tray button{
  background:linear-gradient(145deg,#fff8ee,#f7efdf);
}
.social-square-reaction-tray,
.social-square-activity-tray{
  gap:8px;
  margin-top:8px;
  padding:8px;
  border-radius:18px;
  background:linear-gradient(145deg,rgba(239,234,226,.92),rgba(231,226,217,.92));
}
.social-square-reaction-tray button,
.social-square-activity-tray button{
  border:1px solid rgba(90,76,62,.06);
  box-shadow:0 7px 14px rgba(76,58,43,.04);
}
.social-square-event{
  margin:12px 0 10px;
  padding:11px 12px;
  border-radius:20px;
  background:linear-gradient(145deg,#f8f5ee,#efe8dc);
  box-shadow:0 11px 26px rgba(67,52,41,.07);
}
.social-square-event>span{
  border-radius:15px;
  box-shadow:0 8px 18px rgba(66,52,42,.08);
}
.social-square-hotspot{
  padding:6px 8px;
  border:1px solid rgba(92,76,61,.07);
  background:linear-gradient(145deg,rgba(255,255,255,.92),rgba(248,243,236,.88));
  box-shadow:0 10px 18px rgba(67,54,43,.12);
}
.social-square-hotspot strong{font-size:calc(7.9px + var(--tp-text-extra,0px))}
.social-square-hotspot.hotspot-bench{left:21%;top:58%}
.social-square-hotspot.hotspot-fountain{top:52%}
.social-square-hotspot.hotspot-ball{right:12%;top:70%}
.social-square-hotspot.event-hot{
  background:linear-gradient(145deg,#fff7d7,#fff1ba);
}
.social-square-encounters{
  margin-top:12px;
  padding:12px;
}
.social-square-encounters-head strong{color:#524842}
.social-square-encounters-list{gap:8px;margin-top:10px}
.social-square-encounter-row{
  padding:9px;
  border-radius:17px;
  border:1px solid rgba(89,72,58,.06);
  background:linear-gradient(145deg,rgba(255,255,255,.92),rgba(248,244,238,.92));
  box-shadow:0 8px 15px rgba(74,57,43,.04);
}
.social-square-encounter-row strong{font-size:calc(9.8px + var(--tp-text-extra,0px));color:#4e4741}
.social-square-encounter-row small{font-size:calc(8.1px + var(--tp-text-extra,0px));color:#7c736d;white-space:normal}
.social-square-encounter-row em{font-size:calc(7.7px + var(--tp-text-extra,0px));color:#968b80}
.social-square-encounter-row>b{
  background:#f0f2ec;color:#6d756a;
}
.social-square-footer{
  margin-top:12px;
  padding:12px 13px;
  background:linear-gradient(145deg,#f7f5f0,#eee8df);
}
.social-square-footer>div>span{
  width:36px;height:36px;border-radius:14px;display:grid;place-items:center;
  background:rgba(255,255,255,.7);
  box-shadow:0 7px 14px rgba(68,52,40,.06);
}
.social-square-footer strong{font-size:calc(10.8px + var(--tp-text-extra,0px));color:#554b44}
.social-square-footer small{font-size:calc(8.6px + var(--tp-text-extra,0px));color:#7e756d}

@media(max-width:620px){
  .social-square-scene{height:470px;border-radius:26px}
  .social-square-buildings{left:3%;right:3%;top:22%;height:31%}
  .social-square-buildings>i{width:23%}
  .social-square-player{width:86px;height:110px}
  .social-square-player .household-pet-preview{transform:translate(-50%,-50%) scale(.335)!important}
  .social-square-hotspot.hotspot-bench{left:17%;top:58%}
  .social-square-hotspot.hotspot-ball{right:8%;top:71%}
  .social-square-flowerbed{width:74px;height:31px;top:58%}
}
@media(max-width:390px){
  .social-square-sheet{width:100%}
  .social-square-scene{height:436px;border-radius:23px}
  .social-square-bunting{top:23%}
  .social-square-fountain{width:110px;height:72px}
  .social-square-player{width:76px;height:102px}
  .social-square-player .household-pet-preview{transform:translate(-50%,-50%) scale(.305)!important}
  .social-square-hotspot.hotspot-bench{left:14%;top:59%}
  .social-square-hotspot.hotspot-ball{right:6%;top:72%}
  .social-square-flowerbed{display:none}
}
@media(prefers-reduced-motion:reduce){
  .social-square-tree>i,
  .social-square-fountain>em,
  .social-square-butterfly,
  .social-square-bunting::after{animation:none!important}
}

/* =========================================================
   TinyPal v9.13 — PIAZZA SOCIALE · RIFINITURA PREMIUM
   Micro-dettagli, profondità, ombre e notte più curata.
   ========================================================= */
.social-square-scene{
  isolation:isolate;
}
.social-square-scene .social-square-buildings,
.social-square-scene .social-square-tree,
.social-square-scene .social-square-bench,
.social-square-scene .social-square-fountain,
.social-square-scene .social-square-lamp,
.social-square-scene .social-square-flowerbed,
.social-square-scene .social-square-cafe,
.social-square-scene .social-square-sign,
.social-square-scene .social-square-stone-edge{
  pointer-events:none!important;
}

/* Ombre di contatto più leggibili per evitare l'effetto "oggetti sospesi" */
.social-square-tree::after,
.social-square-bench::after,
.social-square-lamp::after,
.social-square-fountain::after,
.social-square-flowerbed::after,
.social-square-cafe::after,
.social-square-sign::after{
  content:"";
  position:absolute;
  left:50%;
  translate:-50% 0;
  border-radius:50%;
  background:radial-gradient(ellipse at center,rgba(74,56,42,.17),rgba(74,56,42,0) 72%);
  filter:blur(1px);
  pointer-events:none;
  z-index:-1;
}
.social-square-tree::after{bottom:-7px;width:74px;height:18px}
.social-square-bench::after{bottom:-21px;width:92px;height:18px}
.social-square-lamp::after{bottom:-7px;width:40px;height:13px}
.social-square-fountain::after{bottom:-18px;width:156px;height:28px}
.social-square-flowerbed::after{bottom:-10px;width:98px;height:18px}

/* Piccolo angolo caffè puramente decorativo */
.social-square-cafe{
  position:absolute;
  right:5.5%;
  top:48%;
  width:96px;
  height:76px;
  z-index:3;
  opacity:.96;
}
.social-square-cafe::before{
  content:"";
  position:absolute;
  left:34px;
  top:31px;
  width:42px;
  height:10px;
  border-radius:50%;
  background:linear-gradient(180deg,#d8b48a,#b78f67);
  box-shadow:0 3px 0 #8f684c,0 9px 13px rgba(71,51,37,.10);
}
.social-square-cafe>i{
  position:absolute;
  left:53px;
  top:38px;
  width:4px;
  height:28px;
  border-radius:3px;
  background:#795d49;
}
.social-square-cafe>b{
  position:absolute;
  left:25px;
  top:4px;
  width:60px;
  height:31px;
  border-radius:50% 50% 46% 46%;
  background:linear-gradient(90deg,#e68c83 0 50%,#fff1db 50% 100%);
  border:2px solid rgba(112,82,62,.10);
  box-shadow:0 7px 14px rgba(80,56,40,.10);
}
.social-square-cafe>b::before{
  content:"";
  position:absolute;
  left:28px;
  top:26px;
  width:4px;
  height:22px;
  background:#775a47;
  border-radius:3px;
}
.social-square-cafe>em{
  position:absolute;
  left:9px;
  top:48px;
  width:25px;
  height:8px;
  border-radius:5px;
  background:linear-gradient(180deg,#9aa878,#72885f);
  box-shadow:54px 1px 0 #879c6e;
}
.social-square-cafe::after{bottom:-2px;width:92px;height:18px}

/* Piccola insegna per dare identità al luogo */
.social-square-sign{
  position:absolute;
  left:5.5%;
  top:49%;
  width:62px;
  height:67px;
  z-index:3;
}
.social-square-sign::before{
  content:"";
  position:absolute;
  left:27px;
  top:24px;
  width:7px;
  height:42px;
  border-radius:5px;
  background:linear-gradient(180deg,#87674d,#684d3b);
}
.social-square-sign>i{
  position:absolute;
  left:5px;
  top:4px;
  width:52px;
  height:28px;
  border-radius:10px;
  background:linear-gradient(145deg,#f6dfb7,#d8bc8d);
  border:2px solid rgba(103,76,54,.18);
  box-shadow:0 7px 13px rgba(76,54,38,.10),inset 0 1px 0 rgba(255,255,255,.55);
}
.social-square-sign>b{
  position:absolute;
  left:8px;
  top:12px;
  width:46px;
  text-align:center;
  font-size:calc(7.5px + var(--tp-text-extra,0px));
  font-weight:950;
  letter-spacing:.12em;
  color:#725c44;
}
.social-square-sign::after{bottom:-3px;width:66px;height:14px}

/* Bordure laterali che chiudono meglio la composizione */
.social-square-stone-edge{
  position:absolute;
  top:67%;
  width:122px;
  height:13px;
  z-index:2;
  border-radius:999px;
  background:
    repeating-linear-gradient(90deg,#c8b8a5 0 17px,#b9a893 17px 19px,#d5c7b5 19px 36px);
  box-shadow:0 5px 9px rgba(70,53,40,.08),inset 0 1px 0 rgba(255,255,255,.4);
  opacity:.9;
}
.social-square-stone-edge.edge-a{left:-16px;rotate:4deg}
.social-square-stone-edge.edge-b{right:-18px;rotate:-4deg}

/* Migliore separazione del centro piazza */
.social-square-paving{
  box-shadow:inset 0 12px 22px rgba(255,255,255,.12),inset 0 -14px 28px rgba(112,84,60,.06);
}
.social-square-fountain{
  filter:drop-shadow(0 2px 0 rgba(255,255,255,.22));
}
.social-square-fountain>i::after{
  content:"";
  position:absolute;
  left:50%;
  top:-16px;
  width:8px;
  height:21px;
  translate:-50% 0;
  border-radius:50%;
  background:linear-gradient(180deg,rgba(232,249,252,.92),rgba(143,203,216,.56));
  box-shadow:-11px 8px 0 -2px rgba(204,237,242,.72),11px 8px 0 -2px rgba(204,237,242,.72);
  animation:socialSquareFineJet 1.7s ease-in-out infinite alternate;
}
@keyframes socialSquareFineJet{
  from{height:17px;top:-12px;opacity:.8}
  to{height:24px;top:-19px;opacity:1}
}

/* TinyPal: una piccola ombra a terra separata dal personaggio */
.social-square-player::before{
  content:"";
  position:absolute;
  left:50%;
  bottom:17px;
  width:52px;
  height:13px;
  translate:-50% 0;
  border-radius:50%;
  background:radial-gradient(ellipse at center,rgba(66,48,36,.20),rgba(66,48,36,0) 72%);
  filter:blur(.7px);
  opacity:.78;
  pointer-events:none;
  z-index:-1;
}
.social-square-player.self::before{background:radial-gradient(ellipse at center,rgba(86,119,82,.25),rgba(86,119,82,0) 72%)}
.social-square-player-label{
  backdrop-filter:blur(7px);
  -webkit-backdrop-filter:blur(7px);
}
.social-square-social-title{
  color:#765e95!important;
  opacity:.92;
}

/* Hotspot meno "bottoni appoggiati" e più targhette del mondo */
.social-square-hotspot{
  border-color:rgba(104,84,65,.08);
  box-shadow:0 9px 18px rgba(70,53,40,.11),inset 0 1px 0 rgba(255,255,255,.7);
}
.social-square-hotspot::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:-6px;
  width:22px;
  height:7px;
  translate:-50% 0;
  border-radius:50%;
  background:radial-gradient(ellipse at center,rgba(70,52,38,.13),rgba(70,52,38,0) 72%);
  pointer-events:none;
}

/* Sera/notte: lampioni con luce localizzata realmente visibile sul pavimento */
.social-square-scene.ambient-dusk,
.social-square-scene.ambient-night,
.social-square-scene.ambient-predawn{
  --sq-night-warm:rgba(255,215,137,.24);
}
.social-square-scene.ambient-dusk::before,
.social-square-scene.ambient-night::before,
.social-square-scene.ambient-predawn::before{
  background:
    radial-gradient(ellipse at 29% 61%,var(--sq-night-warm) 0 5%,rgba(255,215,137,.09) 14%,transparent 28%),
    radial-gradient(ellipse at 73% 61%,var(--sq-night-warm) 0 5%,rgba(255,215,137,.09) 14%,transparent 28%),
    radial-gradient(circle at 12% 10%, rgba(255,255,255,.08), transparent 18%),
    radial-gradient(circle at 88% 86%, rgba(122,164,128,.08), transparent 18%);
}
.social-square-scene.ambient-night .social-square-buildings>i::before,
.social-square-scene.ambient-predawn .social-square-buildings>i::before,
.social-square-scene.ambient-dusk .social-square-buildings>i::before{
  filter:brightness(1.08) saturate(.9);
  box-shadow:inset 0 0 14px rgba(255,220,151,.11);
}
.social-square-scene.ambient-night .social-square-sun-glow,
.social-square-scene.ambient-predawn .social-square-sun-glow{opacity:.08}
.social-square-scene.ambient-dusk .social-square-sun-glow{opacity:.45}
.social-square-scene.ambient-night .social-square-bunting,
.social-square-scene.ambient-predawn .social-square-bunting{opacity:.38}
.social-square-scene.ambient-night .social-square-cafe>b,
.social-square-scene.ambient-predawn .social-square-cafe>b{
  filter:brightness(.82) saturate(.82);
}

/* Passaporto e pannelli: finitura coerente, meno fredda */
.social-square-passport-card,
.social-hub-passport{
  border-color:rgba(109,88,68,.10);
  background:linear-gradient(145deg,rgba(255,253,249,.98),rgba(247,241,234,.96));
  box-shadow:0 13px 31px rgba(71,54,40,.08);
}
.social-square-passport-mark,
.social-hub-passport-head>span{
  background:linear-gradient(145deg,#fff0bd,#f0dfca);
}
.social-square-passport-toggle p b,
.social-hub-passport-head p b,
.social-square-passport-toggle>em,
.social-square-social-title{
  color:#765c83;
}
.social-square-passport-toggle>em{
  background:#f3eaf2;
}
.social-square-passport-toggle i b,
.social-hub-passport-head i b,
.social-passport-mission i b,
.social-passport-badge i b{
  background:linear-gradient(90deg,#e6b95a,#ad7fb5);
}
.social-passport-mission>button{
  background:linear-gradient(145deg,#80638e,#6f557b);
}
.social-passport-title.selected{
  border-color:rgba(121,91,132,.34);
  background:linear-gradient(145deg,#f7eef7,#f1e7ee);
}

@media(max-width:620px){
  .social-square-cafe{right:2.5%;scale:.88;transform-origin:right center}
  .social-square-sign{left:2%;scale:.88;transform-origin:left center}
  .social-square-stone-edge{width:96px}
  .social-square-player::before{bottom:15px;width:46px}
}
@media(max-width:440px){
  .social-square-cafe{right:-10px;top:49%;scale:.72;opacity:.82}
  .social-square-sign{left:-8px;top:50%;scale:.72;opacity:.84}
  .social-square-stone-edge{display:none}
}
@media(max-width:360px){
  .social-square-cafe,.social-square-sign{display:none}
}
@media(prefers-reduced-motion:reduce){
  .social-square-fountain>i::after{animation:none!important}
}


/* =========================================================
   TinyPal v9.14 — PIAZZA SOCIALE · LOTTO VIVO
   Niente riquadro + camminata fluida + autonomia.
   ========================================================= */
.social-square-player{
  appearance:none!important;
  -webkit-appearance:none!important;
  border:0!important;
  outline:0!important;
  background:transparent!important;
  padding:0!important;
  margin:0!important;
  box-shadow:none!important;
  border-radius:0!important;
  color:inherit!important;
  overflow:visible!important;
}
.social-square-player:focus,
.social-square-player:focus-visible{
  outline:0!important;
  box-shadow:none!important;
}
.social-square-player .social-square-pet-body,
.social-square-player .household-pet-preview{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
.social-square-player.self{
  transition:none!important;
  pointer-events:none!important;
}
.social-square-player.other{
  transition:left .48s linear,top .48s linear,filter .18s ease!important;
}
/* Il contenitore non saltella più: cammina il cucciolo al suo interno, come nei lotti/Avventura. */
.social-square-player.walking{animation:none!important}
.social-square-player.walking .social-square-pet-body{
  animation:socialSquareLotWalk .34s ease-in-out infinite alternate;
}
.social-square-player.walking .leg{animation:petLegLeft .27s ease-in-out infinite alternate!important}
.social-square-player.walking .leg-right{animation:petLegRight .27s ease-in-out infinite alternate!important}
@keyframes socialSquareLotWalk{
  from{transform:translateY(0)}
  to{transform:translateY(-4px)}
}
.social-square-player.square-auto-look .head{animation:lotLookTilt 1.25s ease-in-out 2}
.social-square-player.square-auto-sniff .head{animation:lotSniffHead .58s ease-in-out 3}
.social-square-player.square-auto-rest .social-square-pet-body{animation:lotRestBreath 1.8s ease-in-out infinite}
/* Solo un'ombra morbida a terra: niente scatola visiva attorno al TinyPal. */
.social-square-player::before{
  bottom:14px!important;
  width:50px!important;
  height:12px!important;
  opacity:.68!important;
  z-index:-1!important;
}
.social-square-player-label{
  bottom:-9px!important;
  pointer-events:none!important;
}
.social-square-tap-hint{
  background:rgba(58,50,44,.66)!important;
  backdrop-filter:blur(7px);
  -webkit-backdrop-filter:blur(7px);
}
@media(max-width:620px){
  .social-square-player::before{bottom:13px!important;width:45px!important}
}
@media(max-width:390px){
  .social-square-player::before{bottom:12px!important;width:41px!important}
}
@media(prefers-reduced-motion:reduce){
  .social-square-player.walking .social-square-pet-body,
  .social-square-player.walking .leg,
  .social-square-player.walking .leg-right,
  .social-square-player.square-auto-look .head,
  .social-square-player.square-auto-sniff .head,
  .social-square-player.square-auto-rest .social-square-pet-body{animation:none!important}
}


/* =========================================================
   TinyPal v9.18 — BAGNETTO INTERATTIVO · FASE 1
   Stanza bagno, scelta TinyPal, spugna drag e schiuma.
   ========================================================= */
.interactive-bath-sheet{width:min(720px,calc(100vw - 16px));max-height:96dvh;overflow:auto;padding-bottom:calc(18px + var(--safe-bottom));background:linear-gradient(180deg,#fffdfa,#f6f7f3)}
.interactive-bath-head{align-items:flex-start}.interactive-bath-head p{margin:4px 0 0;color:var(--muted);font-size:calc(9.5px + var(--tp-text-extra,0px));line-height:1.35;font-weight:700}
.interactive-bath-selector{display:flex;gap:8px;overflow-x:auto;padding:2px 1px 8px;scrollbar-width:none}.interactive-bath-selector::-webkit-scrollbar{display:none}
.bath-pet-choice{flex:1 0 210px;max-width:310px;display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:9px;align-items:center;border:1px solid rgba(77,91,82,.10);border-radius:18px;padding:8px 9px;background:linear-gradient(145deg,#fff,#f3f6f1);font:inherit;color:inherit;text-align:left;box-shadow:0 7px 18px rgba(62,72,64,.05)}
.bath-pet-choice.selected{border-color:rgba(92,128,108,.34);box-shadow:0 0 0 2px rgba(104,143,119,.09),0 8px 20px rgba(62,72,64,.06);background:linear-gradient(145deg,#f8fff7,#eef7ef)}.bath-pet-choice.disabled{opacity:.48}
.bath-pet-choice-avatar{position:relative;width:52px;height:52px;border-radius:15px;overflow:hidden;background:linear-gradient(145deg,#f0eee8,#e6ece6)}.bath-pet-choice-avatar .household-pet-preview{left:50%!important;top:52%!important;transform:translate(-50%,-50%) scale(.29)!important}
.bath-pet-choice>span:nth-child(2){min-width:0}.bath-pet-choice small{display:block;color:#76907c;font-size:calc(7.8px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.08em}.bath-pet-choice strong{display:block;margin-top:2px;font-size:calc(10.5px + var(--tp-text-extra,0px));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bath-pet-choice em{display:block;margin-top:2px;color:var(--muted);font-size:calc(8px + var(--tp-text-extra,0px));font-style:normal;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bath-pet-choice>b{font-size:calc(12px + var(--tp-text-extra,0px));color:#709078}
.bath-selector-empty{width:100%;padding:12px;border-radius:16px;background:#f2f4f0;color:#776f68;font-size:calc(9.5px + var(--tp-text-extra,0px));font-weight:800;text-align:center}

.interactive-bath-room{position:relative;height:405px;overflow:hidden;border-radius:28px;border:1px solid rgba(76,99,96,.10);background:linear-gradient(180deg,#dcebed 0 59%,#e8dfd1 59% 100%);box-shadow:0 16px 36px rgba(61,78,76,.10),inset 0 1px 0 rgba(255,255,255,.55);touch-action:none;user-select:none;-webkit-user-select:none}
.bath-wall{position:absolute;inset:0 0 40% 0;background:linear-gradient(180deg,#dcecef,#edf3ef)}.bath-wall::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 68px,rgba(88,118,118,.055) 68px 70px),repeating-linear-gradient(0deg,transparent 0 52px,rgba(88,118,118,.05) 52px 54px)}.bath-wall>i{position:absolute;left:0;right:0;bottom:0;height:13px;background:linear-gradient(180deg,#b9c9c6,#9fb5b1)}.bath-wall>b{position:absolute;left:7%;top:12%;width:68px;height:20px;border-radius:50%;background:rgba(255,255,255,.5);filter:blur(9px)}
.bath-window{position:absolute;right:7%;top:10%;width:102px;height:91px;border:8px solid #f2ece1;border-radius:18px;background:linear-gradient(180deg,#a9d4df,#d6e8df);box-shadow:0 8px 20px rgba(64,88,86,.08),inset 0 0 0 1px rgba(90,112,109,.12)}.bath-window::before,.bath-window::after{content:"";position:absolute;background:#f2ece1}.bath-window::before{left:50%;top:0;bottom:0;width:5px;translate:-50% 0}.bath-window::after{left:0;right:0;top:50%;height:5px;translate:0 -50%}.bath-window>i{position:absolute;left:12px;bottom:8px;width:20px;height:11px;border-radius:50% 50% 4px 4px;background:#86ad7b;box-shadow:20px -2px 0 #98bd89,38px 3px 0 #719b69}
.bath-shelf{position:absolute;left:6%;top:16%;width:126px;height:13px;border-radius:7px;background:linear-gradient(180deg,#b98f6f,#8e694e);box-shadow:0 6px 12px rgba(67,51,40,.10)}.bath-shelf>i,.bath-shelf>b,.bath-shelf>em{position:absolute;bottom:12px;border-radius:7px 7px 3px 3px}.bath-shelf>i{left:10px;width:22px;height:31px;background:linear-gradient(180deg,#ffe5bc,#eabf8d)}.bath-shelf>b{left:45px;width:20px;height:38px;background:linear-gradient(180deg,#c9dcf0,#92b6d0)}.bath-shelf>em{left:80px;width:30px;height:23px;background:linear-gradient(180deg,#d9c1dc,#b895bd)}
.bath-plant{position:absolute;left:8%;bottom:16%;width:58px;height:70px}.bath-plant::before{content:"";position:absolute;left:14px;bottom:0;width:38px;height:29px;border-radius:7px 7px 14px 14px;background:linear-gradient(180deg,#c99673,#a06f50)}.bath-plant>i,.bath-plant>b{position:absolute;left:27px;bottom:24px;width:16px;height:38px;border-radius:90% 10% 80% 20%;background:#759b6c;transform-origin:bottom}.bath-plant>i{rotate:-28deg;box-shadow:-14px 4px 0 -2px #89ab7c}.bath-plant>b{rotate:30deg;box-shadow:15px 2px 0 -3px #6e9366}
.bath-tub{position:absolute;left:50%;bottom:37px;width:305px;height:122px;translate:-50% 0;border-radius:24px 24px 47px 47px;background:linear-gradient(180deg,#f8f5ee,#dedbd2);border:1px solid rgba(90,98,91,.10);box-shadow:0 18px 26px rgba(70,66,59,.13),inset 0 3px 0 rgba(255,255,255,.72);z-index:2}.bath-tub::before{content:"";position:absolute;left:17px;right:17px;top:11px;height:72px;border-radius:20px 20px 40px 40px;background:linear-gradient(180deg,#bfe1e4,#91c7cd);box-shadow:inset 0 0 0 3px rgba(255,255,255,.30)}.bath-tub>i{position:absolute;right:35px;top:-53px;width:7px;height:59px;border-radius:6px;background:#82918f}.bath-tub>i::before{content:"";position:absolute;left:-11px;top:-7px;width:29px;height:13px;border-radius:12px;background:#aeb9b7;box-shadow:inset 0 1px 0 rgba(255,255,255,.55)}.bath-tub>b{position:absolute;left:50%;bottom:-10px;width:246px;height:24px;translate:-50% 0;border-radius:50%;background:radial-gradient(ellipse at center,rgba(66,58,50,.16),rgba(66,58,50,0) 72%);z-index:-1}.bath-tub>em{position:absolute;left:38px;top:26px;width:26px;height:9px;border-radius:50%;background:rgba(255,255,255,.42);box-shadow:50px 17px 0 -2px rgba(255,255,255,.35),135px -3px 0 -3px rgba(255,255,255,.37),190px 20px 0 -4px rgba(255,255,255,.32)}
.bath-mat{position:absolute;left:50%;bottom:7px;width:245px;height:45px;translate:-50% 0;border-radius:50%;background:repeating-linear-gradient(90deg,#c9ab97 0 14px,#d7b9a4 14px 28px);opacity:.58;z-index:1}

.bath-wash-surface{position:absolute;inset:84px 14% 52px;z-index:5;touch-action:none}.bath-pet-hitbox{position:absolute;left:50%;bottom:22px;width:180px;height:230px;translate:-50% 0;display:grid;place-items:center;pointer-events:none}.bath-pet-preview{position:absolute;inset:0;display:grid;place-items:center;z-index:2}.bath-pet-preview .household-pet-preview{position:absolute!important;left:50%!important;top:57%!important;transform:translate(-50%,-50%) scale(calc(.55 * var(--bath-pet-scale,1)))!important;filter:drop-shadow(0 10px 8px rgba(57,48,42,.18))!important}.bath-pet-preview .household-pet-preview.dirty{filter:drop-shadow(0 10px 8px rgba(57,48,42,.18)) saturate(.93)!important}.bath-pet-hitbox::after{content:"";position:absolute;left:50%;bottom:21px;width:90px;height:19px;translate:-50% 0;border-radius:50%;background:radial-gradient(ellipse,rgba(55,48,42,.18),rgba(55,48,42,0) 72%);z-index:0}
.bath-foam-layer{position:absolute;inset:25px 18px 27px;z-index:6;pointer-events:none}.bath-foam-bubble{position:absolute;width:var(--bubble-size,10px);height:var(--bubble-size,10px);border-radius:50%;translate:-50% -50%;background:radial-gradient(circle at 35% 30%,#fff 0 22%,#e6f8fb 23% 55%,rgba(194,232,239,.72) 56% 74%,rgba(255,255,255,.2) 75%);border:1px solid rgba(255,255,255,.72);box-shadow:0 2px 6px rgba(96,148,157,.12);animation:bathFoamPop 2.8s ease-in-out infinite alternate}.bath-foam-bubble:nth-child(3n){animation-delay:-.8s}.bath-foam-bubble:nth-child(4n){animation-delay:-1.4s}@keyframes bathFoamPop{to{transform:translate(var(--bubble-drift,4px),-5px) scale(1.08)}}
.bath-sponge{position:absolute;left:82%;top:74%;width:60px;height:52px;translate:-50% -50%;border:0;background:transparent;padding:0;z-index:10;touch-action:none;cursor:grab;filter:drop-shadow(0 7px 7px rgba(75,59,43,.18))}.bath-sponge:active,.bath-sponge.dragging{cursor:grabbing;scale:1.04}.bath-sponge>i{position:absolute;left:7px;top:5px;width:47px;height:33px;border-radius:13px 15px 12px 14px;background:linear-gradient(145deg,#ffd970,#e6b741);box-shadow:inset 6px 7px 0 rgba(255,246,181,.32),inset -5px -5px 0 rgba(183,133,39,.13)}.bath-sponge>i::before{content:"";position:absolute;left:9px;top:7px;width:5px;height:5px;border-radius:50%;background:rgba(164,119,37,.21);box-shadow:15px 3px 0 rgba(164,119,37,.18),28px -1px 0 rgba(164,119,37,.17),6px 13px 0 rgba(164,119,37,.16),23px 16px 0 rgba(164,119,37,.18)}.bath-sponge>b{position:absolute;right:1px;top:1px;width:19px;height:19px;border-radius:50%;background:rgba(235,251,255,.9);border:1px solid rgba(147,202,212,.40);box-shadow:-36px 24px 0 -4px rgba(235,251,255,.82),-7px 34px 0 -5px rgba(235,251,255,.86)}.bath-sponge>span{position:absolute;left:50%;bottom:-2px;translate:-50% 0;padding:3px 5px;border-radius:999px;background:rgba(66,59,50,.76);color:#fff;font-size:calc(7.3px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.08em;white-space:nowrap}.bath-sponge.done{opacity:.45;filter:grayscale(.2)}
.bath-step-badge{position:absolute;left:12px;top:12px;z-index:9;display:grid;grid-template-columns:34px minmax(0,1fr);gap:8px;align-items:center;padding:7px 9px;border-radius:16px;background:rgba(255,255,255,.84);backdrop-filter:blur(8px);box-shadow:0 8px 20px rgba(61,75,72,.09)}.bath-step-badge>span{width:34px;height:34px;border-radius:12px;display:grid;place-items:center;background:#e8f1eb;color:#63806b;font-size:calc(14px + var(--tp-text-extra,0px));font-weight:950}.bath-step-badge small{display:block;color:#87958b;font-size:calc(7.5px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.08em}.bath-step-badge strong{display:block;margin-top:2px;font-size:calc(9px + var(--tp-text-extra,0px));color:#504b46}
.interactive-bath-room.bath-complete .bath-pet-preview{animation:bathPetClean .65s ease-in-out 2}@keyframes bathPetClean{50%{transform:translateY(-4px) rotate(-1deg)}}

.interactive-bath-progress-card{margin-top:10px;padding:12px;border-radius:20px;background:linear-gradient(145deg,#fff,#f2f6f1);border:1px solid rgba(76,99,88,.09);box-shadow:0 9px 22px rgba(61,75,67,.06)}.interactive-bath-progress-copy{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.interactive-bath-progress-copy small{display:block;color:#76907c;font-size:calc(7.6px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.08em}.interactive-bath-progress-copy strong{display:block;margin-top:2px;font-size:calc(10.5px + var(--tp-text-extra,0px))}.interactive-bath-progress-copy>b{font-size:calc(13px + var(--tp-text-extra,0px));color:#64846d}.interactive-bath-progress{height:8px;margin-top:9px;border-radius:999px;background:rgba(82,108,91,.09);overflow:hidden}.interactive-bath-progress>i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#8fc9be,#71a986);transition:width .18s linear}.interactive-bath-progress-card>p{margin:7px 0 0;color:var(--muted);font-size:calc(8.5px + var(--tp-text-extra,0px));line-height:1.4;font-weight:700}
.interactive-bath-next{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:9px}.bath-next-step{display:grid;grid-template-columns:29px minmax(0,1fr) auto;gap:6px;align-items:center;padding:8px;border-radius:16px;background:#f3f3ef;border:1px solid rgba(77,83,76,.07)}.bath-next-step>span{width:29px;height:29px;border-radius:10px;display:grid;place-items:center;background:#fff;font-size:calc(15px + var(--tp-text-extra,0px))}.bath-next-step strong{display:block;font-size:calc(8.7px + var(--tp-text-extra,0px))}.bath-next-step small{display:block;margin-top:2px;color:var(--muted);font-size:calc(7.5px + var(--tp-text-extra,0px));line-height:1.2;font-weight:700}.bath-next-step>b{width:20px;height:20px;border-radius:8px;display:grid;place-items:center;background:#e9ece7;color:#7b857b;font-size:calc(8px + var(--tp-text-extra,0px))}.bath-next-step.active{background:#eef7ef;border-color:rgba(93,132,104,.14)}.bath-next-step.active>b{background:#72917a;color:#fff}.bath-next-step.locked{opacity:.58}.interactive-bath-home{width:100%;margin-top:9px;min-height:42px;font-size:calc(9.5px + var(--tp-text-extra,0px))}
@media(max-width:620px){.interactive-bath-sheet{width:100%;max-height:96dvh}.interactive-bath-room{height:390px;border-radius:24px}.bath-pet-choice{flex-basis:190px}.bath-wash-surface{inset:78px 7% 47px}.bath-pet-hitbox{width:168px;height:222px}.bath-tub{width:285px}.bath-window{width:84px;height:78px;right:5%}.bath-shelf{left:5%;scale:.9;transform-origin:left top}.bath-plant{left:3%;scale:.86;transform-origin:left bottom}.interactive-bath-next{grid-template-columns:1fr}.bath-next-step{grid-template-columns:29px minmax(0,1fr) auto}}
@media(max-width:390px){.interactive-bath-room{height:358px;border-radius:22px}.bath-window{width:70px;height:65px;border-width:6px}.bath-shelf{scale:.78}.bath-plant{display:none}.bath-tub{width:250px;height:106px;bottom:31px}.bath-wash-surface{inset:70px 3% 38px}.bath-pet-hitbox{width:154px;height:198px;bottom:17px}.bath-pet-preview .household-pet-preview{transform:translate(-50%,-50%) scale(calc(.49 * var(--bath-pet-scale,1)))!important}.bath-sponge{width:56px;height:49px}.bath-step-badge{left:8px;top:8px;scale:.9;transform-origin:left top}.bath-mat{width:210px}.interactive-bath-progress-card{padding:10px}.bath-pet-choice{flex-basis:178px}}
@media(prefers-reduced-motion:reduce){.bath-foam-bubble,.interactive-bath-room.bath-complete .bath-pet-preview{animation:none!important}.interactive-bath-progress>i{transition:none!important}}


/* =========================================================
   TinyPal v9.19 — BAGNETTO INTERATTIVO · FASE 2
   Doccietta, schiuma che sparisce, goccioline e asciugatura.
   ========================================================= */
.interactive-bath-room{overflow:hidden}
.bath-pet-hitbox{overflow:hidden}
.bath-foam-layer,.bath-water-layer,.bath-dry-layer{position:absolute;inset:25px 18px 27px;z-index:6;pointer-events:none}
.bath-foam-layer{transition:opacity .18s linear}
.bath-water-layer,.bath-dry-layer{transition:opacity .18s linear}
.bath-water-layer::before{content:"";position:absolute;inset:0;border-radius:45% 45% 42% 42%;background:radial-gradient(circle at 50% 20%,rgba(255,255,255,.14),rgba(255,255,255,0) 34%),linear-gradient(180deg,rgba(166,220,232,.18),rgba(132,193,209,.08));opacity:.75}
.bath-rinse-drop,.bath-water-drop{position:absolute;width:var(--drop-size,10px);height:calc(var(--drop-size,10px) * 1.35);translate:-50% -50%;border-radius:50% 50% 52% 52% / 42% 42% 58% 58%;background:linear-gradient(180deg,rgba(255,255,255,.95),rgba(154,215,230,.72));box-shadow:0 2px 4px rgba(99,157,174,.14);animation:bathDropFall .82s ease-out forwards}
.bath-water-drop{height:calc(var(--drop-size,10px) * 1.45);background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(179,223,235,.82));opacity:.95;animation:bathDropPulse 1.5s ease-in-out infinite}
@keyframes bathDropFall{0%{opacity:.95;transform:translateY(-7px) scale(.8)}100%{opacity:0;transform:translateY(10px) scale(1.08)}}
@keyframes bathDropPulse{0%,100%{transform:translateY(0)}50%{transform:translateY(2px)}}
.bath-shower,.bath-towel{position:absolute;border:0;background:transparent;padding:0;z-index:10;touch-action:none;cursor:grab;filter:drop-shadow(0 7px 7px rgba(75,59,43,.18))}
.bath-shower:active,.bath-shower.dragging,.bath-towel:active,.bath-towel.dragging{cursor:grabbing;scale:1.04}
.bath-shower{left:84%;top:37%;width:68px;height:74px;translate:-50% -50%}
.bath-shower>i{position:absolute;right:8px;top:0;width:14px;height:44px;border-radius:9px;background:linear-gradient(180deg,#bec7c9,#8b989c)}
.bath-shower>i::before{content:"";position:absolute;left:-16px;top:-3px;width:33px;height:16px;border-radius:10px;background:linear-gradient(180deg,#d7dddf,#aab5b9);box-shadow:inset 0 1px 0 rgba(255,255,255,.55)}
.bath-shower>b{position:absolute;left:14px;top:31px;width:32px;height:24px;border-radius:12px 12px 18px 18px;background:linear-gradient(180deg,#cad5d8,#9ba9ad)}
.bath-shower.dragging::after{content:"";position:absolute;left:30px;top:48px;width:18px;height:62px;border-radius:0 0 16px 16px;background:linear-gradient(180deg,rgba(188,235,244,.92),rgba(140,204,219,.18) 72%,rgba(140,204,219,0));filter:blur(.2px)}
.bath-shower>span,.bath-towel>span{position:absolute;left:50%;bottom:-2px;translate:-50% 0;padding:3px 5px;border-radius:999px;background:rgba(66,59,50,.76);color:#fff;font-size:calc(7.3px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.08em;white-space:nowrap}
.bath-towel{left:82%;top:74%;width:78px;height:57px;translate:-50% -50%}
.bath-towel>i{position:absolute;inset:7px 9px 12px;border-radius:18px 20px 16px 22px;background:linear-gradient(145deg,#ffddd8,#ecb6af);box-shadow:inset 5px 6px 0 rgba(255,243,241,.45), inset -5px -4px 0 rgba(193,112,105,.10)}
.bath-towel>i::before{content:"";position:absolute;inset:7px 9px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.22) 0 4px,rgba(255,255,255,0) 4px 8px);border-radius:inherit;opacity:.6}
.bath-towel>b{position:absolute;right:7px;top:5px;width:17px;height:17px;border-radius:50%;background:rgba(255,255,255,.72);box-shadow:-46px 17px 0 -6px rgba(255,255,255,.36)}
.bath-sponge.done,.bath-shower.done,.bath-towel.done{opacity:.45;filter:grayscale(.18)}
.bath-step-badge{z-index:11}
.bath-next-step.done{background:#edf7f0;border-color:rgba(95,132,104,.16)}
.bath-next-step.done>b{background:#79a182;color:#fff}
.interactive-bath-room.bath-phase-rinse .bath-pet-preview,.interactive-bath-room.bath-phase-dry .bath-pet-preview{filter:drop-shadow(0 7px 8px rgba(57,48,42,.18))}
.interactive-bath-room.bath-phase-dry .bath-pet-preview .household-pet-preview,.interactive-bath-room.bath-complete .bath-pet-preview .household-pet-preview{filter:drop-shadow(0 10px 8px rgba(57,48,42,.18)) saturate(1.02)!important}
.interactive-bath-room.bath-complete .bath-pet-preview .household-pet-preview{animation:bathPetFluff .7s ease-in-out 2}
@keyframes bathPetFluff{50%{transform:translate(-50%,-50%) scale(calc(.56 * var(--bath-pet-scale,1))) rotate(-1.3deg)!important}}
@media(max-width:620px){.bath-shower{width:62px;height:70px;left:84%;top:36%}.bath-towel{width:72px;height:54px}.bath-water-layer,.bath-dry-layer{inset:22px 14px 24px}}
@media(max-width:390px){.bath-shower{width:58px;height:66px;left:85%;top:35%}.bath-towel{width:68px;height:51px}.bath-shower>span,.bath-towel>span{font-size:calc(6.9px + var(--tp-text-extra,0px))}}
@media(prefers-reduced-motion:reduce){.bath-water-layer,.bath-dry-layer,.bath-foam-layer{transition:none!important}.bath-rinse-drop,.bath-water-drop,.interactive-bath-room.bath-complete .bath-pet-preview .household-pet-preview{animation:none!important}}


/* =========================================================
   TinyPal v9.20 — BAGNETTO INTERATTIVO · FASE 3
   Reazioni, phon delicato opzionale, audio visuale e finale fluffy.
   ========================================================= */
.bath-pet-reaction{position:absolute;left:50%;top:23%;translate:-50% 0;z-index:14;display:flex;align-items:center;gap:6px;max-width:210px;padding:7px 9px;border-radius:15px 15px 15px 5px;background:rgba(255,255,255,.94);border:1px solid rgba(90,79,68,.08);box-shadow:0 10px 22px rgba(65,53,43,.12);backdrop-filter:blur(8px);pointer-events:none;animation:bathReactionIn .22s ease-out both}
.bath-pet-reaction>span{width:27px;height:27px;border-radius:10px;display:grid;place-items:center;background:#f7f1e8;font-size:calc(14px + var(--tp-text-extra,0px));flex:0 0 auto}.bath-pet-reaction>strong{font-size:calc(9px + var(--tp-text-extra,0px));line-height:1.25;color:#504943}.bath-pet-reaction.happy>span{background:#fff3c9}.bath-pet-reaction.curious>span{background:#eaf5f6}.bath-pet-reaction.surprised>span{background:#eef2fa}.bath-pet-reaction.cozy>span{background:#f8ebeb}
@keyframes bathReactionIn{from{opacity:0;transform:translateY(5px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
.bath-dry-choice{margin-top:9px;padding:9px;border-radius:16px;background:linear-gradient(145deg,#f7f3ef,#eef3f0);border:1px solid rgba(82,88,80,.07)}.bath-dry-choice>small{display:block;margin-bottom:6px;color:#8a8078;font-size:calc(7.3px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.08em}.bath-dry-choice>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.bath-dry-choice button{min-height:36px;border:1px solid rgba(86,77,69,.08);border-radius:12px;background:#fff;color:#625b54;font:inherit;font-size:calc(8.4px + var(--tp-text-extra,0px));font-weight:900}.bath-dry-choice button.active{background:#edf6ef;border-color:rgba(102,141,111,.20);color:#55725d;box-shadow:0 0 0 2px rgba(111,151,120,.07)}
.bath-finish-summary{display:grid;grid-template-columns:40px minmax(0,1fr);gap:9px;align-items:center;margin-top:9px;padding:10px;border-radius:16px;background:linear-gradient(145deg,#fff8dd,#f2f6e9);border:1px solid rgba(142,124,71,.10);box-shadow:0 8px 18px rgba(77,61,42,.06)}.bath-finish-summary>span{width:40px;height:40px;border-radius:14px;display:grid;place-items:center;background:#fff;font-size:21px;box-shadow:0 6px 12px rgba(76,61,43,.06)}.bath-finish-summary small{display:block;color:#9a8460;font-size:calc(7.1px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.08em}.bath-finish-summary strong{display:block;margin-top:2px;font-size:calc(9.5px + var(--tp-text-extra,0px));color:#544b40}.bath-finish-summary p{margin:2px 0 0;color:#7c7369;font-size:calc(7.9px + var(--tp-text-extra,0px));line-height:1.35;font-weight:700}
.bath-dryer{position:absolute;left:17%;top:73%;width:76px;height:58px;translate:-50% -50%;border:0;background:transparent;padding:0;z-index:10;touch-action:none;cursor:grab;filter:drop-shadow(0 7px 7px rgba(75,59,43,.18))}.bath-dryer:active,.bath-dryer.dragging{cursor:grabbing;scale:1.04}.bath-dryer>i{position:absolute;left:12px;top:9px;width:45px;height:30px;border-radius:17px 12px 13px 17px;background:linear-gradient(145deg,#d6c7dd,#a995b5);box-shadow:inset 5px 5px 0 rgba(255,255,255,.25)}.bath-dryer>i::before{content:"";position:absolute;right:-15px;top:7px;width:20px;height:16px;border-radius:3px 11px 11px 3px;background:linear-gradient(180deg,#b4a4bf,#8f7d9b)}.bath-dryer>b{position:absolute;left:24px;top:34px;width:11px;height:20px;border-radius:4px 4px 9px 9px;background:#8e7a99;rotate:7deg}.bath-dryer>span{position:absolute;left:50%;bottom:-2px;translate:-50% 0;padding:3px 5px;border-radius:999px;background:rgba(66,59,50,.76);color:#fff;font-size:calc(7.3px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.08em;white-space:nowrap}.bath-dryer.dragging::after{content:"";position:absolute;right:-56px;top:12px;width:65px;height:33px;background:repeating-linear-gradient(0deg,transparent 0 7px,rgba(226,238,240,.65) 7px 9px,transparent 9px 14px);clip-path:polygon(0 30%,100% 0,100% 100%,0 70%);opacity:.82;animation:bathDryerAir .38s linear infinite;pointer-events:none}
@keyframes bathDryerAir{to{transform:translateX(7px);opacity:.35}}
.bath-sparkle-layer{position:absolute;inset:10px;z-index:9;pointer-events:none;overflow:visible}.bath-finish-spark{position:absolute;color:#f3c95e;font-size:calc(14px + var(--tp-text-extra,0px));opacity:0;text-shadow:0 2px 7px rgba(191,145,44,.18);animation:bathFinishSpark 1.35s ease-out var(--spark-delay,0s) both}.bath-finish-spark:nth-child(3n){color:#d8a7b3}.bath-finish-spark:nth-child(4n){color:#8fc4bb}.bath-sparkle-layer.settled .bath-finish-spark{animation-play-state:running}@keyframes bathFinishSpark{0%{opacity:0;transform:translateY(7px) scale(.5)}35%{opacity:1}100%{opacity:0;transform:translate(var(--spark-drift,8px),-24px) scale(1.15)}}
.bath-pet-preview.wet .household-pet-preview{filter:drop-shadow(0 10px 8px rgba(57,48,42,.18)) saturate(.93) brightness(.98)!important}.bath-pet-preview.wet::after{content:"";position:absolute;left:50%;top:40%;width:70px;height:105px;translate:-50% -50%;border-radius:50%;background:linear-gradient(115deg,rgba(255,255,255,.18),transparent 38%);pointer-events:none;z-index:3}.bath-pet-preview.fluffy .household-pet-preview{filter:drop-shadow(0 11px 9px rgba(57,48,42,.17)) saturate(1.04) brightness(1.015)!important}
.interactive-bath-room.bath-complete .bath-tub::before{background:linear-gradient(180deg,#cae7e7,#a6d2d4)}
.interactive-bath-room.bath-complete::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 49%,rgba(255,245,198,.18),rgba(255,245,198,0) 28%);z-index:1}
@media(max-width:620px){.bath-pet-reaction{top:22%;max-width:190px}.bath-dryer{width:70px;height:55px}.bath-dry-choice button{min-height:38px}}
@media(max-width:390px){.bath-pet-reaction{top:23%;max-width:168px;padding:6px 7px}.bath-pet-reaction>span{width:24px;height:24px;font-size:calc(13px + var(--tp-text-extra,0px))}.bath-pet-reaction>strong{font-size:calc(8.2px + var(--tp-text-extra,0px))}.bath-dryer{width:64px;height:50px;left:16%}.bath-dry-choice>div{grid-template-columns:1fr 1fr}.bath-dry-choice button{font-size:calc(7.8px + var(--tp-text-extra,0px))}}
@media(prefers-reduced-motion:reduce){.bath-pet-reaction,.bath-dryer.dragging::after,.bath-finish-spark{animation:none!important}}


/* =========================================================
   TinyPal v9.21 — BAGNETTO INTERATTIVO · FASE 4
   Temperatura, comfort, paperella e Bagnetto Perfetto.
   ========================================================= */
.bath-comfort-panel{display:grid;grid-template-columns:1.2fr 1fr auto;gap:8px;align-items:stretch;margin:9px 0 10px}
.bath-temperature-control,.bath-comfort-meter,.bath-duck-button{border:1px solid rgba(85,80,73,.08);border-radius:17px;background:linear-gradient(145deg,#fff,#f5f3ef);box-shadow:0 7px 17px rgba(67,55,44,.05)}
.bath-temperature-control,.bath-comfort-meter{padding:9px 10px}.bath-temperature-control>small,.bath-comfort-meter>small{display:block;color:#8c8279;font-size:calc(7.2px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.08em}.bath-temperature-control>div{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:6px}.bath-temperature-control button{min-width:0;border:1px solid rgba(94,82,72,.07);border-radius:11px;background:#f8f7f4;color:#655e57;padding:6px 4px;font:inherit}.bath-temperature-control button span{display:block;font-size:calc(13px + var(--tp-text-extra,0px))}.bath-temperature-control button b{display:block;margin-top:2px;font-size:calc(7.4px + var(--tp-text-extra,0px))}.bath-temperature-control button.active{background:#eef6f1;border-color:rgba(100,139,109,.20);color:#55715e;box-shadow:0 0 0 2px rgba(111,151,120,.06)}.bath-temperature-control button:disabled{opacity:.48}
.bath-comfort-meter strong{display:block;margin-top:3px;color:#5e695f;font-size:calc(9.5px + var(--tp-text-extra,0px))}.bath-comfort-meter>i{display:block;height:7px;margin-top:7px;border-radius:999px;overflow:hidden;background:rgba(80,91,82,.08)}.bath-comfort-meter>i>b{display:block;height:100%;width:var(--bath-comfort,86%);border-radius:inherit;background:linear-gradient(90deg,#d9b779,#82af8d,#76a98a);transition:width .25s ease}.bath-comfort-meter em{display:block;margin-top:5px;color:#8a8179;font-size:calc(7.2px + var(--tp-text-extra,0px));line-height:1.25;font-style:normal;font-weight:700}.bath-comfort-panel[data-tone="perfect"] .bath-comfort-meter{background:linear-gradient(145deg,#fffaf0,#f2f8e9);border-color:rgba(177,144,72,.13)}.bath-comfort-panel[data-tone="careful"] .bath-comfort-meter{background:linear-gradient(145deg,#fff9f2,#f6eee8)}
.bath-duck-button{min-width:92px;border:0;padding:8px;display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:6px;align-items:center;text-align:left;color:#655a4e}.bath-duck-button>span{width:28px;height:28px;border-radius:11px;display:grid;place-items:center;background:#fff5c8;font-size:calc(16px + var(--tp-text-extra,0px));box-shadow:inset 0 0 0 1px rgba(163,132,62,.07)}.bath-duck-button small{display:block;color:#a18d64;font-size:calc(7.1px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.07em}.bath-duck-button strong{display:block;margin-top:2px;font-size:calc(8.4px + var(--tp-text-extra,0px))}.bath-duck-button>b{width:20px;height:20px;border-radius:8px;display:grid;place-items:center;background:#f5ecd3;color:#887042;font-size:calc(9px + var(--tp-text-extra,0px))}.bath-duck-button.used{background:linear-gradient(145deg,#fff8d9,#edf5e9);opacity:.8}.bath-duck-button.used>span{animation:bathDuckHappy .7s ease-in-out 2}@keyframes bathDuckHappy{50%{transform:rotate(-12deg) translateY(-2px)}}
.interactive-bath-room.bath-temp-cool .bath-tub::before{background:linear-gradient(180deg,#b9e2eb,#84c4d2)}.interactive-bath-room.bath-temp-warm .bath-tub::before{background:linear-gradient(180deg,#c4e2df,#93cac9)}.interactive-bath-room.bath-temp-cozy .bath-tub::before{background:linear-gradient(180deg,#d3dfd9,#a8c9c1)}
.interactive-bath-room.bath-temp-warm .bath-tub::after,.interactive-bath-room.bath-temp-cozy .bath-tub::after{content:"";position:absolute;left:50%;top:-22px;width:88px;height:34px;translate:-50% 0;background:radial-gradient(ellipse at 26% 70%,rgba(255,255,255,.42),transparent 30%),radial-gradient(ellipse at 58% 55%,rgba(255,255,255,.35),transparent 31%),radial-gradient(ellipse at 78% 75%,rgba(255,255,255,.28),transparent 26%);filter:blur(3px);opacity:.55;animation:bathSteam 2.6s ease-in-out infinite;pointer-events:none}@keyframes bathSteam{50%{transform:translateY(-5px) scaleX(1.08);opacity:.28}}
.bath-finish-summary[data-quality="perfect"]{background:linear-gradient(145deg,#fff4be,#eef7d9);border-color:rgba(198,157,61,.22);box-shadow:0 9px 22px rgba(154,120,41,.10)}.bath-finish-summary[data-quality="perfect"]>span{background:#fff8d8;animation:bathPerfectSpark 1s ease-in-out infinite alternate}@keyframes bathPerfectSpark{to{transform:scale(1.09) rotate(4deg)}}.bath-finish-summary[data-quality="cozy"]{background:linear-gradient(145deg,#fff8e8,#eef6eb)}
@media(max-width:620px){.bath-comfort-panel{grid-template-columns:1fr 1fr}.bath-duck-button{grid-column:1/-1;min-width:0}.bath-duck-button>span{width:32px;height:32px}.bath-temperature-control button{min-height:38px}.bath-comfort-meter em{font-size:calc(7.5px + var(--tp-text-extra,0px))}}
@media(max-width:390px){.bath-comfort-panel{grid-template-columns:1fr}.bath-duck-button{grid-column:auto}.bath-temperature-control,.bath-comfort-meter{padding:8px}.bath-temperature-control button span{font-size:calc(12px + var(--tp-text-extra,0px))}.bath-temperature-control button b{font-size:calc(7.5px + var(--tp-text-extra,0px))}}
@media(prefers-reduced-motion:reduce){.bath-comfort-meter>i>b,.bath-duck-button.used>span,.interactive-bath-room.bath-temp-warm .bath-tub::after,.interactive-bath-room.bath-temp-cozy .bath-tub::after,.bath-finish-summary[data-quality="perfect"]>span{animation:none!important;transition:none!important}}


/* =========================================================
   TinyPal v9.22 — CUCINA & SNACK TOUCH
   Nuova dispensa, ricette e gesto touch per i premietti.
   ========================================================= */
.interactive-snack-sheet{width:min(760px,calc(100vw - 20px));max-height:94dvh;overflow:auto;background:linear-gradient(180deg,#fffdf9,#f8f3ea)}
.interactive-snack-head{padding-bottom:8px}
.interactive-snack-selector{display:flex;gap:8px;overflow:auto;padding:2px 1px 8px;scrollbar-width:none}.interactive-snack-selector::-webkit-scrollbar{display:none}.interactive-snack-selector.hidden{display:none!important}
.snack-pet-choice{flex:1 0 190px;min-width:0;display:grid;grid-template-columns:48px minmax(0,1fr) 25px;gap:9px;align-items:center;padding:8px;border:1px solid rgba(96,76,57,.08);border-radius:18px;background:#fffaf4;text-align:left;color:inherit}.snack-pet-choice.active{background:#f0f7ed;border-color:rgba(105,144,103,.22);box-shadow:0 8px 18px rgba(70,72,57,.07)}.snack-pet-choice>span{width:48px;height:48px;border-radius:15px;background:#eee7dc;position:relative;overflow:hidden;display:block}.snack-pet-choice .household-pet-preview{position:absolute!important;left:50%!important;top:55%!important;transform:translate(-50%,-50%) scale(.16)!important}.snack-pet-choice small{display:block;font-size:calc(7.5px + var(--tp-text-extra,0px));color:#8b8178;font-weight:950;letter-spacing:.08em}.snack-pet-choice strong{display:block;margin-top:2px;font-size:calc(9.5px + var(--tp-text-extra,0px))}.snack-pet-choice>b{width:24px;height:24px;border-radius:9px;background:#ece7df;display:grid;place-items:center;font-size:calc(9px + var(--tp-text-extra,0px))}.snack-pet-choice.active>b{background:#789c78;color:#fff}
.interactive-snack-stage{position:relative;height:390px;border-radius:28px;overflow:hidden;background:linear-gradient(180deg,#dce9df 0 59%,#d7b995 59% 100%);border:1px solid rgba(83,71,58,.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 14px 30px rgba(73,57,43,.07);touch-action:none}
.snack-stage-wall{position:absolute;inset:0 0 41%;background:linear-gradient(180deg,#e9f2e9,#d8e6da);pointer-events:none}.snack-stage-wall::after{content:"";position:absolute;left:0;right:0;bottom:0;height:10px;background:#c3a787;box-shadow:0 4px 8px rgba(73,55,40,.09)}.snack-stage-wall>i{position:absolute;right:9%;top:13%;width:96px;height:78px;border-radius:18px;background:linear-gradient(180deg,#b8d7e4,#eaf5f4);border:7px solid #f6eee3;box-shadow:0 8px 16px rgba(78,62,46,.09)}.snack-stage-wall>b{position:absolute;left:8%;top:18%;width:82px;height:42px;border-radius:18px 18px 8px 8px;background:linear-gradient(145deg,#efcfa5,#d7ae7c);box-shadow:0 7px 14px rgba(73,55,40,.08)}
.snack-stage-floor{position:absolute;left:0;right:0;bottom:0;height:43%;background:repeating-linear-gradient(90deg,rgba(255,255,255,.08) 0 44px,rgba(121,91,65,.045) 44px 46px),linear-gradient(180deg,#dfc4a3,#cba77f);pointer-events:none}
.snack-stage-pet{position:absolute;left:50%;bottom:28px;width:200px;height:265px;translate:-50% 0;z-index:4}.snack-stage-pet::after{content:"";position:absolute;left:50%;bottom:10px;width:105px;height:22px;translate:-50% 0;border-radius:50%;background:radial-gradient(ellipse,rgba(67,51,39,.17),rgba(67,51,39,0) 72%);z-index:-1}.snack-stage-pet>#snackStagePetPreview{position:absolute;inset:0;display:grid;place-items:center}.snack-stage-pet .household-pet-preview{position:absolute!important;left:50%!important;top:58%!important;transform:translate(-50%,-50%) scale(calc(.58 * var(--snack-pet-scale,1)))!important;filter:drop-shadow(0 10px 8px rgba(57,48,42,.18))!important}
.snack-mouth-target{position:absolute;left:50%;top:43%;width:94px;height:74px;translate:-50% -50%;border:2px dashed rgba(120,91,67,.30);border-radius:50%;display:grid;place-items:center;align-content:center;gap:2px;color:#856f5f;background:rgba(255,255,255,.13);opacity:.58;transition:.15s ease;z-index:6;pointer-events:none}.snack-mouth-target span{font-size:calc(17px + var(--tp-text-extra,0px));line-height:1}.snack-mouth-target small{font-size:calc(7.2px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.08em}.snack-mouth-target.ready{opacity:1;scale:1.08;border-color:#86ad7c;background:rgba(238,250,232,.72);color:#66825e;box-shadow:0 0 0 7px rgba(129,167,119,.08)}
.snack-drag-item{position:absolute;left:16%;top:76%;width:88px;height:92px;translate:-50% -50%;border:0;border-radius:26px;background:linear-gradient(145deg,#fff9e9,#f3e1bf);box-shadow:0 13px 25px rgba(72,55,39,.16),inset 0 1px 0 #fff;z-index:12;touch-action:none;cursor:grab;color:#5c5147}.snack-drag-item>span{display:block;font-size:33px;line-height:1}.snack-drag-item>strong{display:block;margin-top:5px;padding:0 7px;font-size:calc(8.4px + var(--tp-text-extra,0px));line-height:1.1}.snack-drag-item>small{display:block;margin-top:4px;color:#8a7b6d;font-size:calc(7.1px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.1em}.snack-drag-item.dragging{cursor:grabbing;scale:1.08;box-shadow:0 18px 30px rgba(72,55,39,.19)}.snack-drag-item.delivered{opacity:0;scale:.7;pointer-events:none;transition:.25s ease}
.snack-stage-reaction{position:absolute;left:50%;top:12%;translate:-50% 0;z-index:15;display:flex;align-items:center;gap:7px;padding:8px 11px;border-radius:18px;background:rgba(255,255,255,.92);box-shadow:0 8px 18px rgba(69,54,42,.12);animation:snackReactionPop .5s ease}.snack-stage-reaction>span{font-size:calc(18px + var(--tp-text-extra,0px))}.snack-stage-reaction>strong{font-size:calc(9.5px + var(--tp-text-extra,0px))}.snack-stage-reaction.hidden{display:none!important}@keyframes snackReactionPop{0%{opacity:0;transform:translateY(7px) scale(.88)}100%{opacity:1;transform:none}}
.snack-stage-pet.eating{animation:snackPetNibble .42s ease-in-out 3}@keyframes snackPetNibble{50%{transform:translateY(-3px) rotate(-1deg)}}
.snack-crumb-layer{position:absolute;inset:0;z-index:13;pointer-events:none}.snack-crumb{position:absolute;width:7px;height:7px;border-radius:50%;background:#d4a35e;animation:snackCrumbFall .65s ease-out forwards}@keyframes snackCrumbFall{to{opacity:0;transform:translate(var(--crumb-x,10px),var(--crumb-y,38px)) rotate(110deg)}}
.interactive-snack-info{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;padding:12px 14px;border-radius:20px;background:#fffaf3;border:1px solid rgba(91,72,54,.08)}.interactive-snack-info small{display:block;color:#928477;font-size:calc(7.5px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.09em}.interactive-snack-info strong{display:block;margin-top:2px;font-size:calc(10.5px + var(--tp-text-extra,0px))}.interactive-snack-info p{margin:4px 0 0;color:var(--muted);font-size:calc(8.2px + var(--tp-text-extra,0px));line-height:1.35;font-weight:650}.interactive-snack-info>b{min-width:48px;height:36px;border-radius:13px;display:grid;place-items:center;background:#f0eadf;color:#725f4d;font-size:calc(10.5px + var(--tp-text-extra,0px))}
.interactive-snack-hint{display:flex;gap:9px;align-items:flex-start;margin-top:8px;padding:9px 11px;border-radius:16px;background:#eef5eb;color:#61715e}.interactive-snack-hint>span{font-size:calc(17px + var(--tp-text-extra,0px))}.interactive-snack-hint p{margin:1px 0 0;font-size:calc(8px + var(--tp-text-extra,0px));line-height:1.4;font-weight:750}.interactive-snack-done{width:100%;margin-top:9px;min-height:43px}

.kitchen-overview-card{grid-column:1/-1;padding:14px;border-radius:22px;background:linear-gradient(145deg,#fffaf0,#f2eadc);border:1px solid rgba(100,75,52,.08);box-shadow:0 10px 22px rgba(74,57,42,.06)}.kitchen-overview-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.kitchen-overview-head small{display:block;color:#987e67;font-size:calc(7.2px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.09em}.kitchen-overview-head strong{display:block;margin-top:2px;font-size:calc(11.5px + var(--tp-text-extra,0px))}.kitchen-overview-head>span{font-size:26px}.kitchen-overview-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:11px}.kitchen-overview-stat{padding:9px 7px;border-radius:15px;background:rgba(255,255,255,.73);text-align:center}.kitchen-overview-stat strong{display:block;font-size:calc(11.5px + var(--tp-text-extra,0px))}.kitchen-overview-stat small{display:block;margin-top:2px;color:var(--muted);font-size:calc(7.2px + var(--tp-text-extra,0px));font-weight:700}.kitchen-overview-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:9px}.kitchen-overview-actions button{border:0;border-radius:14px;padding:9px;background:#e8eee2;color:#5d725c;font-size:calc(8.5px + var(--tp-text-extra,0px));font-weight:900}.kitchen-recipe-card{background:linear-gradient(145deg,#fffdf8,#f7efe4)!important}.snack-pantry-card{background:linear-gradient(145deg,#fffaf0,#f5ead5)!important}.snack-pantry-card.missing-snack{opacity:.72}.food-action-card.foodSnack{background:linear-gradient(145deg,#fff8e7,#f5e5c5);border-color:rgba(190,142,74,.14)}

@media(max-width:620px){.interactive-snack-sheet{width:100%;max-height:96dvh}.interactive-snack-stage{height:370px;border-radius:24px}.snack-stage-pet{width:184px;height:245px;bottom:23px}.snack-mouth-target{width:100px;height:80px}.snack-drag-item{width:82px;height:86px}.kitchen-overview-card{padding:12px}}
@media(max-width:390px){.interactive-snack-stage{height:340px;border-radius:22px}.snack-stage-wall>i{width:75px;height:63px;right:4%}.snack-stage-wall>b{left:3%;width:68px}.snack-stage-pet{width:165px;height:220px;bottom:18px}.snack-stage-pet .household-pet-preview{transform:translate(-50%,-50%) scale(calc(.52 * var(--snack-pet-scale,1)))!important}.snack-drag-item{width:76px;height:80px;left:15%;top:78%}.snack-drag-item>span{font-size:29px}.snack-mouth-target{width:98px;height:80px;top:43%}.kitchen-overview-stats{gap:5px}.kitchen-overview-actions{grid-template-columns:1fr}.interactive-snack-info{padding:10px}}
@media(prefers-reduced-motion:reduce){.snack-stage-reaction,.snack-stage-pet.eating,.snack-crumb{animation:none!important}.snack-mouth-target,.snack-drag-item{transition:none!important}}

/* v9.22 kitchen overview selector alignment */
.kitchen-overview-head p{margin:4px 0 0;color:var(--muted);font-size:calc(8px + var(--tp-text-extra,0px));line-height:1.35;font-weight:650}.kitchen-overview-stats>div{padding:9px 7px;border-radius:15px;background:rgba(255,255,255,.73);text-align:center}.kitchen-overview-stats>div>span{display:block;font-size:calc(16px + var(--tp-text-extra,0px))}.kitchen-overview-stats>div>strong{display:block;margin-top:2px;font-size:calc(11.5px + var(--tp-text-extra,0px))}.kitchen-overview-stats>div>small{display:block;margin-top:2px;color:var(--muted);font-size:calc(7.2px + var(--tp-text-extra,0px));font-weight:700}


/* =========================================================
   TinyPal v9.23 — INSTALLAZIONE GUIDATA
   ========================================================= */
.install-home-card{display:grid;grid-template-columns:54px minmax(0,1fr) auto;gap:12px;align-items:center;margin:10px 0 14px;padding:13px 14px;border-radius:24px;background:linear-gradient(135deg,#f7f2ff,#eef7f0 54%,#fff5e9);border:1px solid rgba(104,88,130,.10);box-shadow:0 12px 28px rgba(70,55,75,.07);position:relative;overflow:hidden}
.install-home-card::after{content:"";position:absolute;right:-30px;top:-40px;width:110px;height:110px;border-radius:50%;background:radial-gradient(circle,rgba(137,113,183,.12),rgba(137,113,183,0) 70%);pointer-events:none}
.install-home-icon{width:54px;height:54px;border-radius:18px;background:linear-gradient(145deg,#8772b5,#6d9a7a);display:grid;place-items:center;position:relative;box-shadow:0 8px 18px rgba(89,72,125,.16)}
.install-home-icon>span{font-size:26px;filter:drop-shadow(0 2px 2px rgba(0,0,0,.10))}.install-home-icon>i{position:absolute;inset:5px;border:1px solid rgba(255,255,255,.25);border-radius:14px}
.install-home-copy{min-width:0}.install-home-copy small{display:block;color:#7b6b91;font-size:calc(8px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.1em}.install-home-copy strong{display:block;margin-top:3px;font-size:calc(12px + var(--tp-text-extra,0px));color:#453f49}.install-home-copy p{margin:3px 0 0;color:#7b747e;font-size:calc(9px + var(--tp-text-extra,0px));line-height:1.35;font-weight:700}
.install-home-actions{display:flex;align-items:center;gap:6px;z-index:1}.install-home-primary{min-height:36px;padding:0 11px;border:0;border-radius:13px;background:#3e3a42;color:#fff;font-size:calc(9px + var(--tp-text-extra,0px));font-weight:950;box-shadow:0 7px 15px rgba(54,48,61,.15)}.install-home-dismiss{width:30px;height:30px;border:0;border-radius:11px;background:rgba(255,255,255,.72);color:#7f7882;font-size:calc(11.5px + var(--tp-text-extra,0px));font-weight:900}
.install-app-sheet{width:min(620px,calc(100% - 20px));max-height:93dvh;overflow:auto}
.install-app-head p{margin:4px 0 0;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));font-weight:700}
.install-app-hero{display:grid;grid-template-columns:62px minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px;border-radius:22px;background:linear-gradient(145deg,#f6f0ff,#eef6ef);border:1px solid rgba(95,81,120,.09);box-shadow:0 10px 24px rgba(64,53,78,.06)}
.install-app-mark{width:62px;height:62px;border-radius:20px;display:grid;place-items:center;background:linear-gradient(145deg,#806aad,#769b7d);box-shadow:0 10px 20px rgba(83,68,112,.16);position:relative}.install-app-mark::after{content:"↓";position:absolute;right:-4px;bottom:-3px;width:22px;height:22px;border-radius:8px;display:grid;place-items:center;background:#fff;color:#6d5f85;font-size:calc(13px + var(--tp-text-extra,0px));font-weight:950;box-shadow:0 4px 10px rgba(68,56,81,.13)}.install-app-mark span{font-size:30px}
.install-app-hero small{display:block;color:#7c6b91;font-size:calc(7.8px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.08em}.install-app-hero strong{display:block;margin-top:3px;font-size:calc(12px + var(--tp-text-extra,0px))}.install-app-hero p{margin:4px 0 0;color:var(--muted);font-size:calc(8.8px + var(--tp-text-extra,0px));line-height:1.4;font-weight:700}.install-app-hero>b{align-self:start;padding:6px 8px;border-radius:999px;background:#e7efe8;color:#63806b;font-size:calc(7.5px + var(--tp-text-extra,0px));letter-spacing:.08em}.install-app-hero>b.installed{background:#dff1e4;color:#4e7659}
.install-app-content{margin-top:10px}.install-benefits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.install-benefits>span{display:block;padding:10px;border-radius:16px;background:#fffdf9;border:1px solid rgba(86,72,99,.07)}.install-benefits b{display:block;margin-top:3px;font-size:calc(9px + var(--tp-text-extra,0px))}.install-benefits small{display:block;margin-top:2px;color:var(--muted);font-size:calc(7.6px + var(--tp-text-extra,0px));line-height:1.25;font-weight:700}
.install-step-list{display:grid;gap:7px;margin-top:9px}.install-step{display:grid;grid-template-columns:28px 38px minmax(0,1fr);gap:8px;align-items:center;padding:9px;border-radius:17px;background:#fbfaf7;border:1px solid rgba(80,69,88,.07)}.install-step>b{width:28px;height:28px;border-radius:10px;display:grid;place-items:center;background:#ede8f4;color:#746486;font-size:calc(9px + var(--tp-text-extra,0px))}.install-step>span{width:38px;height:38px;border-radius:12px;background:#fff;display:grid;place-items:center;font-size:calc(18px + var(--tp-text-extra,0px));box-shadow:0 4px 10px rgba(70,60,75,.05)}.install-step strong{display:block;font-size:calc(9px + var(--tp-text-extra,0px))}.install-step p{margin:2px 0 0;color:var(--muted);font-size:calc(8px + var(--tp-text-extra,0px));line-height:1.35;font-weight:700}
.install-app-primary{width:100%;margin-top:10px;min-height:44px}.install-app-secondary{width:100%;min-height:36px;margin-top:6px;border:0;border-radius:14px;background:#f0eeeb;color:#726d69;font-size:calc(9px + var(--tp-text-extra,0px));font-weight:900}.install-app-note{margin:8px 6px 0;text-align:center;color:var(--muted);font-size:calc(7.8px + var(--tp-text-extra,0px));line-height:1.35;font-weight:700}
.install-success-card{display:grid;grid-template-columns:42px minmax(0,1fr);gap:10px;align-items:center;padding:12px;border-radius:18px;background:#eef7ef;border:1px solid rgba(82,127,93,.11)}.install-success-card>span{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:#78a081;color:#fff;font-size:calc(19px + var(--tp-text-extra,0px));font-weight:950}.install-success-card strong{display:block;font-size:calc(9.5px + var(--tp-text-extra,0px))}.install-success-card p{margin:3px 0 0;color:var(--muted);font-size:calc(8.3px + var(--tp-text-extra,0px));line-height:1.4;font-weight:700}
@media(max-width:620px){.install-home-card{grid-template-columns:48px minmax(0,1fr);padding:12px}.install-home-icon{width:48px;height:48px}.install-home-actions{grid-column:1/-1}.install-home-primary{flex:1}.install-home-dismiss{width:34px}.install-app-sheet{width:100%;max-height:96dvh}.install-app-hero{grid-template-columns:54px minmax(0,1fr);}.install-app-mark{width:54px;height:54px}.install-app-hero>b{grid-column:2;justify-self:start;margin-top:-7px}.install-benefits{grid-template-columns:1fr}.install-step{grid-template-columns:26px 34px minmax(0,1fr)}}
@media(max-width:390px){.install-home-card{border-radius:20px}.install-app-hero{padding:11px}.install-step{padding:8px}}


/* =========================================================
   TinyPal v9.25 — MONDO VIVO · METEO REALE FASE 1
   ========================================================= */
.weather-home-live{margin-left:auto!important;border-left:1px solid rgba(80,70,60,.08);padding-left:8px!important;font-weight:900!important}
.weather-home-live[data-status="live"]{color:#4d8061!important}.weather-home-live[data-status="cached"]{color:#a0723b!important}
.weather-live-world-status{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:9px;align-items:center;margin-top:10px;padding:10px 11px;border-radius:16px;background:linear-gradient(145deg,#eef6f1,#f8f7f2);border:1px solid rgba(83,116,91,.11)}
.weather-live-world-status>span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#fff;color:#7e9884;font-size:calc(11.5px + var(--tp-text-extra,0px));box-shadow:0 4px 12px rgba(64,82,67,.08)}
.weather-live-world-status>span[data-status="live"]{color:#4d9a68;box-shadow:0 0 0 5px rgba(77,154,104,.08)}.weather-live-world-status>span[data-status="cached"]{color:#b17e3d}
.weather-live-world-status small{display:block;color:var(--muted);font-size:calc(7.5px + var(--tp-text-extra,0px));letter-spacing:.12em;font-weight:950}.weather-live-world-status strong{display:block;margin-top:2px;font-size:calc(11px + var(--tp-text-extra,0px))}.weather-live-world-status p{margin-top:2px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));line-height:1.35;font-weight:650}.weather-live-world-status>b{font-size:calc(8px + var(--tp-text-extra,0px));letter-spacing:.06em;color:var(--muted);white-space:nowrap}
.weather-location-actions{grid-template-columns:repeat(3,minmax(0,1fr))!important}.weather-simulated-toggle{background:#f6f1e8!important;color:#736755!important}
.weather-source-badge[data-status="cached"]{background:#fff2dd!important;color:#8d6534!important}
.weather-detail-stats-live{grid-template-columns:repeat(5,minmax(0,1fr))}

/* Pioggia/neve cambiano davvero anche il terreno dei lotti e della mappa. */
.city-weather-layer::after,.city-map-weather-layer::after,.walk-weather-layer::after{content:"";position:absolute;left:0;right:0;bottom:0;height:34%;pointer-events:none;opacity:0;transition:opacity .8s ease}
.city-weather-layer.weather-rain::after,.city-weather-layer.weather-storm::after,.city-map-weather-layer.weather-rain::after,.city-map-weather-layer.weather-storm::after,.walk-weather-layer.weather-rain::after,.walk-weather-layer.weather-storm::after{opacity:.72;background:radial-gradient(ellipse at 18% 72%,rgba(170,207,218,.34) 0 7%,transparent 8%),radial-gradient(ellipse at 68% 82%,rgba(159,199,214,.30) 0 9%,transparent 10%),linear-gradient(180deg,transparent,rgba(87,119,129,.10))}
.city-weather-layer.weather-snow::after,.city-map-weather-layer.weather-snow::after,.walk-weather-layer.weather-snow::after{opacity:.78;background:linear-gradient(180deg,rgba(255,255,255,0),rgba(247,250,249,.70) 42%,rgba(248,251,250,.88))}
.city-weather-layer.weather-storm::before,.city-map-weather-layer.weather-storm::before,.walk-weather-layer.weather-storm::before{content:"";position:absolute;inset:0;background:rgba(240,248,255,0);animation:liveWorldLightning 7.4s infinite;pointer-events:none}
@keyframes liveWorldLightning{0%,82%,85%,100%{background:rgba(240,248,255,0)}83%{background:rgba(240,248,255,.34)}84%{background:rgba(240,248,255,.08)}}
.weather-windy i{position:absolute;left:-12%;top:var(--y);width:12px;height:6px;border-radius:80% 0 80% 0;background:#b78b56;opacity:.65;transform:rotate(var(--r));animation:liveWorldWind 3.3s linear infinite;animation-delay:var(--d)}
.weather-windy i:nth-child(3n){background:#879e62}.weather-windy i:nth-child(4n){background:#c2a36a}
@keyframes liveWorldWind{to{transform:translate(125vw,36px) rotate(520deg)}}
.weather-rain i,.weather-storm i,.weather-snow i{scale:var(--s,1)}

/* Cielo più credibile anche senza particelle. */
.city-location-scene:has(.city-weather-layer.weather-cloudy) .city-location-sky,.city-location-scene:has(.city-weather-layer.weather-rain) .city-location-sky{filter:saturate(.70) brightness(.86)}
.city-location-scene:has(.city-weather-layer.weather-storm) .city-location-sky{filter:saturate(.56) brightness(.65)}
.city-location-scene:has(.city-weather-layer.weather-windy) .location-tree,.city-location-scene:has(.city-weather-layer.weather-windy) .park-tree,.city-location-scene:has(.city-weather-layer.weather-windy) .lake-tree-small{animation:liveWorldTreeWind 1.15s ease-in-out infinite alternate;transform-origin:50% 100%}
@keyframes liveWorldTreeWind{to{transform:rotate(1.8deg)}}
.room.weather-cloudy .room-window::after{content:"";position:absolute;inset:8px;background:linear-gradient(180deg,rgba(143,160,169,.18),rgba(224,229,226,.11));pointer-events:none}
.room.weather-windy .room-curtain,.room.weather-windy .window-curtain{animation:liveWorldCurtain 1.45s ease-in-out infinite alternate;transform-origin:top center}
@keyframes liveWorldCurtain{to{transform:skewX(-2.5deg) translateX(2px)}}

html[data-weather-source="cached"] .weather-home-card{box-shadow:inset 0 0 0 1px rgba(177,126,61,.08)}
@media(max-width:620px){.weather-location-actions{grid-template-columns:1fr 1fr!important}.weather-simulated-toggle{grid-column:1/-1}.weather-detail-stats-live{grid-template-columns:repeat(3,1fr)}.weather-detail-stats-live>div:nth-child(4),.weather-detail-stats-live>div:nth-child(5){grid-column:auto}.weather-live-world-status{grid-template-columns:25px minmax(0,1fr)}.weather-live-world-status>b{grid-column:2}}
@media(max-width:390px){.weather-detail-stats-live{grid-template-columns:repeat(2,1fr)}.weather-detail-stats-live>div:last-child{grid-column:1/-1}.weather-home-live{width:100%;margin-left:0!important;border-left:0;padding-left:0!important}}
@media(prefers-reduced-motion:reduce){.weather-windy i,.city-weather-layer.weather-storm::before,.city-map-weather-layer.weather-storm::before,.walk-weather-layer.weather-storm::before,.city-location-scene:has(.city-weather-layer.weather-windy) .location-tree,.city-location-scene:has(.city-weather-layer.weather-windy) .park-tree,.city-location-scene:has(.city-weather-layer.weather-windy) .lake-tree-small,.room.weather-windy .room-curtain,.room.weather-windy .window-curtain{animation:none!important}}


/* =========================================================
   TinyPal v9.26 — LEGGIBILITÀ TESTO
   Testi piccoli rialzati di default + modalità Testo grande.
   ========================================================= */
:root{--tp-text-extra:0px}
html[data-text-size="large"]{--tp-text-extra:1.5px}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body,button,input,select,textarea{font-synthesis-weight:none}
.bottom-sheet p,.bottom-sheet small,.bottom-sheet em,.sheet-grid p,.sheet-grid small,.settings-row-copy small,.settings-section-head small,.game-guide-section-body,.game-guide-section-body p{line-height:1.42}
.settings-row,.sheet-card,.home-card,.action-card{overflow:visible}
.settings-row-copy,.update-copy,.mission-copy,.profile-hero>div,.health-sheet-hero>div{min-width:0}
html[data-text-size="large"] .settings-row,html[data-text-size="large"] .sheet-grid>button,html[data-text-size="large"] .action-card{min-height:56px}
html[data-text-size="large"] .dock{min-height:86px}
html[data-text-size="large"] .dock-item{gap:5px}
@media(max-width:390px){html[data-text-size="large"]{--tp-text-extra:1.25px}.settings-row{padding-block:12px}.sheet-grid{gap:10px}}


/* =========================================================
   TinyPal v9.27 — MONDO VIVO · METEO REALE FASE 2
   Reazioni fisiche: pelo bagnato, neve, impronte, ombra, tuoni.
   ========================================================= */
.weather-pet-state-card{display:grid;grid-template-columns:44px minmax(0,1fr);gap:11px;align-items:start;margin-top:10px;padding:12px;border-radius:19px;background:linear-gradient(145deg,#f5f4ef,#edf3ef);border:1px solid rgba(74,101,82,.10);box-shadow:0 7px 18px rgba(55,70,58,.04)}
.weather-pet-state-card[data-state="wet"]{background:linear-gradient(145deg,#eef4f6,#e7f0f3)}.weather-pet-state-card[data-state="soaked"]{background:linear-gradient(145deg,#e5eff4,#dce9ef)}.weather-pet-state-card[data-state="snow"]{background:linear-gradient(145deg,#f6fafb,#edf4f6)}
.weather-pet-state-icon{width:44px;height:44px;border-radius:15px;display:grid;place-items:center;background:rgba(255,255,255,.82);font-size:calc(21px + var(--tp-text-extra,0px));box-shadow:0 5px 14px rgba(61,77,67,.07)}
.weather-pet-state-copy small{display:block;color:#708074;font-size:calc(8px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.10em}.weather-pet-state-copy strong{display:block;margin-top:3px;font-size:calc(12px + var(--tp-text-extra,0px))}.weather-pet-state-copy p{margin:3px 0 0;color:var(--muted);font-size:calc(10px + var(--tp-text-extra,0px));line-height:1.36;font-weight:680}
.weather-pet-state-copy i{display:block;height:5px;margin-top:8px;border-radius:999px;background:rgba(88,110,94,.10);overflow:hidden}.weather-pet-state-copy i b{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#9ab9b0,#79a9b8);transition:width .45s ease}.weather-pet-state-copy em{display:block;margin-top:6px;color:#7a756e;font-style:normal;font-size:calc(9px + var(--tp-text-extra,0px));font-weight:720}
/* Pelo bagnato: nessun cambio di geometria del TinyPal, solo finitura e gocce. */
.pet.weather-pet-wet .body,.pet.weather-pet-wet .head{filter:saturate(.82) brightness(.94);box-shadow:inset 0 -5px 9px rgba(53,90,105,.10)}
.pet.weather-pet-wet .head::after{content:"";position:absolute;right:8%;top:15%;width:5px;height:9px;border-radius:70% 70% 70% 25%;background:rgba(191,225,239,.82);transform:rotate(12deg);box-shadow:-24px 15px 0 -1px rgba(191,225,239,.66);pointer-events:none}
.pet.weather-pet-soaked .body,.pet.weather-pet-soaked .head{filter:saturate(.72) brightness(.90)}
.pet.weather-pet-snow .body::after{content:"❄";position:absolute;left:18%;top:8%;font-size:8px;color:rgba(255,255,255,.95);text-shadow:22px 11px 0 rgba(255,255,255,.92),40px -3px 0 rgba(255,255,255,.88);pointer-events:none}
.pet.weather-pet-hot .mouth{transform:translateY(1px) scaleY(1.18)}.pet.weather-pet-cold .body{filter:saturate(.88)}
/* Scrollata e sobbalzo: animano solo il pet, mai il contenitore/lotto. */
@keyframes weatherPetShake{0%,100%{transform:rotate(0)}15%{transform:rotate(-8deg)}30%{transform:rotate(8deg)}45%{transform:rotate(-10deg)}60%{transform:rotate(9deg)}75%{transform:rotate(-5deg)}90%{transform:rotate(4deg)}}
.pet.weather-pet-shake{animation:weatherPetShake .68s cubic-bezier(.36,.07,.19,.97) 1!important;transform-origin:center bottom!important}
@keyframes weatherPetStartle{0%,100%{transform:translateY(0) scale(1)}22%{transform:translateY(-8px) scale(1.04,.96)}45%{transform:translateY(1px) scale(.98,1.02)}}
.pet.weather-pet-startle{animation:weatherPetStartle .78s ease-out 1!important}
.weather-pet-burst{position:absolute;left:50%;top:48%;width:1px;height:1px;z-index:28;pointer-events:none}.weather-pet-burst i{position:absolute;left:0;top:0;width:4px;height:7px;border-radius:70% 70% 70% 25%;background:rgba(149,208,230,.88);transform:rotate(var(--a)) translateY(0);animation:weatherDropFly .82s ease-out forwards;animation-delay:var(--d)}
@keyframes weatherDropFly{0%{opacity:0;transform:rotate(var(--a)) translateY(0) scale(.5)}18%{opacity:1}100%{opacity:0;transform:rotate(var(--a)) translateY(calc(var(--r) * -1)) scale(1)}}
/* Neve: impronte dentro la scena e non sopra l'interfaccia. */
.weather-footprint-layer{position:absolute;inset:0;z-index:6;overflow:hidden;pointer-events:none}.weather-snow-footprint{position:absolute;transform:translate(-50%,-50%) rotate(var(--rot));font-size:11px;filter:grayscale(1) brightness(.72);opacity:.34;animation:weatherFootprintFade 10.5s linear forwards}
@keyframes weatherFootprintFade{0%,68%{opacity:.34}100%{opacity:0}}
.city-location-scene.weather-snow .weather-snow-footprint{text-shadow:0 1px 1px rgba(255,255,255,.65)}
/* Caldo: piccolo alone d'ombra quando si riposa in una zona fresca. */
.city-location-pet-zone.weather-shade-rest::before{content:"";position:absolute;left:50%;bottom:20px;width:116px;height:32px;transform:translateX(-50%);border-radius:50%;background:radial-gradient(ellipse,rgba(55,92,61,.20),rgba(55,92,61,0) 70%);z-index:0;pointer-events:none}
/* Tuono sincronizzato con il sobbalzo. */
.city-location-scene.weather-thunder-hit::after{content:"";position:absolute;inset:0;z-index:26;pointer-events:none;background:rgba(244,250,255,.56);animation:weatherThunderFlash .72s ease-out forwards}
@keyframes weatherThunderFlash{0%{opacity:0}12%{opacity:1}28%{opacity:.12}42%{opacity:.72}100%{opacity:0}}
@media(max-width:390px){.weather-pet-state-card{grid-template-columns:38px minmax(0,1fr);padding:10px}.weather-pet-state-icon{width:38px;height:38px;border-radius:13px}.weather-snow-footprint{font-size:9px}}
@media(prefers-reduced-motion:reduce){.pet.weather-pet-shake,.pet.weather-pet-startle,.weather-pet-burst i,.weather-snow-footprint,.city-location-scene.weather-thunder-hit::after{animation:none!important}}

/* =========================================================
   TinyPal v9.28 — FIX OGGETTI CAMERETTA ANDROID
   - evita sovrapposizioni degli arredi essenziali del gatto con le ciotole
   - fallback solidi per i componenti CSS che alcuni Chrome Android
     possono non dipingere correttamente
   - niente dipendenza dal longhand `scale` per il layout mobile
   ========================================================= */
.species-essential-object,
.species-essential-object>*{
  box-sizing:border-box;
}
.species-essential-object{
  isolation:isolate;
  transform-box:border-box;
  -webkit-transform-origin:center center;
  transform-origin:center center;
}
.species-essential-object>*{
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
}

/* Gatto — layout di default: tre zone distinte sul pavimento.
   Le posizioni inline salvate da Arredo Pro continuano ad avere precedenza. */
.essential-cat-hide{
  left:3%;right:auto;bottom:8%;top:auto;
  width:116px;height:88px;
}
.essential-cat-scratch{
  left:22%;right:auto;bottom:8%;top:auto;
  width:86px;height:126px;
}
.essential-cat-litter{
  right:4%;left:auto;top:60%;bottom:auto;
  width:112px;height:64px;
}

/* Rifugio: sagoma unica e leggibile, non una serie di pezzi scollegati. */
.essential-cat-hide .hide-shell{
  left:4px;right:4px;bottom:2px;height:77px;
  border-radius:26px 26px 15px 15px;
  background-color:#b98269;
  background-image:linear-gradient(145deg,#d2a48a 0%,#b98269 56%,#97614f 100%);
  border:1px solid rgba(91,57,45,.14);
  box-shadow:inset 0 6px rgba(255,255,255,.12),inset 0 -7px rgba(76,50,40,.10),0 4px 6px rgba(70,45,34,.08);
}
.essential-cat-hide .hide-shell::before,
.essential-cat-hide .hide-shell::after{
  top:-7px;width:25px;height:25px;background:#bd8b73;
}
.essential-cat-hide .hide-entry{
  left:39px;bottom:6px;width:39px;height:46px;
  background-color:#4d403b;
  background-image:linear-gradient(180deg,#594b44,#403632);
  border:2px solid rgba(255,255,255,.06);
}
.essential-cat-hide .hide-cushion{
  left:40px;bottom:5px;width:37px;height:11px;
  background:#e6c8b2;border:1px solid rgba(120,78,59,.10);
}

/* Tiragraffi: il palo centrale ha SEMPRE un colore solido di fallback.
   Il pattern della corda è decorativo e non è più necessario per vedere l'oggetto. */
.essential-cat-scratch .scratch-base{
  left:4px;bottom:2px;width:78px;height:20px;
  border-radius:50%;
  background-color:#987866;
  background-image:linear-gradient(180deg,#b59b8c,#8f7161);
  border:1px solid rgba(78,57,47,.12);
  box-shadow:inset 0 -5px rgba(75,53,43,.12),0 3px 4px rgba(62,45,37,.08);
}
.essential-cat-scratch .scratch-post{
  left:32px;top:25px;width:22px;height:86px;
  border-radius:10px;
  background-color:#b58b60;
  background-image:linear-gradient(90deg,#cfac7a 0%,#b58b60 48%,#96704d 100%);
  border:1px solid rgba(105,75,47,.14);
  box-shadow:inset 4px 0 rgba(255,255,255,.12),inset -3px 0 rgba(84,58,37,.08);
  overflow:hidden;
}
.essential-cat-scratch .scratch-post::after{
  content:"";position:absolute;inset:0;
  background-image:repeating-linear-gradient(0deg,transparent 0 6px,rgba(103,72,45,.18) 6px 8px);
  pointer-events:none;
}
.essential-cat-scratch .scratch-top{
  left:10px;top:8px;width:66px;height:25px;
  border-radius:18px;
  background-color:#c2a899;
  background-image:linear-gradient(180deg,#d2beb2,#b29382);
  border:1px solid rgba(89,65,54,.12);
  box-shadow:inset 0 -5px rgba(83,57,44,.10),0 3px 4px rgba(62,45,37,.08);
}
.essential-cat-scratch .scratch-toy{
  left:68px;top:37px;width:14px;height:14px;
  background:#d78776;
  border:1px solid rgba(115,66,58,.12);
  box-shadow:0 21px 0 -5px #806d63;
}
.essential-cat-scratch .scratch-toy::before{
  left:6px;top:-18px;width:2px;height:20px;background:#756a63;
}

/* Lettiera: più compatta e leggibile, tenuta sopra la zona delle ciotole. */
.essential-cat-litter .litter-tray{
  left:3px;right:3px;bottom:3px;height:49px;
  border-radius:14px 14px 20px 20px;
  background-color:#5f7c81;
  background-image:linear-gradient(180deg,#7e9a9e,#607d82 62%,#4d696e);
  border:1px solid rgba(45,71,76,.14);
  box-shadow:inset 0 6px rgba(255,255,255,.13),inset 0 -6px rgba(36,58,62,.12),0 3px 4px rgba(52,61,62,.08);
}
.essential-cat-litter .litter-fill{
  left:13px;right:13px;bottom:14px;height:24px;
  background-color:#d7c7a7;
  border:1px solid rgba(122,106,78,.10);
}
.essential-cat-litter .litter-scoop{
  right:8px;top:0;width:16px;height:31px;
  background-color:#d6b472;
  background-image:linear-gradient(180deg,#e3c784,#c99f59);
  border:1px solid rgba(118,86,42,.10);
}

/* Fallback universali per alcuni componenti costruiti con repeating-gradient. */
.brush-basket{background-color:#bd895d}
.brush-bristles{background-color:#675a50}
.fox-log-body{background-color:#825433}
.fox-platform-ramp{background-color:#8e6545}
.bear-log-main{background-color:#694632}
.rabbit-hay-corner{background-color:#d7bb62}

/* Su mobile niente scala CSS indipendente dal transform salvato: evita differenze
   tra versioni di Chrome/WebView e rende il box di hit-test uguale alla grafica. */
@media(max-width:560px){
  .essential-dog-leash,
  .essential-rabbit-hay,
  .essential-cat-scratch,
  .essential-fox-platform,
  .essential-bear-den,
  .essential-bear-log{
    scale:1!important;
  }
  .essential-cat-hide{left:3%;}
  .essential-cat-scratch{left:21%;}
  .essential-cat-litter{right:3%;top:59%;}
}

/* TinyPal v9.29 — Auth più chiaro e resistente ai tentativi ripetuti */
.auth-message[data-tone="success"]{color:#47705a}
.auth-message[data-tone="warning"]{color:#8a6427;background:#fff7e8;border:1px solid rgba(154,108,33,.16);border-radius:11px;padding:9px 10px;min-height:0}
.auth-message[data-tone="info"]{color:#5f6770}
.auth-submit:disabled{cursor:not-allowed;filter:saturate(.72)}
.auth-footnote strong{color:#5e574f}


/* =========================================================
   TinyPal v9.31 — UOVO SEMPRE NELLA CUCCIA
   Nessuna scena separata: il gesto touch vive sopra la stanza reale.
   ========================================================= */
.room-snack-mode{position:absolute;inset:0;z-index:96;pointer-events:none;touch-action:none}
.room-snack-mode.hidden{display:none!important}
.room-snack-toolbar{position:absolute;left:50%;top:10px;translate:-50% 0;width:min(430px,calc(100% - 24px));min-height:54px;display:grid;grid-template-columns:42px minmax(0,1fr) 34px;align-items:center;gap:9px;padding:7px 8px;border-radius:18px;background:rgba(255,253,248,.94);border:1px solid rgba(91,70,51,.10);box-shadow:0 9px 24px rgba(66,51,39,.15);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);pointer-events:auto}
.room-snack-toolbar-icon{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(145deg,#fff5da,#efd3a5);font-size:24px;box-shadow:inset 0 1px 0 rgba(255,255,255,.85)}
.room-snack-toolbar small{display:block;color:#99806a;font-size:calc(7.3px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.08em}.room-snack-toolbar strong{display:block;margin-top:1px;font-size:calc(10.5px + var(--tp-text-extra,0px));line-height:1.15}.room-snack-toolbar em{display:block;margin-top:2px;color:var(--muted);font-size:calc(7.8px + var(--tp-text-extra,0px));font-style:normal;font-weight:720;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.room-snack-toolbar>button{width:32px;height:32px;border:0;border-radius:11px;background:#ede7dd;color:#6d5d50;font-size:15px;font-weight:900;pointer-events:auto}
.room-snack-pet-switch{position:absolute;top:72px;left:50%;translate:-50% 0;display:flex;gap:6px;padding:5px;border-radius:14px;background:rgba(255,253,248,.88);box-shadow:0 7px 18px rgba(65,51,40,.10);pointer-events:auto}.room-snack-pet-switch.hidden{display:none!important}.room-snack-pet-switch button{display:flex;align-items:center;gap:5px;min-width:0;border:0;border-radius:10px;padding:6px 8px;background:transparent;color:#77675a;font-size:calc(7.8px + var(--tp-text-extra,0px));font-weight:850}.room-snack-pet-switch button.active{background:#e8f1e4;color:#587257}.room-snack-pet-switch button span{font-size:12px}.room-snack-pet-switch button strong{max-width:82px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.room-snack-target{position:absolute;left:50%;top:48%;width:76px;height:64px;translate:-50% -50%;border:2px dashed rgba(116,85,63,.34);border-radius:50%;display:grid;place-items:center;align-content:center;gap:0;background:rgba(255,255,255,.13);color:#7f6858;opacity:.6;transition:opacity .15s ease,scale .15s ease,background .15s ease,border-color .15s ease;z-index:100;pointer-events:none}.room-snack-target span{font-size:20px;line-height:1}.room-snack-target small{font-size:calc(6.8px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.08em}.room-snack-target.ready{opacity:1;scale:1.12;border-color:#7ea874;background:rgba(239,250,233,.78);color:#5d8157;box-shadow:0 0 0 7px rgba(117,158,108,.10)}
.room-snack-drag{position:absolute;left:32%;top:79%;translate:-50% -50%;width:74px;height:76px;border:0;border-radius:23px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(145deg,#fffaf0,#edd4aa);color:#5f5145;box-shadow:0 13px 25px rgba(63,47,34,.20),inset 0 1px 0 rgba(255,255,255,.95);z-index:110;pointer-events:auto;touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}.room-snack-drag>span{font-size:28px;line-height:1}.room-snack-drag>strong{display:block;max-width:62px;margin-top:4px;font-size:calc(7.8px + var(--tp-text-extra,0px));line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.room-snack-drag>small{margin-top:2px;color:#8b7968;font-size:calc(7px + var(--tp-text-extra,0px));font-weight:950}.room-snack-drag.dragging{cursor:grabbing;scale:1.09;box-shadow:0 18px 30px rgba(63,47,34,.24)}.room-snack-drag.delivered{opacity:0;scale:.65;pointer-events:none;transition:.24s ease}
.room-snack-reaction{position:absolute;left:50%;top:23%;translate:-50% 0;z-index:115;display:flex;align-items:center;gap:7px;padding:8px 11px;border-radius:16px;background:rgba(255,255,255,.94);box-shadow:0 8px 20px rgba(65,49,36,.15);animation:roomSnackPop .45s ease;pointer-events:none}.room-snack-reaction.hidden{display:none!important}.room-snack-reaction span{font-size:20px}.room-snack-reaction strong{font-size:calc(9px + var(--tp-text-extra,0px));white-space:nowrap}@keyframes roomSnackPop{0%{opacity:0;transform:translateY(7px) scale(.86)}100%{opacity:1;transform:none}}
.room-snack-crumb-layer{position:absolute;inset:0;z-index:108;pointer-events:none}.room-snack-crumb{position:absolute;width:6px;height:6px;margin:-3px;border-radius:50%;background:#c99650;box-shadow:0 1px 2px rgba(75,52,30,.18);animation:roomSnackCrumb 800ms ease-out forwards}@keyframes roomSnackCrumb{to{opacity:0;transform:translate(var(--sx,10px),var(--sy,28px)) rotate(150deg)}}
.room-snack-mode:not(.hidden)~.room-away-indicator{pointer-events:none}
@media(max-width:430px){.room-snack-toolbar{left:50%;top:7px;width:min(360px,calc(100% - 18px));grid-template-columns:38px minmax(0,1fr) 31px;gap:7px;padding:6px}.room-snack-toolbar-icon{width:38px;height:38px;border-radius:12px;font-size:22px}.room-snack-toolbar>button{width:30px;height:30px}.room-snack-pet-switch{top:64px}.room-snack-target{width:72px;height:60px}.room-snack-drag{width:70px;height:72px;left:32%;top:80%}.room-snack-drag>span{font-size:26px}}
@media(prefers-reduced-motion:reduce){.room-snack-target,.room-snack-drag{transition:none!important}.room-snack-reaction,.room-snack-crumb{animation:none!important}}


/* =========================================================
   TinyPal v9.32 — KO-FI DISCRETO NELLA HOME
   ========================================================= */
.kofi-support-card{
  position:relative;overflow:hidden;margin-top:14px;padding:18px 18px 15px;
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;
  background:linear-gradient(145deg,rgba(255,255,255,.93),rgba(247,250,255,.92));
  border:1px solid rgba(77,119,176,.12);box-shadow:0 12px 32px rgba(62,74,91,.07)
}
.kofi-support-card::after{content:"";position:absolute;right:-28px;top:-48px;width:130px;height:130px;border-radius:50%;background:radial-gradient(circle,rgba(114,164,242,.14),rgba(114,164,242,0) 70%);pointer-events:none}
.kofi-support-mark{position:relative;width:54px;height:54px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(145deg,#f3f8ff,#e4efff);box-shadow:inset 0 0 0 1px rgba(75,124,194,.08)}
.kofi-support-mark>span{font-size:25px;line-height:1}.kofi-support-mark>i{position:absolute;right:-3px;bottom:-4px;width:23px;height:23px;border-radius:50%;display:grid;place-items:center;background:#fff;font-style:normal;font-size:12px;box-shadow:0 4px 10px rgba(61,75,92,.12)}
.kofi-support-copy{min-width:0}.kofi-support-copy small{display:block;font-size:calc(10px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.08em;color:#6681a4;margin-bottom:4px}.kofi-support-copy strong{display:block;font-size:calc(16px + var(--tp-text-extra,0px));line-height:1.15;color:#2f3640}.kofi-support-copy p{margin:5px 0 0;max-width:560px;font-size:calc(12px + var(--tp-text-extra,0px));line-height:1.42;color:rgba(47,54,64,.67);font-weight:650}
.kofi-widget-slot{position:relative;z-index:2;display:flex;align-items:center;justify-content:flex-end;min-width:190px;min-height:42px}.kofi-widget-slot>a{display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border-radius:12px;background:#72a4f2;color:#fff;font-weight:900;text-decoration:none}
.kofi-support-note{grid-column:2 / 4;display:flex;align-items:center;justify-content:flex-end;gap:6px;font-size:calc(10.5px + var(--tp-text-extra,0px));font-weight:750;color:rgba(47,54,64,.48)}
@media(max-width:720px){.kofi-support-card{grid-template-columns:auto 1fr;padding:15px;gap:11px}.kofi-support-mark{width:48px;height:48px;border-radius:16px}.kofi-widget-slot{grid-column:1 / 3;justify-content:center;width:100%;min-width:0;margin-top:2px}.kofi-support-note{grid-column:1 / 3;justify-content:center;text-align:center}.kofi-support-copy p{font-size:calc(11.5px + var(--tp-text-extra,0px))}}
@media(max-width:420px){.kofi-support-card{margin-top:11px}.kofi-support-copy strong{font-size:calc(15px + var(--tp-text-extra,0px))}.kofi-support-copy p{margin-top:4px}.kofi-widget-slot{transform:scale(.96);transform-origin:center}}


/* TinyPal v9.34 — Feedback diretto via email */
.settings-action-feedback{background:linear-gradient(145deg,#fffaf4,#f5eee5)!important;border-color:rgba(128,92,58,.12)!important}
.settings-action-feedback .icon{filter:drop-shadow(0 5px 8px rgba(94,69,43,.12))}
.feedback-sheet{max-height:min(88dvh,760px);overflow:auto}
.feedback-sheet-head p{margin:5px 0 0;color:var(--muted);font-size:calc(13px + var(--tp-text-extra,0px));font-weight:650}
.feedback-hero{display:flex;align-items:center;gap:13px;margin:4px 0 14px;padding:15px;border-radius:20px;background:linear-gradient(145deg,#fbf4eb,#fff);border:1px solid rgba(125,88,54,.10)}
.feedback-hero>span{display:grid;place-items:center;flex:0 0 48px;height:48px;border-radius:16px;background:white;font-size:25px;box-shadow:0 7px 18px rgba(85,59,37,.08)}
.feedback-hero div{display:grid;gap:3px}.feedback-hero strong{font-size:calc(15px + var(--tp-text-extra,0px))}.feedback-hero small{color:var(--muted);line-height:1.35;font-weight:650}
.feedback-kind-switch{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:12px}
.feedback-kind-switch button{border:1px solid rgba(87,65,46,.12);border-radius:18px;background:#fff;padding:13px 10px;display:grid;gap:3px;text-align:left;box-shadow:0 6px 14px rgba(70,47,28,.045)}
.feedback-kind-switch button>span{font-size:23px}.feedback-kind-switch button strong{font-size:calc(14px + var(--tp-text-extra,0px))}.feedback-kind-switch button small{font-size:calc(11px + var(--tp-text-extra,0px));color:var(--muted);font-weight:650}
.feedback-kind-switch button.active{background:linear-gradient(145deg,#f3e8d9,#fff8ef);border-color:rgba(134,91,50,.30);box-shadow:0 8px 20px rgba(86,59,31,.08)}
.feedback-message-box{display:grid;gap:7px}.feedback-message-box>span{font-size:calc(11px + var(--tp-text-extra,0px));letter-spacing:.08em;font-weight:900;color:var(--muted)}
.feedback-message-box textarea{width:100%;box-sizing:border-box;resize:vertical;min-height:132px;border:1px solid rgba(86,63,44,.14);border-radius:18px;padding:14px;background:#fff;font:inherit;font-size:16px;line-height:1.45;color:inherit;outline:none}
.feedback-message-box textarea:focus{border-color:rgba(121,83,48,.42);box-shadow:0 0 0 4px rgba(141,99,60,.08)}
.feedback-message-box small,.feedback-footnote{color:var(--muted);font-size:calc(11px + var(--tp-text-extra,0px));font-weight:650}
.feedback-context{display:flex;gap:10px;align-items:center;margin:12px 0;padding:11px 12px;border-radius:15px;background:rgba(245,239,232,.72)}
.feedback-context>span{font-size:20px}.feedback-context div{display:grid;gap:2px}.feedback-context strong{font-size:calc(12.5px + var(--tp-text-extra,0px))}.feedback-context small{color:var(--muted);font-weight:650}
.feedback-status{min-height:20px;margin:8px 2px;font-size:calc(12px + var(--tp-text-extra,0px));font-weight:750;color:var(--muted);line-height:1.35}.feedback-status.success{color:#44745d}.feedback-status.warning{color:#9a702e}.feedback-status.error{color:#a34f4f}.feedback-status.sending{color:#566d91}
.feedback-submit{width:100%;border:0;border-radius:17px;padding:14px 16px;background:#6f917f;color:#fff;font-weight:900;font-size:calc(15px + var(--tp-text-extra,0px));box-shadow:0 8px 18px rgba(78,108,91,.16)}
.feedback-submit:disabled{opacity:.48;box-shadow:none}.feedback-footnote{text-align:center;margin:9px 0 2px}
@media(max-width:520px){.feedback-kind-switch{grid-template-columns:1fr}.feedback-message-box textarea{min-height:118px}}


/* TinyPal v9.36 — swipe down bottom sheets più reattivo */
.bottom-sheet .sheet-handle,.bottom-sheet .sheet-head{touch-action:none;overscroll-behavior:contain}
.bottom-sheet .sheet-handle{cursor:grab;box-sizing:content-box;padding:10px 34px;margin:-10px auto 5px;background-clip:content-box}
.bottom-sheet.sheet-swipe-dragging{will-change:transform;user-select:none;-webkit-user-select:none}
.bottom-sheet.sheet-swipe-dragging .sheet-handle{cursor:grabbing;transform:scaleX(1.16);opacity:.82}
.bottom-sheet .sheet-handle{transition:transform .14s ease,opacity .14s ease}
.bottom-sheet.sheet-swipe-closing{pointer-events:none;will-change:transform}
@media (prefers-reduced-motion:reduce){.bottom-sheet.sheet-swipe-closing{transition-duration:.01ms!important}}

/* =========================================================
   TinyPal v9.37 — MONDO VIVO · METEO REALE FASE 3
   ========================================================= */
.weather-phase3-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:7px}
.weather-phase3-metrics>div{min-width:0;padding:10px 8px;border-radius:17px;background:rgba(255,255,255,.72);border:1px solid rgba(70,89,78,.08);text-align:center;box-shadow:0 5px 14px rgba(54,73,61,.035)}
.weather-phase3-metrics span{font-size:calc(17px + var(--tp-text-extra,0px))}.weather-phase3-metrics strong{display:block;margin-top:3px;font-size:calc(11px + var(--tp-text-extra,0px));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.weather-phase3-metrics small{display:block;margin-top:2px;color:var(--muted);font-size:calc(8.5px + var(--tp-text-extra,0px));font-weight:760}
#weatherDetailUv[data-tone="medium"]{color:#8a6c18}#weatherDetailUv[data-tone="high"]{color:#a85c27}#weatherDetailUv[data-tone="danger"]{color:#a83f3f}
.weather-walk-advice{display:grid;grid-template-columns:44px minmax(0,1fr);gap:11px;align-items:center;margin-top:10px;padding:12px;border-radius:19px;background:linear-gradient(145deg,#eff7f0,#e8f3eb);border:1px solid rgba(74,101,82,.10);box-shadow:0 7px 18px rgba(55,70,58,.04)}
.weather-walk-advice>span{width:44px;height:44px;border-radius:15px;display:grid;place-items:center;background:rgba(255,255,255,.82);font-size:calc(21px + var(--tp-text-extra,0px));box-shadow:0 5px 14px rgba(61,77,67,.07)}
.weather-walk-advice small{display:block;color:#708074;font-size:calc(8px + var(--tp-text-extra,0px));font-weight:950;letter-spacing:.10em}.weather-walk-advice strong{display:block;margin-top:3px;font-size:calc(12px + var(--tp-text-extra,0px))}.weather-walk-advice p{margin:3px 0 0;color:var(--muted);font-size:calc(10px + var(--tp-text-extra,0px));line-height:1.36;font-weight:680}
.weather-walk-advice[data-tone="okay"]{background:linear-gradient(145deg,#f7f5eb,#f1efdf)}.weather-walk-advice[data-tone="avoid"]{background:linear-gradient(145deg,#f6eeee,#efe4e4)}
.weather-daily-section{margin-top:13px}.weather-daily-list{display:grid;gap:6px;margin-top:8px}.weather-daily-empty{padding:13px;border-radius:16px;background:rgba(255,255,255,.62);color:var(--muted);font-size:calc(10px + var(--tp-text-extra,0px));font-weight:720;text-align:center}
.weather-daily-item{display:grid;grid-template-columns:72px 36px minmax(0,1fr) 56px;gap:8px;align-items:center;padding:9px 10px;border-radius:17px;background:rgba(255,255,255,.68);border:1px solid rgba(75,95,83,.07)}.weather-daily-item.today{background:#edf4ef;border-color:rgba(68,102,78,.11)}
.weather-daily-day strong,.weather-daily-copy strong{display:block;font-size:calc(10px + var(--tp-text-extra,0px))}.weather-daily-day small,.weather-daily-copy small{display:block;margin-top:2px;color:var(--muted);font-size:calc(8.5px + var(--tp-text-extra,0px));font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.weather-daily-icon{font-size:calc(22px + var(--tp-text-extra,0px));text-align:center}.weather-daily-temp{text-align:right}.weather-daily-temp b{font-size:calc(13px + var(--tp-text-extra,0px))}.weather-daily-temp span{margin-left:4px;color:var(--muted);font-size:calc(10px + var(--tp-text-extra,0px));font-weight:800}
.weather-pet-state-card[data-state="cold"]{background:linear-gradient(145deg,#eef4f7,#e5edf3)}.weather-pet-state-card[data-state="wind"]{background:linear-gradient(145deg,#f1f5f1,#e8efea)}.weather-pet-state-card[data-state="fog"]{background:linear-gradient(145deg,#f3f4f2,#e9ece9)}
.pet.weather-pet-windy .ear{animation:weatherWindEar .72s ease-in-out infinite alternate}.pet.weather-pet-foggy{filter:saturate(.9)}
.pet.weather-pet-gust{animation:weatherPetGust .86s cubic-bezier(.3,.8,.25,1) 1!important;transform-origin:center bottom!important}.pet.weather-pet-shiver{animation:weatherPetShiver .78s linear 1!important;transform-origin:center bottom!important}.pet.weather-pet-fog-sniff{animation:weatherPetFogSniff 1.05s ease-in-out 1!important;transform-origin:center bottom!important}
@keyframes weatherPetGust{0%{transform:translateX(0) rotate(0)}28%{transform:translateX(-5px) rotate(-4deg) scaleY(.97)}52%{transform:translateX(2px) rotate(2deg)}76%{transform:translateX(-2px) rotate(-1deg)}100%{transform:translateX(0) rotate(0)}}
@keyframes weatherPetShiver{0%,100%{transform:translateX(0)}15%{transform:translateX(-1.5px)}30%{transform:translateX(1.5px)}45%{transform:translateX(-1.5px)}60%{transform:translateX(1.5px)}75%{transform:translateX(-1px)}}
@keyframes weatherPetFogSniff{0%,100%{transform:translateX(0) scale(1)}35%{transform:translateX(2px) scale(.985) rotate(1deg)}68%{transform:translateX(-1px) scale(1.01) rotate(-1deg)}}
@keyframes weatherWindEar{from{transform:rotate(-2deg)}to{transform:rotate(5deg)}}
@media(max-width:430px){.weather-phase3-metrics{gap:5px}.weather-phase3-metrics>div{padding:9px 5px}.weather-daily-item{grid-template-columns:62px 32px minmax(0,1fr) 48px;gap:6px;padding:8px}.weather-daily-copy small{max-width:125px}.weather-walk-advice{grid-template-columns:40px minmax(0,1fr);padding:10px}.weather-walk-advice>span{width:40px;height:40px;border-radius:13px}}
@media(max-width:360px){.weather-daily-item{grid-template-columns:58px 30px minmax(0,1fr) 44px}.weather-daily-copy small{max-width:92px}.weather-phase3-metrics strong{font-size:calc(10px + var(--tp-text-extra,0px))}}
@media(prefers-reduced-motion:reduce){.pet.weather-pet-gust,.pet.weather-pet-shiver,.pet.weather-pet-fog-sniff,.pet.weather-pet-windy .ear{animation:none!important}}


/* =========================================================
   TinyPal v9.38 — METEO REALE FASE 4
   Allerte smart, previsione dei cambiamenti e preparazione.
   ========================================================= */
.weather-smart-alert,.weather-upcoming-card{
  margin-top:10px;border:1px solid rgba(88,72,56,.08);border-radius:18px;padding:12px;
  display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:10px;
  background:linear-gradient(145deg,#fbfaf6,#f5f2eb);
}
.weather-smart-alert-icon,.weather-upcoming-card>span{
  width:42px;height:42px;border-radius:14px;display:grid;place-items:center;font-size:22px;
  background:rgba(255,255,255,.72);box-shadow:inset 0 0 0 1px rgba(90,70,50,.05);
}
.weather-smart-alert small,.weather-upcoming-card small{display:block;font-size:8.5px;letter-spacing:.10em;font-weight:900;color:#8a7b6d}
.weather-smart-alert strong,.weather-upcoming-card strong{display:block;margin-top:3px;font-size:calc(12px + var(--tp-text-extra,0px))}
.weather-smart-alert p,.weather-upcoming-card p{margin:3px 0 0;color:var(--muted);font-size:calc(9.5px + var(--tp-text-extra,0px));line-height:1.35;font-weight:680}
.weather-smart-alert>b{align-self:start;border-radius:999px;padding:5px 8px;background:#e8efe7;color:#55705b;font-size:8px;letter-spacing:.07em}
.weather-smart-alert[data-level="2"]{background:linear-gradient(145deg,#fff8e7,#f8edd0);border-color:rgba(181,135,51,.15)}
.weather-smart-alert[data-level="2"]>b{background:#f2dfaa;color:#7a5b1b}
.weather-smart-alert[data-level="3"]{background:linear-gradient(145deg,#fff0ed,#f7ded9);border-color:rgba(178,77,62,.16)}
.weather-smart-alert[data-level="3"]>b{background:#efc6bf;color:#884237}
.weather-upcoming-card{grid-template-columns:42px minmax(0,1fr);background:linear-gradient(145deg,#f5f8f6,#edf3ef)}
.weather-upcoming-card[data-tone="rain"]{background:linear-gradient(145deg,#eef6f8,#e1edf1)}
.weather-upcoming-card[data-tone="danger"]{background:linear-gradient(145deg,#f5f0f5,#ebe1eb)}
.weather-upcoming-card[data-tone="snow"]{background:linear-gradient(145deg,#f8fbfb,#eef5f6)}
.weather-upcoming-card[data-tone="fog"]{background:linear-gradient(145deg,#f4f5f4,#e9ecea)}
.weather-upcoming-card[data-tone="wind"]{background:linear-gradient(145deg,#f5f7f3,#eaf0e7)}
.weather-upcoming-card[data-tone="heat"]{background:linear-gradient(145deg,#fff7eb,#f8ead8)}
.weather-upcoming-card[data-tone="cold"]{background:linear-gradient(145deg,#eef5fa,#e2edf4)}

.weather-prep-card{margin-top:10px;border:1px solid rgba(87,70,54,.08);background:#fffdfa;border-radius:19px;padding:12px}
.weather-prep-card .weather-section-title{margin:0 0 9px}
.weather-prep-list{display:grid;gap:7px}
.weather-prep-item{
  display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:8px;align-items:center;
  border-radius:14px;padding:9px;background:#f8f5ef;border:1px solid rgba(87,70,54,.05)
}
.weather-prep-item>span{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:#fff;font-size:18px}
.weather-prep-item strong{display:block;font-size:calc(11px + var(--tp-text-extra,0px))}
.weather-prep-item small{display:block;margin-top:2px;color:var(--muted);font-size:calc(9px + var(--tp-text-extra,0px));line-height:1.3;font-weight:660}
.weather-prep-item>b{width:23px;height:23px;border-radius:50%;display:grid;place-items:center;background:#dfeade;color:#54705c;font-size:12px}
.weather-prep-item.done{background:#f2f7f1}
.weather-prep-action{
  width:100%;margin-top:9px;border:0;border-radius:14px;padding:11px 13px;background:#76948a;color:#fff;
  font-weight:900;font-size:calc(11px + var(--tp-text-extra,0px));box-shadow:0 6px 14px rgba(70,98,88,.16)
}
.weather-prep-action:active{transform:translateY(1px)}
.weather-home-card[data-alert="warning"]{box-shadow:0 0 0 2px rgba(213,161,62,.18),var(--shadow,0 10px 24px rgba(70,55,40,.08))}
.weather-home-card[data-alert="danger"]{box-shadow:0 0 0 2px rgba(181,81,68,.18),var(--shadow,0 10px 24px rgba(70,55,40,.08))}
@media(max-width:390px){
  .weather-smart-alert,.weather-upcoming-card{grid-template-columns:38px minmax(0,1fr) auto;padding:10px}
  .weather-upcoming-card{grid-template-columns:38px minmax(0,1fr)}
  .weather-smart-alert-icon,.weather-upcoming-card>span{width:38px;height:38px;border-radius:13px;font-size:20px}
}


/* TinyPal v9.39 — Meteo Reale Fase 5 */
.weather-personal-comfort{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:10px;align-items:center;margin-top:10px;padding:12px;border-radius:19px;border:1px solid rgba(76,113,82,.10);background:linear-gradient(145deg,#f3faf4,#eaf5ed)}
.weather-personal-comfort-icon{width:44px;height:44px;border-radius:15px;display:grid;place-items:center;background:rgba(255,255,255,.72);font-size:22px;box-shadow:0 6px 16px rgba(52,85,60,.06)}
.weather-personal-comfort small,.weather-activity-card small{display:block;color:#748173;font-size:8.5px;letter-spacing:.10em;font-weight:900}
.weather-personal-comfort strong,.weather-activity-card strong{display:block;margin-top:3px;font-size:calc(12px + var(--tp-text-extra,0px))}
.weather-personal-comfort p,.weather-activity-card p{margin:3px 0 0;color:var(--muted);font-size:calc(9.5px + var(--tp-text-extra,0px));line-height:1.35;font-weight:680}
.weather-personal-comfort-copy i{display:block;height:6px;margin-top:8px;border-radius:999px;background:rgba(91,116,94,.12);overflow:hidden}.weather-personal-comfort-copy i b{display:block;width:100%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#7cb889,#5f9d70);transition:width .35s ease}
.weather-personal-comfort>em{font-style:normal;font-size:10px;font-weight:900;color:#52765a;background:rgba(255,255,255,.72);border-radius:999px;padding:6px 8px;white-space:nowrap}
.weather-personal-comfort[data-tone="good"]{background:linear-gradient(145deg,#f7faf3,#eef4e7)}.weather-personal-comfort[data-tone="good"] .weather-personal-comfort-copy i b{background:linear-gradient(90deg,#9db56f,#7b9d54)}
.weather-personal-comfort[data-tone="care"]{background:linear-gradient(145deg,#fff9e9,#f7efd3);border-color:rgba(180,139,48,.12)}.weather-personal-comfort[data-tone="care"] .weather-personal-comfort-copy i b{background:linear-gradient(90deg,#e2c769,#c5a847)}.weather-personal-comfort[data-tone="care"]>em{color:#7f661d}
.weather-personal-comfort[data-tone="poor"]{background:linear-gradient(145deg,#fff2e9,#f6dfd3);border-color:rgba(181,92,58,.12)}.weather-personal-comfort[data-tone="poor"] .weather-personal-comfort-copy i b{background:linear-gradient(90deg,#d99a69,#c77955)}.weather-personal-comfort[data-tone="poor"]>em{color:#8c5137}
.weather-activity-card{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:10px;align-items:center;margin-top:8px;padding:12px;border-radius:19px;border:1px solid rgba(78,84,103,.08);background:linear-gradient(145deg,#f7f7fb,#efeff6)}
.weather-activity-card>span{width:44px;height:44px;border-radius:15px;display:grid;place-items:center;background:rgba(255,255,255,.72);font-size:22px}.weather-activity-card>button{border:0;border-radius:13px;padding:9px 10px;background:#242a28;color:#fff;font-size:9px;font-weight:850;white-space:nowrap;box-shadow:0 5px 12px rgba(33,39,37,.12)}.weather-activity-card>button:active{transform:translateY(1px) scale(.98)}
.weather-ground-moment-layer{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden}.weather-ground-moment-layer i{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%) scale(var(--s));animation-delay:var(--d)}
.weather-ground-puddle{width:74px;height:20px;border-radius:50%;background:radial-gradient(ellipse at center,rgba(170,214,225,.62) 0 42%,rgba(114,176,196,.42) 44% 63%,rgba(255,255,255,.2) 66% 70%,transparent 72%);box-shadow:0 4px 10px rgba(66,120,139,.10);animation:weatherPuddleShimmer 3.8s ease-in-out infinite}
.weather-ground-snow{width:82px;height:24px;border-radius:50%;background:radial-gradient(ellipse at center,rgba(255,255,255,.96) 0 52%,rgba(231,240,244,.84) 54% 70%,transparent 72%);filter:drop-shadow(0 5px 4px rgba(70,92,98,.08));animation:weatherSnowSoft 4.6s ease-in-out infinite}
#locationPetButton.weather-pet-puddle{animation:weatherPuddlePet .9s cubic-bezier(.2,.85,.32,1)}#locationPetButton.weather-pet-snow-play{animation:weatherSnowPlayPet 1.05s cubic-bezier(.2,.8,.3,1)}
@keyframes weatherPuddleShimmer{50%{opacity:.78;filter:brightness(1.05)}}@keyframes weatherSnowSoft{50%{opacity:.9;filter:drop-shadow(0 5px 6px rgba(70,92,98,.10))}}
@keyframes weatherPuddlePet{0%,100%{transform:translateY(0) rotate(0)}28%{transform:translateY(-11px) rotate(-3deg)}52%{transform:translateY(2px) rotate(3deg)}70%{transform:translateY(-4px) rotate(-2deg)}}@keyframes weatherSnowPlayPet{0%,100%{transform:translateY(0) rotate(0)}25%{transform:translateY(-8px) rotate(4deg)}50%{transform:translateY(-2px) rotate(-5deg)}72%{transform:translateY(-7px) rotate(3deg)}}
@media(max-width:430px){.weather-personal-comfort,.weather-activity-card{grid-template-columns:40px minmax(0,1fr) auto;gap:8px;padding:10px}.weather-personal-comfort-icon,.weather-activity-card>span{width:40px;height:40px;border-radius:13px;font-size:20px}.weather-activity-card>button{max-width:96px;padding:8px 8px;white-space:normal;line-height:1.15}.weather-personal-comfort>em{font-size:9px;padding:5px 7px}}
@media(max-width:360px){.weather-personal-comfort{grid-template-columns:38px minmax(0,1fr)}.weather-personal-comfort>em{grid-column:2;justify-self:start}.weather-activity-card{grid-template-columns:38px minmax(0,1fr)}.weather-activity-card>button{grid-column:2;justify-self:start;max-width:none}.weather-personal-comfort-icon,.weather-activity-card>span{width:38px;height:38px}}
@media(prefers-reduced-motion:reduce){.weather-ground-moment-layer i,#locationPetButton.weather-pet-puddle,#locationPetButton.weather-pet-snow-play{animation:none!important}}


/* TinyPal v9.40 — Meteo Reale Fase 6 · terreno con memoria */
.weather-ground-memory-card{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:10px;align-items:center;margin-top:8px;padding:12px;border-radius:19px;border:1px solid rgba(75,103,88,.09);background:linear-gradient(145deg,#f6faf6,#edf4ee)}
.weather-ground-memory-icon{width:44px;height:44px;border-radius:15px;display:grid;place-items:center;background:rgba(255,255,255,.76);font-size:22px;box-shadow:0 6px 16px rgba(55,83,65,.05)}
.weather-ground-memory-copy small{display:block;color:#728077;font-size:8.5px;letter-spacing:.10em;font-weight:900}.weather-ground-memory-copy strong{display:block;margin-top:3px;font-size:calc(12px + var(--tp-text-extra,0px))}.weather-ground-memory-copy p{margin:3px 0 0;color:var(--muted);font-size:calc(9.5px + var(--tp-text-extra,0px));line-height:1.35;font-weight:680}
.weather-ground-memory-copy i{display:block;height:6px;margin-top:8px;border-radius:999px;background:rgba(91,116,94,.12);overflow:hidden}.weather-ground-memory-copy i b{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#9abc86,#6ca373);transition:width .4s ease}
.weather-ground-memory-values{display:grid;gap:5px;justify-items:end}.weather-ground-memory-values em{font-style:normal;font-size:9px;font-weight:900;color:#66736a;background:rgba(255,255,255,.76);border-radius:999px;padding:5px 7px;white-space:nowrap}
.weather-ground-memory-card[data-tone="wet"]{background:linear-gradient(145deg,#eef8fa,#e2f0f4);border-color:rgba(63,126,149,.12)}.weather-ground-memory-card[data-tone="wet"] .weather-ground-memory-copy i b{background:linear-gradient(90deg,#7db6c9,#5498b1)}
.weather-ground-memory-card[data-tone="damp"]{background:linear-gradient(145deg,#f1f8f4,#e6f1ea)}.weather-ground-memory-card[data-tone="damp"] .weather-ground-memory-copy i b{background:linear-gradient(90deg,#8fc0a3,#6aa480)}
.weather-ground-memory-card[data-tone="snow"]{background:linear-gradient(145deg,#f8fbfc,#edf5f8);border-color:rgba(105,143,157,.12)}.weather-ground-memory-card[data-tone="snow"] .weather-ground-memory-copy i b{background:linear-gradient(90deg,#d8edf4,#9fc9d8)}
.weather-ground-moment-layer[data-kind="mixed"] .weather-ground-puddle{filter:saturate(.82);}.weather-ground-moment-layer[data-kind="mixed"] .weather-ground-snow{filter:drop-shadow(0 5px 4px rgba(70,92,98,.08)) brightness(.99)}
@media(max-width:430px){.weather-ground-memory-card{grid-template-columns:40px minmax(0,1fr) auto;gap:8px;padding:10px}.weather-ground-memory-icon{width:40px;height:40px;border-radius:13px;font-size:20px}.weather-ground-memory-values em{font-size:8.5px;padding:4px 6px}}
@media(max-width:360px){.weather-ground-memory-card{grid-template-columns:38px minmax(0,1fr)}.weather-ground-memory-icon{width:38px;height:38px}.weather-ground-memory-values{grid-column:2;grid-template-columns:auto auto;justify-content:start}}


/* =========================================================
   TinyPal v9.41 — PARITÀ VISIVA ANDROID / IPHONE
   Layout mobile più coerente sui 360–430 CSS px, viewport
   dinamica, safe-area complete e controlli Chrome Android.
   ========================================================= */
html,body{min-height:100dvh}
button{-webkit-appearance:none;appearance:none;touch-action:manipulation;background-clip:padding-box}
input,textarea,select{min-width:0;max-width:100%}
.bottom-sheet{overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch}
.bottom-sheet::-webkit-scrollbar{width:0;height:0}

/* Le emoji di sistema restano native, ma occupano lo stesso box e non
   spostano verticalmente testi/dock tra Apple Emoji e Noto Emoji. */
.home-action-icon,.home-category-icon,.action-card .icon,.dock-item>span,
.update-icon,.whats-new-highlight-icon,.weather-detail-icon,.weather-home-icon{
  line-height:1;text-align:center;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif
}

/* Telefoni 331–390 px (molti Android 360px): recupera spazio orizzontale
   senza cambiare la struttura della UI rispetto a iPhone più larghi. */
@media(min-width:331px) and (max-width:390px){
  .app-shell{padding-left:12px;padding-right:12px}
  main.home-layout{padding-left:6px;padding-right:6px}
  .bottom-sheet{padding-left:14px;padding-right:14px}
  .home-top-actions{gap:6px}
  .home-action-btn{padding:7px 6px;gap:5px}
  .home-action-icon{width:29px;height:29px;flex-basis:29px;border-radius:11px;font-size:15px}
  .home-action-copy small{font-size:calc(8px + var(--tp-text-extra,0px));letter-spacing:.06em}
  .home-action-copy strong{font-size:calc(10.5px + var(--tp-text-extra,0px))}
  .home-category-card{grid-template-columns:35px minmax(0,1fr);gap:7px;padding:11px 9px;min-height:74px}
  .home-category-card>b{display:none}
  .home-category-icon{width:35px;height:35px;border-radius:12px;font-size:1.08rem}
  .home-category-card strong{font-size:.86rem}
  .home-category-card small{font-size:.64rem;line-height:1.2}
  .home-sheet-shortcut{grid-template-columns:32px minmax(0,1fr);gap:7px;padding:9px}
  .home-sheet-shortcut>b{display:none}
  .home-sheet-shortcut>span{width:32px;height:32px;border-radius:11px;font-size:1.05rem}
}

/* Chrome Android in standalone tende ad avere un inset inferiore diverso
   da Safari iOS. Manteniamo dock e fogli della stessa presenza visiva. */
html[data-ui-platform="android"] .dock{
  min-height:86px;
  padding-bottom:max(12px,var(--safe-bottom));
  padding-left:max(8px,var(--safe-left));
  padding-right:max(8px,var(--safe-right));
}
html[data-ui-platform="android"] .bottom-sheet{
  padding-bottom:calc(22px + max(4px,var(--safe-bottom)));
}
html[data-ui-platform="android"] .sheet-backdrop{
  background:rgba(35,28,22,.27);
}

/* Safe area laterali utile anche su Android edge-to-edge / landscape. */
@media(max-width:899px){
  .dock{padding-left:max(8px,var(--safe-left));padding-right:max(8px,var(--safe-right))}
}

/* Solo sotto 330 px si passa davvero alla variante ultra-compatta. */
@media(max-width:330px){
  .home-category-grid,.home-sheet-shortcuts{grid-template-columns:1fr}
}


/* =========================================================
   TinyPal v9.43 — Casa & Costruisci 2.0 · Fase 1
   Selettore multi-stanza mobile-first.
   ========================================================= */
.house-room-switcher{width:100%;margin:10px 0 2px;padding:10px;border:1px solid rgba(81,67,56,.10);border-radius:24px;background:rgba(255,252,247,.94);box-shadow:0 10px 26px rgba(61,47,39,.08);display:flex;align-items:center;gap:12px;overflow:hidden;position:relative;z-index:18;transition:box-shadow .18s ease,transform .18s ease}
.house-room-switcher-focus{box-shadow:0 0 0 3px rgba(134,109,84,.16),0 14px 34px rgba(61,47,39,.13);transform:translateY(-1px)}
.house-room-switcher-title{display:flex;align-items:center;gap:9px;min-width:142px;padding:3px 6px}.house-room-switcher-title>span{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:#f1e9de;font-size:20px}.house-room-switcher-title div{display:flex;flex-direction:column;min-width:0}.house-room-switcher-title small{font-size:9px;letter-spacing:.11em;color:#948475;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.house-room-switcher-title strong{font-size:13px;color:#4f4339;white-space:nowrap}
.house-room-tabs{display:flex;gap:7px;min-width:0;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:1px 2px 2px;flex:1}.house-room-tabs::-webkit-scrollbar{display:none}
.house-room-tab{appearance:none;border:1px solid rgba(87,72,60,.10);background:#fffaf4;border-radius:16px;min-width:126px;padding:8px 10px;display:flex;align-items:center;gap:8px;text-align:left;position:relative;box-shadow:none;color:#51453c;touch-action:manipulation}.house-room-tab>span:first-child{width:31px;height:31px;border-radius:10px;background:#f4ede4;display:grid;place-items:center;font-size:17px;flex:0 0 auto}.house-room-tab>span:nth-child(2){display:flex;flex-direction:column;min-width:0}.house-room-tab strong{font-size:12px;line-height:1.15}.house-room-tab small{font-size:9px;color:#988979;margin-top:2px}.house-room-tab b{margin-left:auto;width:19px;height:19px;border-radius:50%;display:grid;place-items:center;background:#75614f;color:white;font-size:10px}.house-room-tab.active{border-color:rgba(106,84,65,.34);background:#f1e8dc;box-shadow:inset 0 0 0 1px rgba(106,84,65,.07)}.house-room-tab:active{transform:scale(.985)}
.house-room-switcher.remote-house-switcher{border-color:rgba(100,135,173,.20);background:rgba(247,251,255,.96)}.house-room-switcher.remote-house-switcher .house-room-switcher-title>span,.house-room-switcher.remote-house-switcher .house-room-tab>span:first-child{background:#eaf2fa}.house-room-switcher.remote-house-switcher .house-room-tab.active{background:#e9f2fb;border-color:rgba(90,128,167,.30)}
.house-room-current-badge{position:absolute;left:18px;top:16px;z-index:33;display:flex;align-items:center;gap:7px;padding:7px 10px;border-radius:14px;background:rgba(255,251,245,.90);border:1px solid rgba(76,61,49,.10);box-shadow:0 7px 18px rgba(48,39,32,.10);backdrop-filter:blur(8px);pointer-events:none}.house-room-current-badge>span{font-size:16px}.house-room-current-badge>div{display:flex;flex-direction:column}.house-room-current-badge small{font-size:7px;letter-spacing:.12em;font-weight:900;color:#9a8978}.house-room-current-badge strong{font-size:10px;color:#4f4339}.house-room-current-badge.remote{background:rgba(244,250,255,.91)}
.room[data-house-room="bedroom"] .room-wall-texture{opacity:.56}.room[data-house-room="kitchen"] .room-wall-texture{opacity:.46}.room[data-house-room="bathroom"] .room-wall-texture{opacity:.40}.room.house-room-no-bed .pet-zone{--house-room-bedless:1}
@media(max-width:700px){.house-room-switcher{display:block;padding:9px 8px 8px;border-radius:20px}.house-room-switcher-title{min-width:0;padding:1px 4px 7px}.house-room-switcher-title>span{width:30px;height:30px;font-size:17px}.house-room-switcher-title strong{font-size:12px}.house-room-tabs{width:100%;gap:6px}.house-room-tab{min-width:112px;padding:7px 8px;border-radius:14px}.house-room-tab>span:first-child{width:28px;height:28px;font-size:16px}.house-room-tab strong{font-size:11px}.house-room-tab small{font-size:8px}.house-room-current-badge{left:12px;top:12px;padding:6px 8px;border-radius:12px}}
@media(max-width:370px){.house-room-tab{min-width:104px}.house-room-switcher-title small{font-size:8px}}


/* =========================================================
   TinyPal v9.44 — Casa & Costruisci 2.0 · Fase 2
   Fix nanna multi-stanza + Compra 2.0
   ========================================================= */
.room.house-room-pet-elsewhere .pet-zone{opacity:0;visibility:hidden;pointer-events:none}
.sleeping-room-notice{position:absolute;left:50%;bottom:18px;translate:-50% 0;z-index:42;display:flex;align-items:center;gap:9px;max-width:calc(100% - 30px);padding:9px 12px;border-radius:16px;background:rgba(255,252,247,.93);border:1px solid rgba(90,74,61,.12);box-shadow:0 8px 22px rgba(56,43,34,.12);backdrop-filter:blur(8px);pointer-events:none}
.sleeping-room-notice.hidden{display:none!important}
.sleeping-room-notice>span{width:34px;height:34px;border-radius:11px;background:#eee7f4;display:grid;place-items:center;font-size:18px;flex:0 0 auto}
.sleeping-room-notice>div{min-width:0;display:flex;flex-direction:column}
.sleeping-room-notice small{font-size:7px;letter-spacing:.11em;font-weight:950;color:#998a7d;white-space:nowrap}
.sleeping-room-notice strong{margin-top:2px;font-size:10px;color:#51463d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

#catalogFilters:not(.hidden){display:block;padding:0 2px 9px}
.buy2-room-context{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:9px;margin-bottom:8px;padding:9px 10px;border-radius:16px;background:linear-gradient(135deg,#f5efe7,#fbf8f2);border:1px solid rgba(91,72,57,.09)}
.buy2-room-context>span{width:40px;height:40px;border-radius:13px;background:#fff;display:grid;place-items:center;font-size:21px;box-shadow:0 5px 13px rgba(63,48,36,.07)}
.buy2-room-context>div{min-width:0}.buy2-room-context small{display:block;font-size:7px;letter-spacing:.12em;color:#9a8979;font-weight:950}.buy2-room-context strong{display:block;margin-top:2px;font-size:12px;color:#51453b}.buy2-room-context>b{padding:5px 7px;border-radius:999px;background:#fff;color:#746455;font-size:8px;white-space:nowrap}
.buy2-search{height:42px;display:flex;align-items:center;gap:8px;padding:0 11px;margin-bottom:8px;border-radius:14px;background:#f7f4ef;border:1px solid rgba(91,75,62,.10)}
.buy2-search>span{font-size:16px}.buy2-search input{appearance:none;border:0;outline:0;background:transparent;width:100%;min-width:0;font:inherit;font-size:11px;color:#51453b}
.buy2-search input::placeholder{color:#a39990}
.buy2-category-row,.buy2-status-row{display:flex;gap:6px;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:1px 0 4px}
.buy2-category-row::-webkit-scrollbar,.buy2-status-row::-webkit-scrollbar{display:none}
.buy2-category-row .catalog-chip{flex:0 0 auto}
.buy2-status{appearance:none;flex:0 0 auto;border:1px solid rgba(91,75,62,.10);background:#fffaf4;border-radius:999px;padding:6px 9px;color:#88796b;font-size:8px;font-weight:850;white-space:nowrap}
.buy2-status.active{background:#665546;color:#fff;border-color:#665546}
.buy2-grid .action-card{min-height:116px}
.buy2-grid .action-card .owned{background:#e7eee3;color:#5d7158}
.buy2-grid .action-card.disabled{opacity:.78}
.buy2-empty{grid-column:1/-1;min-height:170px;padding:24px 14px;border-radius:20px;background:#f7f4ef;display:grid;place-items:center;text-align:center}
.buy2-empty span{font-size:28px}.buy2-empty strong{font-size:12px}.buy2-empty small{color:var(--muted);font-size:9px}
@media(max-width:390px){
  .buy2-room-context{grid-template-columns:36px minmax(0,1fr) auto;padding:8px}
  .buy2-room-context>span{width:36px;height:36px;font-size:19px}
  .buy2-room-context>b{font-size:7px}
  .sleeping-room-notice{bottom:12px}
}


/* =========================================================
   TinyPal v9.45 — Selettore stanze mobile 2×2
   Tutte le stanze restano visibili senza scroll orizzontale.
   ========================================================= */
@media(max-width:700px){
  .house-room-switcher{overflow:visible}
  .house-room-tabs{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
    width:100%;
    overflow:visible;
    overscroll-behavior-x:auto;
    padding:1px 2px 2px;
  }
  .house-room-tab{
    width:100%;
    min-width:0;
    min-height:54px;
    padding:8px 31px 8px 8px;
    gap:8px;
    border-radius:15px;
  }
  .house-room-tab>span:first-child{width:31px;height:31px;font-size:17px}
  .house-room-tab>span:nth-child(2){width:100%;overflow:hidden}
  .house-room-tab strong,.house-room-tab small{display:block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .house-room-tab strong{font-size:11.5px}
  .house-room-tab small{font-size:8px}
  .house-room-tab b{position:absolute;right:8px;top:50%;margin:0;transform:translateY(-50%)}
}
@media(max-width:350px){
  .house-room-tabs{gap:6px}
  .house-room-tab{min-height:51px;padding:7px 27px 7px 7px;gap:6px}
  .house-room-tab>span:first-child{width:28px;height:28px;font-size:15px}
  .house-room-tab strong{font-size:10.5px}
  .house-room-tab small{font-size:7.5px}
  .house-room-tab b{right:6px;width:18px;height:18px}
}

/* =========================================================
   TinyPal v9.47 — Stanze vive · arredi strutturali di base
   Camera, Cucina e Bagno non sono più gusci vuoti. Questi
   elementi fanno parte della stanza e non consumano inventario.
   ========================================================= */
.house-room-builtins{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden}
.house-room-builtin-set{display:none;position:absolute;inset:0}
.room[data-house-room="bedroom"] .builtin-bedroom,
.room[data-house-room="kitchen"] .builtin-kitchen,
.room[data-house-room="bathroom"] .builtin-bathroom{display:block}
.house-room-builtin-set>div{position:absolute;filter:drop-shadow(0 9px 6px rgba(61,45,34,.13))}

/* Camera: armadio, panca e cesta biancheria. */
.builtin-bedroom-wardrobe{left:34px;bottom:56px;width:112px;height:154px;border-radius:13px 13px 8px 8px;background:linear-gradient(90deg,#b78b69 0 49%,#a97d5d 49% 51%,#ba8d6a 51%);box-shadow:inset 0 8px rgba(255,255,255,.12),inset 0 -8px rgba(76,47,31,.07)}
.builtin-bedroom-wardrobe::before{content:"";position:absolute;left:9px;right:9px;top:11px;height:9px;border-radius:7px;background:rgba(255,255,255,.13)}
.builtin-bedroom-wardrobe i,.builtin-bedroom-wardrobe b{position:absolute;top:76px;width:5px;height:5px;border-radius:50%;background:#e4c49a;box-shadow:0 1px 0 rgba(73,44,28,.16)}
.builtin-bedroom-wardrobe i{left:47px}.builtin-bedroom-wardrobe b{right:47px}.builtin-bedroom-wardrobe em{position:absolute;left:8px;right:8px;bottom:8px;height:12px;border-radius:5px;background:rgba(85,55,38,.10)}
.builtin-bedroom-bench{right:102px;bottom:39px;width:112px;height:54px}
.builtin-bedroom-bench span{position:absolute;inset:0 0 17px;border-radius:17px;background:linear-gradient(180deg,#e4c3b3,#ca9e8a);box-shadow:inset 0 6px rgba(255,255,255,.22)}
.builtin-bedroom-bench i,.builtin-bedroom-bench b{position:absolute;bottom:0;width:9px;height:22px;border-radius:5px;background:#9d775e}.builtin-bedroom-bench i{left:18px}.builtin-bedroom-bench b{right:18px}
.builtin-bedroom-hamper{right:31px;bottom:48px;width:52px;height:61px;border-radius:9px 9px 18px 18px;background:repeating-linear-gradient(90deg,#c9a879 0 5px,#b89566 5px 8px);transform:rotate(2deg)}
.builtin-bedroom-hamper span{position:absolute;left:-3px;right:-3px;top:-4px;height:9px;border-radius:999px;background:#9b774f}.builtin-bedroom-hamper i{position:absolute;left:11px;right:11px;top:10px;height:5px;border-radius:999px;border:2px solid rgba(92,65,44,.34)}

/* Cucina: blocco cucina, frigorifero e tavolino. */
.builtin-kitchen-counter{left:33px;bottom:60px;width:262px;height:116px;border-radius:8px 8px 12px 12px;background:linear-gradient(180deg,#e4d8c8 0 16px,#b7ad9e 16px 20px,#c6b59e 20px);box-shadow:inset 0 -10px rgba(91,66,46,.06)}
.builtin-kitchen-counter::before{content:"";position:absolute;left:0;right:0;top:-8px;height:15px;border-radius:8px;background:linear-gradient(180deg,#f2eee7,#c5beb5);box-shadow:0 4px 0 rgba(70,53,41,.08)}
.builtin-kitchen-counter span{position:absolute;left:21px;top:24px;width:77px;height:44px;border-radius:7px;background:#e9e3d9;box-shadow:inset 0 0 0 5px #a9a39c}
.builtin-kitchen-counter span::before{content:"";position:absolute;left:35px;top:-15px;width:7px;height:24px;border-radius:7px 7px 2px 2px;background:#85827d}
.builtin-kitchen-counter i{position:absolute;bottom:13px;width:62px;height:51px;border-radius:6px;background:rgba(255,255,255,.18);box-shadow:inset 0 0 0 2px rgba(103,79,58,.07)}
.builtin-kitchen-counter i:nth-of-type(1){left:13px}.builtin-kitchen-counter i:nth-of-type(2){left:99px}.builtin-kitchen-counter i:nth-of-type(3){right:13px}.builtin-kitchen-counter b{position:absolute;right:26px;top:16px;width:55px;height:24px;border-radius:5px;background:linear-gradient(180deg,#2f2e2b,#504c46);box-shadow:inset 0 3px rgba(255,255,255,.12)}
.builtin-kitchen-fridge{right:27px;bottom:55px;width:91px;height:162px;border-radius:14px 14px 9px 9px;background:linear-gradient(90deg,#e9eceb,#d2d7d6);box-shadow:inset 7px 0 rgba(255,255,255,.32),inset -6px 0 rgba(79,90,89,.06)}
.builtin-kitchen-fridge::after{content:"";position:absolute;left:0;right:0;top:62px;height:3px;background:rgba(83,91,90,.13)}
.builtin-kitchen-fridge span{position:absolute;right:12px;top:18px;width:4px;height:36px;border-radius:4px;background:#8f9795}.builtin-kitchen-fridge i{position:absolute;right:12px;top:79px;width:4px;height:31px;border-radius:4px;background:#8f9795}.builtin-kitchen-fridge b{position:absolute;left:15px;top:15px;width:29px;height:21px;border-radius:5px;background:#c1d3c8;box-shadow:inset 0 0 0 2px rgba(73,94,80,.10)}
.builtin-kitchen-table{right:145px;bottom:29px;width:130px;height:73px}
.builtin-kitchen-table span{position:absolute;left:0;right:0;top:0;height:25px;border-radius:50%;background:linear-gradient(180deg,#c99667,#ab774d);box-shadow:0 7px 0 rgba(83,53,34,.09)}
.builtin-kitchen-table i{position:absolute;left:61px;top:20px;width:9px;height:49px;border-radius:6px;background:#876247}.builtin-kitchen-table b,.builtin-kitchen-table em{position:absolute;bottom:0;width:52px;height:27px;border-radius:50% 50% 10px 10px;background:#aa7d58;opacity:.92}.builtin-kitchen-table b{left:-24px}.builtin-kitchen-table em{right:-24px}

/* Bagno: vasca, lavabo e WC. */
.builtin-bath-tub{left:36px;bottom:42px;width:224px;height:92px;border-radius:24px 24px 36px 36px;background:linear-gradient(180deg,#f8fbfb,#dce7e7);box-shadow:inset 0 -13px rgba(103,133,136,.08),inset 0 0 0 5px rgba(255,255,255,.60)}
.builtin-bath-tub::before{content:"";position:absolute;left:15px;right:15px;top:13px;height:47px;border-radius:50%;background:linear-gradient(180deg,#b8e2e9,#8ccad8);box-shadow:inset 0 6px rgba(255,255,255,.28)}
.builtin-bath-tub span{position:absolute;right:26px;top:-31px;width:7px;height:38px;border-radius:7px 7px 0 0;background:#8f999a}.builtin-bath-tub span::after{content:"";position:absolute;right:-15px;top:0;width:20px;height:7px;border-radius:8px;background:#8f999a}.builtin-bath-tub i,.builtin-bath-tub b{position:absolute;bottom:-7px;width:18px;height:12px;border-radius:5px;background:#a3aaaa}.builtin-bath-tub i{left:37px}.builtin-bath-tub b{right:37px}
.builtin-bath-sink{right:32px;bottom:65px;width:108px;height:128px}
.builtin-bath-sink span{position:absolute;left:5px;right:5px;top:0;height:35px;border-radius:50% 50% 18px 18px;background:linear-gradient(180deg,#fbfdfd,#dce6e5);box-shadow:inset 0 0 0 4px rgba(173,192,190,.24)}
.builtin-bath-sink i{position:absolute;left:51px;top:24px;width:8px;height:73px;border-radius:5px;background:#c9d1cf}.builtin-bath-sink b{position:absolute;left:22px;right:22px;bottom:3px;height:42px;border-radius:9px;background:#c7d5d1;box-shadow:inset 0 7px rgba(255,255,255,.22)}.builtin-bath-sink em{position:absolute;left:49px;top:-19px;width:10px;height:25px;border-radius:8px;background:#8d9998}
.builtin-bath-toilet{right:170px;bottom:45px;width:89px;height:91px}
.builtin-bath-toilet span{position:absolute;left:13px;right:13px;top:0;height:43px;border-radius:48% 48% 39% 39%;background:#f7f9f8;box-shadow:inset 0 0 0 5px #dde5e3}.builtin-bath-toilet i{position:absolute;left:20px;right:20px;top:35px;height:45px;border-radius:12px 12px 28px 28px;background:#edf2f0}.builtin-bath-toilet b{position:absolute;left:15px;right:15px;bottom:1px;height:10px;border-radius:50%;background:#cbd5d2}

.room.night .house-room-builtins{filter:brightness(.66) saturate(.88)}
.room.ambient-lamps-on .house-room-builtins{filter:brightness(.93)}
@media(max-width:560px){
  .builtin-bedroom-wardrobe{left:31px}.builtin-bedroom-bench{right:99px}.builtin-bedroom-hamper{right:30px}
  .builtin-kitchen-counter{left:31px}.builtin-kitchen-fridge{right:26px}.builtin-kitchen-table{right:142px}
  .builtin-bath-tub{left:32px}.builtin-bath-sink{right:29px}.builtin-bath-toilet{right:166px}
}


/* =========================================================
   TinyPal v9.49 — Multi-stanza canonica
   Ogni ambiente ha un set strutturale sempre visibile. La
   classe .active viene sincronizzata dal runtime e rende la
   scena robusta anche dopo refresh, sync e cambio dispositivo.
   ========================================================= */
.house-room-builtins{display:block!important;opacity:1;visibility:visible;contain:layout paint}
.house-room-builtin-set.active{display:block!important}
.room[data-house-room="living"] .builtin-living,
.room[data-house-room="bedroom"] .builtin-bedroom,
.room[data-house-room="kitchen"] .builtin-kitchen,
.room[data-house-room="bathroom"] .builtin-bathroom{display:block}

/* Soggiorno: divano, tavolino e libreria strutturali. */
.builtin-living-sofa{left:calc(50% + 112px);bottom:52px;width:232px;height:112px}
.builtin-living-sofa::before{content:"";position:absolute;left:18px;right:18px;bottom:0;height:72px;border-radius:25px 25px 17px 17px;background:linear-gradient(180deg,#c9a58f,#ae826c);box-shadow:inset 0 8px rgba(255,255,255,.16),inset 0 -10px rgba(87,55,41,.08)}
.builtin-living-sofa::after{content:"";position:absolute;left:0;right:0;bottom:17px;height:52px;border-radius:23px;background:linear-gradient(180deg,#d6b5a2,#bc9079);box-shadow:inset 0 6px rgba(255,255,255,.16)}
.builtin-living-sofa span,.builtin-living-sofa i{position:absolute;top:21px;width:75px;height:47px;border-radius:17px;background:#dfc3b2;z-index:1;box-shadow:inset 0 -5px rgba(98,65,48,.06)}
.builtin-living-sofa span{left:35px;transform:rotate(-2deg)}.builtin-living-sofa i{right:35px;transform:rotate(2deg)}
.builtin-living-sofa b{position:absolute;left:25px;right:25px;bottom:-7px;height:13px;border-radius:50%;background:rgba(74,48,34,.13);filter:blur(4px)}
.builtin-living-table{left:calc(50% - 22px);bottom:21px;width:142px;height:58px}
.builtin-living-table span{position:absolute;left:0;right:0;top:0;height:28px;border-radius:50%;background:linear-gradient(180deg,#c99566,#a96f45);box-shadow:0 7px rgba(73,45,28,.10)}
.builtin-living-table i,.builtin-living-table b{position:absolute;top:23px;width:10px;height:32px;border-radius:5px;background:#8f6548}.builtin-living-table i{left:32px;transform:rotate(5deg)}.builtin-living-table b{right:32px;transform:rotate(-5deg)}
.builtin-living-bookcase{left:calc(50% - 247px);bottom:51px;width:94px;height:154px;border-radius:10px 10px 7px 7px;background:linear-gradient(90deg,#a77855,#bd8c67 12% 88%,#936545);box-shadow:inset 0 8px rgba(255,255,255,.10)}
.builtin-living-bookcase::before,.builtin-living-bookcase::after{content:"";position:absolute;left:10px;right:10px;height:6px;border-radius:4px;background:#80563c;box-shadow:0 3px rgba(60,37,24,.08)}
.builtin-living-bookcase::before{top:50px}.builtin-living-bookcase::after{top:101px}
.builtin-living-bookcase span,.builtin-living-bookcase i,.builtin-living-bookcase b,.builtin-living-bookcase em{position:absolute;bottom:56px;width:13px;border-radius:3px 3px 1px 1px;background:#d8b66f}
.builtin-living-bookcase span{left:17px;height:34px}.builtin-living-bookcase i{left:32px;height:28px;background:#77927b}.builtin-living-bookcase b{left:49px;height:38px;background:#ba7b6d}.builtin-living-bookcase em{right:16px;height:25px;background:#7e91aa}

/* Gli arredi principali rimangono nel tratto centrale della stanza estesa:
   sul telefono non finiscono fuori dall'inquadratura dopo il centraggio. */
.builtin-bedroom-wardrobe{left:calc(50% - 247px);right:auto}
.builtin-bedroom-bench{left:calc(50% + 105px);right:auto}
.builtin-bedroom-hamper{left:calc(50% + 218px);right:auto}
.builtin-kitchen-counter{left:calc(50% - 300px);right:auto}
.builtin-kitchen-fridge{left:calc(50% + 194px);right:auto}
.builtin-kitchen-table{left:calc(50% + 56px);right:auto}
.builtin-bath-tub{left:calc(50% - 292px);right:auto}
.builtin-bath-sink{left:calc(50% + 190px);right:auto}
.builtin-bath-toilet{left:calc(50% + 61px);right:auto}

@media(max-width:560px){
  .house-room-builtin-set>div{filter:drop-shadow(0 7px 5px rgba(61,45,34,.12))}
  .builtin-living-sofa{left:calc(50% + 108px)}
  .builtin-living-bookcase{left:calc(50% - 244px)}
  .builtin-bedroom-wardrobe{left:calc(50% - 244px)}
  .builtin-bedroom-bench{left:calc(50% + 101px)}
  .builtin-bedroom-hamper{left:calc(50% + 214px)}
  .builtin-kitchen-counter{left:calc(50% - 297px)}
  .builtin-kitchen-fridge{left:calc(50% + 190px)}
  .builtin-kitchen-table{left:calc(50% + 52px)}
  .builtin-bath-tub{left:calc(50% - 288px)}
  .builtin-bath-sink{left:calc(50% + 186px)}
  .builtin-bath-toilet{left:calc(50% + 57px)}
}

/* =========================================================
   TinyPal v9.50 — Casa multi-stanza 2.0
   Indicatore della posizione fisica di TinyPal e collegamento
   esplicito tra il Bagno e il minigioco del bagnetto.
   ========================================================= */
.house-room-tab.pet-here{border-color:rgba(87,126,91,.38);box-shadow:inset 0 0 0 1px rgba(87,126,91,.10),0 5px 14px rgba(73,108,78,.08)}
.house-room-tab .house-room-pet-marker{position:absolute;right:7px;bottom:5px;width:19px;height:19px;border-radius:999px;display:grid;place-items:center;background:#e4f0e2;color:#54705a;font-size:10px;font-style:normal;line-height:1;box-shadow:0 2px 6px rgba(64,91,68,.14)}
.house-room-tab.active .house-room-pet-marker{right:31px}
.house-room-switcher[data-pet-room] .house-room-switcher-title strong{color:#506552}
.room.house-room-pet-elsewhere .pet-zone{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
.interactive-bath-house-location{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:10px;margin:0 2px 10px;padding:9px 11px;border-radius:17px;background:linear-gradient(135deg,#eef8f8,#f8fcfb);border:1px solid rgba(78,126,129,.14);color:#476568}
.interactive-bath-house-location>span{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:#fff;font-size:22px;box-shadow:0 5px 13px rgba(55,91,94,.08)}
.interactive-bath-house-location>div{min-width:0;display:flex;flex-direction:column}.interactive-bath-house-location small{font-size:7px;letter-spacing:.12em;font-weight:900;color:#7b999b}.interactive-bath-house-location strong{margin-top:2px;font-size:11px;color:#476568}.interactive-bath-house-location>b{width:30px;height:30px;border-radius:11px;display:grid;place-items:center;background:#dcefeb;font-size:14px}
@media(max-width:390px){
  .house-room-tab .house-room-pet-marker{right:5px;bottom:4px;width:18px;height:18px;font-size:9px}
  .house-room-tab.active .house-room-pet-marker{right:28px}
  .interactive-bath-house-location{grid-template-columns:36px minmax(0,1fr) auto;padding:8px;gap:8px}.interactive-bath-house-location>span{width:36px;height:36px;font-size:19px}
}


/* =========================================================
   TinyPal v9.51 — Fase 1 · selettore stanze stabile
   Hit area coerente su iOS/Android/desktop e nessun elemento
   interno intercetta il tap destinato al pulsante stanza.
   ========================================================= */
.house-room-tab{cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;touch-action:manipulation}
.house-room-tab>*{pointer-events:none}
.house-room-tab[aria-pressed="true"]{outline:0}
@media(max-width:700px){
  .house-room-tab{min-height:58px}
  .house-room-tabs{touch-action:pan-y}
}


/* =========================================================
   TinyPal v9.52 — FASE 2 · IDENTITÀ VISIVA + ARREDO TRA STANZE
   La stanza attiva determina in modo univoco architettura e
   arredi strutturali. Wallpaper e pavimento restano personali.
   ========================================================= */
.house-room-architecture{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.house-room-arch{display:none;position:absolute;inset:0;pointer-events:none}
.room[data-house-room="living"] .house-room-arch[data-room-architecture="living"],
.room[data-house-room="bedroom"] .house-room-arch[data-room-architecture="bedroom"],
.room[data-house-room="kitchen"] .house-room-arch[data-room-architecture="kitchen"],
.room[data-house-room="bathroom"] .house-room-arch[data-room-architecture="bathroom"]{display:block}

/* Soggiorno: boiserie/pannelli morbidi, riconoscibili anche cambiando wallpaper. */
.arch-living::before{content:"";position:absolute;left:11%;right:11%;top:20%;height:25%;border-top:2px solid rgba(126,93,66,.10);border-bottom:2px solid rgba(126,93,66,.08);background:repeating-linear-gradient(90deg,transparent 0 112px,rgba(126,93,66,.075) 112px 114px)}
.arch-living::after{content:"";position:absolute;left:50%;top:31%;width:164px;height:76px;translate:-50% -50%;border:7px solid rgba(255,255,255,.18);border-radius:4px;box-shadow:inset 0 0 0 2px rgba(109,82,61,.06)}

/* Camera: parete testata e due luci decorative dietro la zona notte. */
.arch-bedroom::before{content:"";position:absolute;left:50%;top:18%;width:min(360px,64%);height:126px;translate:-50% 0;border-radius:34px 34px 8px 8px;background:linear-gradient(180deg,rgba(255,255,255,.16),rgba(142,101,84,.055));border:1px solid rgba(125,88,72,.07)}
.arch-bedroom::after{content:"";position:absolute;left:50%;top:27%;width:280px;height:12px;translate:-50% 0;background:radial-gradient(circle at 0 50%,rgba(255,221,164,.38) 0 7px,transparent 8px),radial-gradient(circle at 100% 50%,rgba(255,221,164,.38) 0 7px,transparent 8px);filter:drop-shadow(0 0 8px rgba(255,218,150,.20))}

/* Cucina: fascia piastrellata/paraspruzzi che resta anche con colori personalizzati. */
.arch-kitchen::before{content:"";position:absolute;left:7%;right:7%;top:28%;height:108px;border-radius:12px;background:linear-gradient(rgba(255,255,255,.25),rgba(255,255,255,.16)),repeating-linear-gradient(90deg,rgba(104,116,109,.09) 0 1px,transparent 1px 52px),repeating-linear-gradient(180deg,rgba(104,116,109,.08) 0 1px,transparent 1px 32px);border:1px solid rgba(92,105,98,.08)}
.arch-kitchen::after{content:"";position:absolute;left:18%;right:18%;top:16%;height:48px;border-radius:8px;background:repeating-linear-gradient(90deg,rgba(239,235,226,.64) 0 88px,rgba(177,165,148,.22) 88px 91px);box-shadow:0 7px 0 rgba(86,72,58,.045)}

/* Bagno: parete piastrellata più chiara e fascia acqua. */
.arch-bathroom::before{content:"";position:absolute;inset:0 0 44% 0;background:linear-gradient(rgba(246,253,253,.18),rgba(226,242,242,.11)),repeating-linear-gradient(90deg,rgba(90,124,127,.09) 0 1px,transparent 1px 62px),repeating-linear-gradient(180deg,rgba(90,124,127,.08) 0 1px,transparent 1px 46px);opacity:.72}
.arch-bathroom::after{content:"";position:absolute;left:50%;top:15%;width:118px;height:72px;translate:-50% 0;border-radius:50% 50% 14px 14px;background:linear-gradient(160deg,rgba(255,255,255,.48),rgba(177,218,224,.22));border:6px solid rgba(245,250,249,.50);box-shadow:0 7px 14px rgba(75,105,108,.07)}

/* La regola finale è volutamente più forte dei vecchi wrapper: un solo set
   strutturale può essere visibile per volta. */
.house-room-builtin-set{display:none!important}
.room[data-house-room="living"] .house-room-builtin-set[data-structural-room="living"],
.room[data-house-room="bedroom"] .house-room-builtin-set[data-structural-room="bedroom"],
.room[data-house-room="kitchen"] .house-room-builtin-set[data-structural-room="kitchen"],
.room[data-house-room="bathroom"] .house-room-builtin-set[data-structural-room="bathroom"]{display:block!important}

.house-room-current-badge[data-visual-room="living"]{border-color:rgba(152,105,74,.16)}
.house-room-current-badge[data-visual-room="bedroom"]{border-color:rgba(171,112,126,.18)}
.house-room-current-badge[data-visual-room="kitchen"]{border-color:rgba(83,133,111,.18)}
.house-room-current-badge[data-visual-room="bathroom"]{border-color:rgba(73,125,150,.18)}

.arrange-room-transfer{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding-top:9px;margin-top:2px;border-top:1px solid rgba(255,255,255,.12)}
.arrange-room-transfer.hidden{display:none!important}
.arrange-room-transfer-copy{min-width:0;display:flex;flex-direction:column}.arrange-room-transfer-copy small{font-size:8px;letter-spacing:.12em;font-weight:900;opacity:.56}.arrange-room-transfer-copy strong{font-size:11px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.arrange-room-transfer-buttons{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.arrange-room-transfer-buttons button{min-width:72px;height:34px;border:0;border-radius:11px;background:rgba(255,255,255,.12);color:#fff;padding:0 8px;font-size:10px;font-weight:850;display:flex;align-items:center;justify-content:center;gap:4px;touch-action:manipulation}.arrange-room-transfer-buttons button:disabled{opacity:.28}.arrange-room-transfer-buttons button:active:not(:disabled){transform:scale(.96);background:rgba(255,255,255,.20)}
@media(max-width:520px){.arrange-room-transfer{grid-template-columns:1fr}.arrange-room-transfer-buttons{justify-content:flex-start}.arrange-room-transfer-buttons button{flex:1 1 82px;min-width:0}}


/* =========================================================
   TinyPal v9.53 — FASE 3 · STANZE PULITE
   Gli arredi strutturali automatici sono stati rimossi dal DOM.
   Queste regole neutralizzano anche eventuali residui di cache/markup vecchio
   e lasciano l'identità della stanza soltanto nello sfondo.
   ========================================================= */
.house-room-builtins,.house-room-builtin-set,[data-structural-room]{display:none!important;visibility:hidden!important;opacity:0!important;pointer-events:none!important}
.house-room-arch::after{content:none!important;display:none!important}

/* Identità ambientale leggera: nessun elemento ha sagoma da mobile. */
.arch-living::before{left:0!important;right:0!important;top:22%!important;height:21%!important;border:0!important;border-top:1px solid rgba(126,93,66,.07)!important;border-bottom:1px solid rgba(126,93,66,.055)!important;background:repeating-linear-gradient(90deg,transparent 0 128px,rgba(126,93,66,.035) 128px 129px)!important;border-radius:0!important}
.arch-bedroom::before{left:0!important;right:0!important;top:0!important;width:auto!important;height:44%!important;translate:none!important;border:0!important;border-radius:0!important;background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(143,101,84,.025))!important}
.arch-kitchen::before{left:0!important;right:0!important;top:29%!important;height:78px!important;border-radius:0!important;border-left:0!important;border-right:0!important;background:linear-gradient(rgba(255,255,255,.12),rgba(255,255,255,.055)),repeating-linear-gradient(90deg,rgba(92,105,98,.055) 0 1px,transparent 1px 54px),repeating-linear-gradient(180deg,rgba(92,105,98,.05) 0 1px,transparent 1px 30px)!important;border-top:1px solid rgba(92,105,98,.055)!important;border-bottom:1px solid rgba(92,105,98,.05)!important}
.arch-bathroom::before{inset:0 0 44% 0!important;background:linear-gradient(rgba(246,253,253,.09),rgba(226,242,242,.045)),repeating-linear-gradient(90deg,rgba(90,124,127,.055) 0 1px,transparent 1px 58px),repeating-linear-gradient(180deg,rgba(90,124,127,.05) 0 1px,transparent 1px 42px)!important;opacity:.62!important}

/* Il banner 'TinyPal è in un'altra stanza' non copre più i mobili sul pavimento. */
.sleeping-room-notice{bottom:12px!important;max-width:min(330px,calc(100% - 30px))!important}
@media(max-width:560px){.sleeping-room-notice{bottom:10px!important;transform:translateX(-50%) scale(.94);transform-origin:center bottom}}

/* =========================================================
   TinyPal v9.63 · Casa & Arredo / set base stanza
   ========================================================= */
.furniture-shop-panel{border-top:1px solid rgba(255,255,255,.08)}
.furniture-set-roadmap{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:10px 0 14px}
.furniture-set-roadmap-item{display:flex;align-items:center;gap:9px;min-width:0;padding:10px;border-radius:16px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.07)}
.furniture-set-roadmap-item>span{font-size:24px}.furniture-set-roadmap-item div{min-width:0;display:flex;flex-direction:column}.furniture-set-roadmap-item strong{font-size:12px;line-height:1.15}.furniture-set-roadmap-item small{font-size:8px;font-weight:900;letter-spacing:.08em;opacity:.65;margin-top:3px}
.furniture-set-roadmap-item.next{background:rgba(255,222,150,.12);border-color:rgba(255,222,150,.22)}.furniture-set-roadmap-item.next small{opacity:1}
.furniture-room-badge{display:inline-flex;width:max-content;margin-top:4px;padding:3px 6px;border-radius:999px;background:rgba(255,255,255,.08);font-size:8px;font-style:normal;font-weight:950;letter-spacing:.08em}
.furniture-store-empty{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:22px 14px;border-radius:18px;background:rgba(255,255,255,.04);border:1px dashed rgba(255,255,255,.13)}.furniture-store-empty>span{font-size:34px}.furniture-store-empty p{margin:0;max-width:310px;opacity:.72;font-size:12px}
.city-place-furniture{transform:translate(-50%,-50%) scale(.94)}
.city-location-scene.place-furniture .shop-wall-sign strong{font-size:0}.city-location-scene.place-furniture .shop-wall-sign strong:after{content:"TINY HOME";font-size:14px}.city-location-scene.place-furniture .shop-wall-sign small{font-size:0}.city-location-scene.place-furniture .shop-wall-sign small:after{content:"CASA & ARREDO";font-size:8px}.city-location-scene.place-furniture .sct-food{font-size:0}.city-location-scene.place-furniture .sct-food:after{content:"MOBILI";font-size:9px}.city-location-scene.place-furniture .sct-play{font-size:0}.city-location-scene.place-furniture .sct-play:after{content:"DECOR";font-size:9px}
@media(max-width:430px){.furniture-set-roadmap{grid-template-columns:1fr 1fr}.furniture-set-roadmap-item{padding:8px}.furniture-set-roadmap-item strong{font-size:11px}.city-place-furniture{transform:translate(-50%,-50%) scale(.88)}}


/* v9.63.1 — Riparazione identità Tiny */
.identity-repair-v9631{margin-top:12px;padding:12px;border-radius:18px;background:rgba(255,255,255,.68);border:1px solid rgba(93,106,91,.14);display:flex;gap:12px;align-items:center;justify-content:space-between}
.identity-repair-v9631>div{display:flex;gap:10px;align-items:center;min-width:0}.identity-repair-v9631>div>span{font-size:24px}.identity-repair-v9631 p{margin:0;display:grid;gap:2px;min-width:0}.identity-repair-v9631 strong{font-size:13px}.identity-repair-v9631 small{font-size:11px;opacity:.7;line-height:1.25}.identity-repair-v9631 button{border:0;border-radius:12px;padding:9px 11px;font-weight:800;font-size:11px;white-space:nowrap;background:var(--ink,#30372f);color:white}.identity-repair-v9631 button:disabled{opacity:.55}
@media(max-width:520px){.identity-repair-v9631{align-items:stretch;flex-direction:column}.identity-repair-v9631 button{width:100%;min-height:42px}}


/* =========================================================
   TinyPal v9.63.2 — Connessione Cloud reale
   ========================================================= */
.account-reconnect-v9632{margin-top:12px;padding:12px;border-radius:18px;background:linear-gradient(145deg,rgba(247,252,249,.86),rgba(236,246,241,.72));border:1px solid rgba(73,115,92,.14);box-shadow:0 8px 24px rgba(54,83,66,.055)}
.account-reconnect-v9632 .ar-head{display:flex;gap:10px;align-items:flex-start;margin-bottom:9px}.account-reconnect-v9632 .ar-head>span{font-size:25px;line-height:1}.account-reconnect-v9632 .ar-head p{margin:0;display:grid;gap:2px}.account-reconnect-v9632 .ar-head strong{font-size:13px}.account-reconnect-v9632 .ar-head small{font-size:10px;line-height:1.3;opacity:.68}
.account-reconnect-v9632 .ar-state{display:grid;grid-template-columns:1fr;gap:6px;margin:8px 0 10px}.account-reconnect-v9632 .ar-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 9px;border-radius:12px;background:rgba(255,255,255,.58);border:1px solid rgba(70,100,80,.075)}.account-reconnect-v9632 .ar-row span{font-size:11px;font-weight:800}.account-reconnect-v9632 .ar-row b{font-size:9px;letter-spacing:.035em;padding:4px 7px;border-radius:999px;background:rgba(91,113,96,.09);white-space:nowrap}.account-reconnect-v9632 .ar-row b.ok{background:rgba(59,139,91,.12);color:#287247}.account-reconnect-v9632 .ar-row b.warn{background:rgba(198,132,42,.12);color:#8b5c1e}.account-reconnect-v9632 .ar-row b.off{opacity:.58}
.account-reconnect-v9632 button{width:100%;min-height:42px;border:0;border-radius:13px;background:var(--ink,#30372f);color:white;font-weight:900;font-size:12px;box-shadow:0 5px 13px rgba(44,54,46,.12);touch-action:manipulation}.account-reconnect-v9632 button:disabled{opacity:.5;box-shadow:none}.account-reconnect-v9632 .ar-note{display:block;margin-top:7px;text-align:center;font-size:9px;line-height:1.3;opacity:.58}
.account-reconnect-v9632-copy{display:flex;gap:10px;align-items:center;margin-bottom:10px}.account-reconnect-v9632-copy>span{font-size:25px;line-height:1}.account-reconnect-v9632-copy>div{display:grid;gap:2px;min-width:0}.account-reconnect-v9632-copy strong{font-size:13px}.account-reconnect-v9632-copy small{font-size:10px;line-height:1.3;opacity:.68}
.account-reconnect-v9632-lines{display:grid;gap:6px;margin-top:10px}.account-reconnect-v9632-lines>span{display:grid;grid-template-columns:8px minmax(0,1fr) auto;gap:7px;align-items:center;padding:7px 9px;border-radius:11px;background:rgba(255,255,255,.54);font-size:10px;font-weight:800}.account-reconnect-v9632-lines i{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.4}.account-reconnect-v9632-lines b{font-size:9px;font-weight:950;opacity:.72;white-space:nowrap}
.account-reconnect-v9632[data-state="online"]{border-color:rgba(54,145,91,.20);background:linear-gradient(145deg,rgba(239,252,244,.92),rgba(230,247,238,.78))}.account-reconnect-v9632[data-state="offline"]{border-color:rgba(127,132,129,.16)}.account-reconnect-v9632[data-state="mismatch"],.account-reconnect-v9632[data-state="reconnecting"]{border-color:rgba(197,138,46,.24);background:linear-gradient(145deg,rgba(255,249,235,.92),rgba(250,240,217,.76))}

/* =========================================================
   TinyPal v9.64 — FASE 14 · SET BASE SOGGIORNO
   Soft-3D coerente con la collezione arredi v8.55.
   I tre pezzi nuovi restano compatibili con Arredo Pro.
   ========================================================= */
.room-living-sofa,.room-living-coffee-table,.room-living-media-console{
  position:absolute;transform-origin:center bottom;user-select:none;-webkit-user-select:none;
}
.room-living-sofa{
  --sofa-hi:#c7d8c9;--sofa-main:#9eb6a2;--sofa-low:#748c79;--sofa-dark:#536a59;--sofa-thread:rgba(67,85,70,.20);
  left:26%;top:69%;width:214px;height:118px;z-index:4;
  filter:drop-shadow(0 12px 8px rgba(52,38,27,.17));
}
.room-living-sofa.tone-rose{--sofa-hi:#efd3dc;--sofa-main:#d8acbb;--sofa-low:#b77e93;--sofa-dark:#875b6d;--sofa-thread:rgba(103,65,80,.18)}
.room-living-sofa.tone-sky{--sofa-hi:#d5e4ef;--sofa-main:#abc6da;--sofa-low:#789db8;--sofa-dark:#58778e;--sofa-thread:rgba(63,88,108,.18)}
.room-living-sofa.tone-cream{--sofa-hi:#f2eadc;--sofa-main:#dbcbb7;--sofa-low:#b8a58e;--sofa-dark:#887866;--sofa-thread:rgba(92,78,61,.16)}
.room-living-sofa .living-sofa-back{position:absolute;left:17px;right:17px;top:6px;height:65px;border-radius:34px 34px 17px 17px;background:linear-gradient(150deg,var(--sofa-hi),var(--sofa-main) 55%,var(--sofa-low));border:1px solid rgba(57,54,44,.11);box-shadow:inset 0 8px rgba(255,255,255,.13),inset 0 -8px rgba(55,45,35,.05)}
.room-living-sofa .living-sofa-back::after{content:"";position:absolute;inset:10px 14px 12px;border:1px solid rgba(255,255,255,.15);border-radius:24px 24px 12px 12px}
.room-living-sofa .living-sofa-back i{position:absolute;top:14px;width:4px;height:4px;border-radius:50%;background:rgba(83,73,63,.23);box-shadow:0 1px rgba(255,255,255,.28)}
.room-living-sofa .living-sofa-back i:nth-child(1){left:27%}.room-living-sofa .living-sofa-back i:nth-child(2){left:50%}.room-living-sofa .living-sofa-back i:nth-child(3){left:73%}
.room-living-sofa .living-sofa-seat{position:absolute;left:22px;right:22px;top:54px;height:47px;display:grid;grid-template-columns:1fr 1fr;gap:5px;z-index:3}
.room-living-sofa .living-sofa-seat span{border-radius:15px 15px 19px 19px;background:linear-gradient(180deg,var(--sofa-hi),var(--sofa-main));border:1px solid rgba(62,53,43,.10);box-shadow:inset 0 5px rgba(255,255,255,.13),0 4px 4px rgba(47,35,25,.08)}
.room-living-sofa .living-sofa-arm{position:absolute;top:45px;width:28px;height:53px;border-radius:15px 15px 12px 12px;background:linear-gradient(135deg,var(--sofa-hi),var(--sofa-main) 55%,var(--sofa-low));border:1px solid rgba(65,54,44,.11);z-index:4;box-shadow:inset 4px 0 rgba(255,255,255,.08)}
.room-living-sofa .arm-left{left:1px;transform:rotate(-2deg)}.room-living-sofa .arm-right{right:1px;transform:rotate(2deg)}
.room-living-sofa .living-sofa-leg{position:absolute;bottom:4px;width:13px;height:18px;border-radius:2px 2px 6px 6px;background:linear-gradient(90deg,#7c5a42,#4e382b);z-index:1}.room-living-sofa .leg-left{left:31px}.room-living-sofa .leg-right{right:31px}
.room-living-sofa .living-sofa-throw{position:absolute;right:30px;top:31px;width:47px;height:56px;border-radius:16px 8px 18px 10px;background:repeating-linear-gradient(135deg,rgba(255,255,255,.12) 0 4px,transparent 4px 8px),linear-gradient(160deg,#e9c998,#c99a63);transform:rotate(7deg);z-index:5;box-shadow:0 4px 5px rgba(56,39,25,.09)}
.room-living-sofa .living-sofa-throw::after{content:"";position:absolute;left:7px;right:7px;bottom:5px;border-bottom:2px dotted rgba(91,59,32,.24)}
.room-living-sofa .living-sofa-pillow{position:absolute;left:29px;top:34px;width:44px;height:37px;border-radius:13px 15px 13px 16px;background:linear-gradient(145deg,#f2d9bb,#deb88c);border:1px solid rgba(106,76,48,.09);transform:rotate(-8deg);z-index:5;box-shadow:inset 4px 3px rgba(255,255,255,.15),0 4px 5px rgba(50,36,25,.08)}
.room-living-sofa::after{content:"";position:absolute;left:20px;right:20px;bottom:-2px;height:12px;border-radius:50%;background:rgba(54,38,27,.13);filter:blur(4px);z-index:-1}

.room-living-coffee-table{
  --table-hi:#e6c59f;--table-main:#c99b70;--table-low:#9f6d49;--table-dark:#71482f;
  left:52%;top:78%;width:156px;height:83px;z-index:5;filter:drop-shadow(0 10px 7px rgba(48,34,24,.15));
}
.room-living-coffee-table.tone-walnut{--table-hi:#b98564;--table-main:#8e5c42;--table-low:#70432f;--table-dark:#48291e}
.room-living-coffee-table.tone-cream{--table-hi:#f1e7d8;--table-main:#d8c6ae;--table-low:#b29d83;--table-dark:#7f6c58}
.room-living-coffee-table.tone-sage{--table-hi:#c8d2c6;--table-main:#9fae9c;--table-low:#778876;--table-dark:#536452}
.room-living-coffee-table .living-coffee-top{position:absolute;left:4px;right:4px;top:5px;height:29px;border-radius:50%/42%;background:radial-gradient(ellipse at 38% 28%,rgba(255,255,255,.20),transparent 38%),linear-gradient(180deg,var(--table-hi),var(--table-main) 67%,var(--table-low));border:1px solid rgba(67,47,31,.13);box-shadow:inset 0 4px rgba(255,255,255,.13),0 5px 0 rgba(78,49,31,.09);z-index:4}
.room-living-coffee-table .living-coffee-top::after{content:"";position:absolute;left:16px;right:16px;bottom:6px;height:1px;background:rgba(92,55,31,.11);border-radius:99px}
.room-living-coffee-table .coffee-book{position:absolute;left:31px;top:5px;width:37px;height:14px;border-radius:3px;background:linear-gradient(180deg,#a9796d,#86584e);transform:rotate(-5deg);box-shadow:0 2px rgba(71,45,38,.17)}
.room-living-coffee-table .coffee-book::after{content:"";position:absolute;left:4px;right:4px;bottom:3px;border-bottom:2px solid rgba(255,245,228,.55)}
.room-living-coffee-table .coffee-mug{position:absolute;right:35px;top:3px;width:16px;height:15px;border-radius:4px 4px 7px 7px;background:linear-gradient(145deg,#f7f1e7,#d9cfc1);box-shadow:inset 3px 0 rgba(255,255,255,.30),0 2px rgba(64,48,35,.10)}
.room-living-coffee-table .coffee-mug::after{content:"";position:absolute;right:-7px;top:4px;width:7px;height:7px;border:2px solid #d9cfc1;border-left:0;border-radius:0 6px 6px 0}
.room-living-coffee-table .living-coffee-shelf{position:absolute;left:24px;right:24px;top:48px;height:12px;border-radius:50%;background:linear-gradient(180deg,var(--table-main),var(--table-low));border:1px solid rgba(64,43,29,.11);opacity:.92}
.room-living-coffee-table .living-coffee-leg{position:absolute;top:29px;width:9px;height:46px;border-radius:2px 2px 5px 5px;background:linear-gradient(90deg,var(--table-low),var(--table-dark));transform-origin:top}.room-living-coffee-table .leg-a{left:23px;transform:rotate(5deg)}.room-living-coffee-table .leg-b{right:23px;transform:rotate(-5deg)}.room-living-coffee-table .leg-c{left:48px;opacity:.56}.room-living-coffee-table .leg-d{right:48px;opacity:.56}
.room-living-coffee-table::after{content:"";position:absolute;left:18px;right:18px;bottom:1px;height:9px;border-radius:50%;background:rgba(53,37,25,.13);filter:blur(4px);z-index:-1}

.room-living-media-console{
  --media-hi:#e2c19c;--media-main:#c19368;--media-low:#946441;--media-dark:#68442d;
  left:73%;top:63%;width:190px;height:151px;z-index:3;filter:drop-shadow(0 11px 8px rgba(45,32,23,.16));
}
.room-living-media-console.tone-walnut{--media-hi:#b98463;--media-main:#8b5940;--media-low:#6d422f;--media-dark:#44291e}
.room-living-media-console.tone-cream{--media-hi:#f1e8da;--media-main:#d8c7af;--media-low:#ad987d;--media-dark:#74624f}
.room-living-media-console.tone-sage{--media-hi:#c6d1c4;--media-main:#9cad9b;--media-low:#738672;--media-dark:#4f6251}
.room-living-media-console .living-tv{position:absolute;left:25px;right:25px;top:0;height:80px;border-radius:9px 9px 12px 12px;background:linear-gradient(145deg,#363b3d,#171a1c 65%,#0c0e0f);border:4px solid #514b46;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06),0 7px 8px rgba(40,29,22,.12);z-index:5;overflow:hidden}
.room-living-media-console .living-tv i{position:absolute;inset:6px;border-radius:5px;background:linear-gradient(145deg,#7ea9b7,#425f70 52%,#283b49)}
.room-living-media-console .living-tv i::before{content:"";position:absolute;left:18px;top:13px;width:58px;height:28px;border-radius:50%;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.21),transparent 50%);transform:rotate(-14deg)}
.room-living-media-console .living-tv b{position:absolute;left:50%;bottom:-13px;width:8px;height:18px;background:#514b46;transform:translateX(-50%)}
.room-living-media-console .living-tv em{position:absolute;left:50%;bottom:-17px;width:34px;height:7px;border-radius:50%;background:#514b46;transform:translateX(-50%)}
.room-living-media-console .living-media-top{position:absolute;left:3px;right:3px;top:84px;height:13px;border-radius:9px 9px 5px 5px;background:linear-gradient(180deg,var(--media-hi),var(--media-main));border:1px solid rgba(67,45,29,.11);box-shadow:inset 0 3px rgba(255,255,255,.12)}
.room-living-media-console .living-media-body{position:absolute;left:8px;right:8px;top:96px;height:43px;display:grid;grid-template-columns:1fr 1.1fr 1fr;gap:4px;padding:5px;border-radius:5px 5px 10px 10px;background:linear-gradient(180deg,var(--media-main),var(--media-low));border:1px solid rgba(66,43,28,.12)}
.room-living-media-console .media-door{border-radius:4px;background:linear-gradient(145deg,rgba(255,255,255,.10),rgba(0,0,0,.04));border:1px solid rgba(73,48,31,.10);position:relative}.room-living-media-console .media-door::after{content:"";position:absolute;top:50%;width:5px;height:5px;border-radius:50%;background:#d9c5a3;box-shadow:0 1px rgba(47,31,22,.18)}.room-living-media-console .door-left::after{right:5px}.room-living-media-console .door-right::after{left:5px}
.room-living-media-console .media-niche{position:relative;border-radius:4px;background:rgba(42,30,23,.16);box-shadow:inset 0 2px 4px rgba(39,26,18,.10)}
.room-living-media-console .media-niche i,.room-living-media-console .media-niche b{position:absolute;left:7px;right:7px;height:5px;border-radius:2px;background:#3f464b}.room-living-media-console .media-niche i{top:8px}.room-living-media-console .media-niche b{top:19px;background:#7f6654}
.room-living-media-console .living-media-leg{position:absolute;top:135px;width:12px;height:13px;border-radius:2px 2px 5px 5px;background:var(--media-dark)}.room-living-media-console .leg-left{left:22px}.room-living-media-console .leg-right{right:22px}
.room-living-media-console::after{content:"";position:absolute;left:13px;right:13px;bottom:-2px;height:10px;border-radius:50%;background:rgba(48,34,24,.13);filter:blur(4px);z-index:-1}

.room:not(.arranging) .room-living-sofa,.room:not(.arranging) .room-living-coffee-table,.room:not(.arranging) .room-living-media-console{cursor:pointer}
.room:not(.arranging) .room-living-sofa:active,.room:not(.arranging) .room-living-coffee-table:active,.room:not(.arranging) .room-living-media-console:active{filter:brightness(.98) drop-shadow(0 10px 7px rgba(45,32,23,.17))}
.room.night .room-living-sofa,.room.night .room-living-coffee-table,.room.night .room-living-media-console{filter:drop-shadow(0 11px 8px rgba(5,8,12,.28)) brightness(.91)}
.room.night.night-lighting-on .room-living-sofa,.room.night.night-lighting-on .room-living-coffee-table,.room.night.night-lighting-on .room-living-media-console{filter:drop-shadow(0 11px 8px rgba(5,8,12,.25)) brightness(1.00)}

.furniture-set-roadmap-item.available{background:linear-gradient(135deg,rgba(183,224,191,.17),rgba(255,230,169,.10));border-color:rgba(190,228,197,.24)}
.furniture-set-roadmap-item.available small{opacity:1;color:#e8f5e9}.furniture-set-roadmap-item em{font-style:normal;font-size:8px;line-height:1.25;opacity:.58;margin-top:3px}
.room-set-product{border-color:rgba(188,160,100,.18)!important;background:linear-gradient(180deg,rgba(255,252,245,.98),rgba(248,241,228,.96))!important}.room-set-product .furniture-room-badge{background:#ede1c6;color:#6b5937}

@media(max-width:430px){
  .room-living-sofa{width:196px;height:112px}
  .room-living-coffee-table{width:142px;height:78px}
  .room-living-media-console{width:174px;height:145px}
}
.room-living-sofa,.room-living-coffee-table,.room-living-media-console{transform:translate(-50%,-50%)}


/* =========================================================
   v9.65 · SET BASE CUCINA I
   Blocco cucina, frigorifero e dispensa — soft 3D, mobili reali.
   ========================================================= */
.room-kitchen-counter,.room-kitchen-fridge,.room-kitchen-pantry{position:absolute;z-index:4;user-select:none;-webkit-user-select:none;touch-action:none;transform:translate(-50%,-50%);filter:drop-shadow(0 10px 7px rgba(48,35,24,.15))}
.room-kitchen-counter{left:29%;top:66%;width:205px;height:118px;--kc-hi:#f0e6d7;--kc-main:#d8c6ae;--kc-low:#ad987d;--kc-dark:#74624f;--kc-metal:#b7bec1}
.room-kitchen-counter.tone-sage{--kc-hi:#d6dfd3;--kc-main:#aebdab;--kc-low:#7f927d;--kc-dark:#596a57}.room-kitchen-counter.tone-sky{--kc-hi:#d8e5ef;--kc-main:#adc9da;--kc-low:#7c9fb7;--kc-dark:#58768b}.room-kitchen-counter.tone-walnut{--kc-hi:#bd8a67;--kc-main:#936047;--kc-low:#714531;--kc-dark:#4b2c20}
.room-kitchen-counter .kitchen-counter-top{position:absolute;left:2px;right:2px;top:7px;height:24px;border-radius:8px 8px 5px 5px;background:linear-gradient(180deg,#ede8e0,#c9c1b7 72%,#a9a096);border:1px solid rgba(60,55,49,.13);box-shadow:inset 0 4px rgba(255,255,255,.26),0 4px 0 rgba(58,44,31,.08);z-index:4}
.room-kitchen-counter .kitchen-sink{position:absolute;left:20px;top:4px;width:49px;height:15px;border-radius:50%/44%;background:linear-gradient(180deg,#dfe3e3,#aeb7ba);box-shadow:inset 0 3px 5px rgba(65,72,74,.20)}.room-kitchen-counter .kitchen-sink i{position:absolute;right:2px;top:-8px;width:14px;height:13px;border:3px solid #8d989b;border-left:0;border-bottom:0;border-radius:0 10px 0 0}
.room-kitchen-counter .kitchen-hob{position:absolute;right:17px;top:3px;width:60px;height:17px;border-radius:5px;background:#44494c;display:grid;grid-template-columns:repeat(2,1fr);gap:2px;padding:2px}.room-kitchen-counter .kitchen-hob i{border-radius:50%;border:1px solid rgba(230,235,237,.48);box-shadow:inset 0 0 0 2px rgba(20,24,26,.35)}
.room-kitchen-counter .kitchen-counter-body{position:absolute;left:8px;right:8px;top:31px;height:74px;border-radius:3px 3px 9px 9px;background:linear-gradient(145deg,var(--kc-hi),var(--kc-main) 58%,var(--kc-low));border:1px solid rgba(71,52,36,.11);display:grid;grid-template-columns:1fr .78fr 1fr;gap:5px;padding:7px;box-shadow:inset 0 7px rgba(255,255,255,.10)}
.room-kitchen-counter .kitchen-door,.room-kitchen-counter .kitchen-drawers i{border-radius:4px;background:linear-gradient(145deg,rgba(255,255,255,.13),rgba(0,0,0,.04));border:1px solid rgba(68,50,35,.10);position:relative}.room-kitchen-counter .kitchen-door::after{content:"";position:absolute;top:8px;width:5px;height:17px;border-radius:3px;background:var(--kc-dark);opacity:.65}.room-kitchen-counter .door-a::after{right:7px}.room-kitchen-counter .door-b::after{left:7px}
.room-kitchen-counter .kitchen-drawers{display:grid;grid-template-rows:repeat(3,1fr);gap:4px}.room-kitchen-counter .kitchen-drawers i::after{content:"";position:absolute;left:50%;top:5px;width:17px;height:3px;border-radius:3px;background:var(--kc-dark);opacity:.55;transform:translateX(-50%)}
.room-kitchen-counter .kitchen-counter-plinth{position:absolute;left:17px;right:17px;bottom:3px;height:13px;border-radius:3px 3px 6px 6px;background:linear-gradient(180deg,var(--kc-low),var(--kc-dark));z-index:-1}
.room-kitchen-counter::after{content:"";position:absolute;left:15px;right:15px;bottom:-3px;height:11px;border-radius:50%;background:rgba(48,35,24,.12);filter:blur(4px);z-index:-2}

.room-kitchen-fridge{left:78%;top:54%;width:105px;height:188px;--fridge-hi:#f3eee6;--fridge-main:#ddd4ca;--fridge-low:#b8ada2;--fridge-dark:#72777a}
.room-kitchen-fridge.tone-sage{--fridge-hi:#dce4d9;--fridge-main:#b7c5b4;--fridge-low:#879987;--fridge-dark:#5f7060}.room-kitchen-fridge.tone-sky{--fridge-hi:#dce9f1;--fridge-main:#b3cedd;--fridge-low:#84a7bb;--fridge-dark:#5c7788}.room-kitchen-fridge.tone-rose{--fridge-hi:#f1dfe4;--fridge-main:#dcbac5;--fridge-low:#b98999;--fridge-dark:#856270}
.room-kitchen-fridge .kitchen-fridge-case{position:absolute;inset:4px 7px 13px;border-radius:15px 15px 9px 9px;background:linear-gradient(145deg,var(--fridge-hi),var(--fridge-main) 58%,var(--fridge-low));border:1px solid rgba(56,59,60,.13);box-shadow:inset 7px 5px rgba(255,255,255,.16),inset -5px -7px rgba(60,55,49,.05)}
.room-kitchen-fridge .fridge-door{position:absolute;left:6px;right:6px;border-radius:10px;background:linear-gradient(145deg,rgba(255,255,255,.11),rgba(0,0,0,.025));border:1px solid rgba(65,60,55,.08)}.room-kitchen-fridge .fridge-top{top:7px;height:91px}.room-kitchen-fridge .fridge-bottom{bottom:7px;height:54px}
.room-kitchen-fridge .fridge-door i{position:absolute;right:7px;top:12px;width:5px;height:48px;border-radius:4px;background:linear-gradient(90deg,#8f979a,#c9ced0);box-shadow:1px 0 rgba(255,255,255,.35)}.room-kitchen-fridge .fridge-bottom i{top:11px;height:29px}
.room-kitchen-fridge .fridge-display{position:absolute;left:13px;top:27px;width:24px;height:13px;border-radius:4px;background:#4d676d;box-shadow:inset 0 0 0 2px rgba(255,255,255,.08)}.room-kitchen-fridge .fridge-display::after{content:"4°";position:absolute;inset:0;text-align:center;font:700 7px/13px system-ui;color:#bfe5e9}
.room-kitchen-fridge .kitchen-fridge-foot{position:absolute;bottom:5px;width:13px;height:12px;border-radius:2px 2px 5px 5px;background:#5d5a56}.room-kitchen-fridge .foot-left{left:22px}.room-kitchen-fridge .foot-right{right:22px}.room-kitchen-fridge::after{content:"";position:absolute;left:14px;right:14px;bottom:0;height:10px;border-radius:50%;background:rgba(45,34,26,.14);filter:blur(4px);z-index:-1}

.room-kitchen-pantry{left:58%;top:57%;width:116px;height:174px;--pantry-hi:#d8b38c;--pantry-main:#b98562;--pantry-low:#8c5c42;--pantry-dark:#5b392a}
.room-kitchen-pantry.tone-walnut{--pantry-hi:#ba8666;--pantry-main:#8f5d43;--pantry-low:#6d422f;--pantry-dark:#44291e}.room-kitchen-pantry.tone-cream{--pantry-hi:#f1e8d9;--pantry-main:#d8c7af;--pantry-low:#ae997e;--pantry-dark:#76634f}.room-kitchen-pantry.tone-sage{--pantry-hi:#cbd7c8;--pantry-main:#a2b2a0;--pantry-low:#788a77;--pantry-dark:#516352}
.room-kitchen-pantry .kitchen-pantry-crown{position:absolute;left:4px;right:4px;top:2px;height:14px;border-radius:8px 8px 3px 3px;background:linear-gradient(180deg,var(--pantry-hi),var(--pantry-main));box-shadow:inset 0 3px rgba(255,255,255,.13)}
.room-kitchen-pantry .kitchen-pantry-body{position:absolute;left:9px;right:9px;top:14px;bottom:15px;border-radius:4px 4px 9px 9px;background:linear-gradient(145deg,var(--pantry-hi),var(--pantry-main) 55%,var(--pantry-low));border:1px solid rgba(63,43,29,.12);display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:7px;box-shadow:inset 5px 4px rgba(255,255,255,.09)}
.room-kitchen-pantry .pantry-door{position:relative;border-radius:4px;background:linear-gradient(145deg,rgba(255,255,255,.10),rgba(0,0,0,.035));border:1px solid rgba(69,46,31,.10)}.room-kitchen-pantry .pantry-door i{position:absolute;top:50%;width:5px;height:18px;border-radius:4px;background:var(--pantry-dark);opacity:.62;transform:translateY(-50%)}.room-kitchen-pantry .pantry-door.left i{right:5px}.room-kitchen-pantry .pantry-door.right i{left:5px}
.room-kitchen-pantry .pantry-shelf{position:absolute;left:18px;right:18px;bottom:17px;height:31px;border-radius:5px;background:rgba(68,45,31,.14);display:flex;align-items:flex-end;justify-content:center;gap:5px;padding:4px}.room-kitchen-pantry .pantry-shelf b{width:12px;border-radius:3px 3px 2px 2px;background:#d9b06d}.room-kitchen-pantry .pantry-shelf b:nth-child(1){height:18px;background:#a8bd86}.room-kitchen-pantry .pantry-shelf b:nth-child(2){height:22px;background:#d39b74}.room-kitchen-pantry .pantry-shelf b:nth-child(3){height:16px;background:#cbb87a}
.room-kitchen-pantry .kitchen-pantry-foot{position:absolute;bottom:5px;width:12px;height:12px;border-radius:2px 2px 5px 5px;background:var(--pantry-dark)}.room-kitchen-pantry .foot-left{left:22px}.room-kitchen-pantry .foot-right{right:22px}.room-kitchen-pantry::after{content:"";position:absolute;left:15px;right:15px;bottom:0;height:10px;border-radius:50%;background:rgba(48,34,24,.13);filter:blur(4px);z-index:-1}

.room:not(.arranging) .room-kitchen-counter,.room:not(.arranging) .room-kitchen-fridge,.room:not(.arranging) .room-kitchen-pantry{cursor:pointer}
.room:not(.arranging) .room-kitchen-counter:active,.room:not(.arranging) .room-kitchen-fridge:active,.room:not(.arranging) .room-kitchen-pantry:active{filter:brightness(.98) drop-shadow(0 10px 7px rgba(45,32,23,.17))}
.room.night .room-kitchen-counter,.room.night .room-kitchen-fridge,.room.night .room-kitchen-pantry{filter:drop-shadow(0 11px 8px rgba(5,8,12,.28)) brightness(.91)}
.room.night.night-lighting-on .room-kitchen-counter,.room.night.night-lighting-on .room-kitchen-fridge,.room.night.night-lighting-on .room-kitchen-pantry{filter:drop-shadow(0 11px 8px rgba(5,8,12,.25)) brightness(1)}
@media(max-width:520px){.room-kitchen-counter{width:176px;height:104px;left:31%}.room-kitchen-fridge{width:90px;height:164px;left:79%}.room-kitchen-pantry{width:100px;height:151px;left:58%}}
\n\n/* =========================================================\n   v9.66 · SET BASE CUCINA II — tavolo, sospensione, aromatiche\n   ========================================================= */\n.room-kitchen-breakfast-table,.room-kitchen-pendant,.room-kitchen-herb-shelf{position:absolute;user-select:none;-webkit-user-select:none;touch-action:none;transform:translate(-50%,-50%)}\n.room-kitchen-breakfast-table{left:45%;top:76%;width:168px;height:102px;z-index:5;--kt-hi:#d9b17e;--kt-main:#b78053;--kt-low:#825538;--kt-dark:#5c3825;filter:drop-shadow(0 11px 7px rgba(48,35,24,.16))}\n.room-kitchen-breakfast-table.tone-walnut{--kt-hi:#b57d58;--kt-main:#87563d;--kt-low:#633c2c;--kt-dark:#43271d}.room-kitchen-breakfast-table.tone-cream{--kt-hi:#f0e5d5;--kt-main:#d2bea4;--kt-low:#a68f73;--kt-dark:#75614d}.room-kitchen-breakfast-table.tone-sage{--kt-hi:#c9d5c5;--kt-main:#9eaf9c;--kt-low:#738873;--kt-dark:#506250}\n.room-kitchen-breakfast-table .kitchen-table-top{position:absolute;left:4px;right:4px;top:7px;height:31px;border-radius:50%/32%;background:linear-gradient(160deg,var(--kt-hi),var(--kt-main) 60%,var(--kt-low));border:1px solid rgba(76,48,28,.12);box-shadow:inset 0 5px rgba(255,255,255,.12),0 6px 0 rgba(76,49,29,.08);z-index:4}\n.room-kitchen-breakfast-table .kitchen-placemat{position:absolute;left:37px;top:8px;width:72px;height:15px;border-radius:50%;background:rgba(244,230,201,.72);box-shadow:inset 0 0 0 1px rgba(91,70,51,.08)}\n.room-kitchen-breakfast-table .kitchen-table-cup{position:absolute;right:29px;top:5px;width:16px;height:15px;border-radius:4px 4px 7px 7px;background:#f1ece3;box-shadow:inset -3px -3px rgba(85,74,64,.08)}.room-kitchen-breakfast-table .kitchen-table-cup::after{content:"";position:absolute;right:-6px;top:3px;width:7px;height:7px;border:2px solid #d8cec1;border-left:0;border-radius:0 7px 7px 0}\n.room-kitchen-breakfast-table .kitchen-table-tray{position:absolute;left:20px;top:7px;width:26px;height:12px;border-radius:50%;background:#d8a46d;box-shadow:inset 0 -3px rgba(117,73,41,.12)}\n.room-kitchen-breakfast-table .kitchen-table-apron{position:absolute;left:24px;right:24px;top:31px;height:19px;border-radius:2px 2px 8px 8px;background:linear-gradient(180deg,var(--kt-main),var(--kt-low));z-index:2}\n.room-kitchen-breakfast-table .kitchen-table-leg{position:absolute;top:42px;width:13px;height:53px;border-radius:3px 3px 7px 7px;background:linear-gradient(90deg,var(--kt-low),var(--kt-dark));z-index:1}.room-kitchen-breakfast-table .leg-a{left:33px}.room-kitchen-breakfast-table .leg-b{right:33px}.room-kitchen-breakfast-table .leg-c{left:54px;height:47px;opacity:.8}.room-kitchen-breakfast-table .leg-d{right:54px;height:47px;opacity:.8}\n.room-kitchen-breakfast-table::after{content:"";position:absolute;left:26px;right:26px;bottom:1px;height:11px;border-radius:50%;background:rgba(48,35,24,.13);filter:blur(4px);z-index:-1}\n\n.room-kitchen-pendant{left:49%;top:27%;width:88px;height:116px;z-index:7;--kp-hi:#f2e8d8;--kp-main:#d4b676;--kp-low:#9f7b42;--kp-glow:#ffd88e;filter:drop-shadow(0 7px 5px rgba(43,35,25,.14))}\n.room-kitchen-pendant.tone-honey{--kp-hi:#f5ddb0;--kp-main:#d5a452;--kp-low:#9e6d2e;--kp-glow:#ffcd70}.room-kitchen-pendant.tone-mint{--kp-hi:#d8e7da;--kp-main:#a8c5ad;--kp-low:#748f79;--kp-glow:#d8ffd4}.room-kitchen-pendant.tone-rose{--kp-hi:#f2dce0;--kp-main:#d6aeb7;--kp-low:#9d7580;--kp-glow:#ffd6dc}\n.room-kitchen-pendant .kitchen-pendant-cord{position:absolute;left:42px;top:0;width:4px;height:55px;border-radius:3px;background:#5d554e}.room-kitchen-pendant .kitchen-pendant-cap{position:absolute;left:31px;top:48px;width:26px;height:12px;border-radius:12px 12px 4px 4px;background:linear-gradient(180deg,var(--kp-hi),var(--kp-main))}.room-kitchen-pendant .kitchen-pendant-shade{position:absolute;left:13px;top:57px;width:62px;height:39px;border-radius:32px 32px 13px 13px;background:linear-gradient(160deg,var(--kp-hi),var(--kp-main) 58%,var(--kp-low));border:1px solid rgba(73,53,31,.12);box-shadow:inset 0 5px rgba(255,255,255,.14)}\n.room-kitchen-pendant .kitchen-pendant-bulb{position:absolute;left:34px;top:84px;width:20px;height:22px;border-radius:50% 50% 45% 45%;background:radial-gradient(circle at 40% 30%,#fff8d9,var(--kp-glow) 55%,#e0a94b);box-shadow:0 0 15px rgba(255,207,111,.75),0 7px 24px rgba(255,204,105,.42)}\n.room-kitchen-pendant.is-off .kitchen-pendant-bulb{background:linear-gradient(145deg,#d9d4c9,#aba69d);box-shadow:none;filter:saturate(.2)}.room-kitchen-pendant.is-off{filter:drop-shadow(0 7px 5px rgba(43,35,25,.14)) brightness(.88)}\n.room-kitchen-pendant:not(.is-off)::after{content:"";position:absolute;left:6px;top:78px;width:76px;height:55px;border-radius:50%;background:radial-gradient(ellipse,rgba(255,216,137,.22),rgba(255,216,137,0) 72%);pointer-events:none}\n\n.room-kitchen-herb-shelf{left:70%;top:36%;width:142px;height:82px;z-index:4;--kh-hi:#d3aa78;--kh-main:#a8754f;--kh-low:#765039;--kh-pot:#c98662;filter:drop-shadow(0 7px 5px rgba(48,35,24,.14))}\n.room-kitchen-herb-shelf.tone-walnut{--kh-hi:#ad7553;--kh-main:#7e4e37;--kh-low:#533020}.room-kitchen-herb-shelf.tone-cream{--kh-hi:#eee1cf;--kh-main:#ceb99e;--kh-low:#927a60}.room-kitchen-herb-shelf.tone-sage{--kh-hi:#c4d0bf;--kh-main:#97aa95;--kh-low:#687d68}\n.room-kitchen-herb-shelf .kitchen-herb-plank{position:absolute;left:4px;right:4px;bottom:12px;height:16px;border-radius:5px 5px 8px 8px;background:linear-gradient(180deg,var(--kh-hi),var(--kh-main) 60%,var(--kh-low));border:1px solid rgba(72,48,31,.10);box-shadow:inset 0 4px rgba(255,255,255,.10)}.room-kitchen-herb-shelf .kitchen-herb-bracket{position:absolute;bottom:0;width:8px;height:19px;border-radius:0 0 7px 7px;background:var(--kh-low)}.room-kitchen-herb-shelf .kitchen-herb-bracket.left{left:24px}.room-kitchen-herb-shelf .kitchen-herb-bracket.right{right:24px}\n.room-kitchen-herb-shelf .kitchen-herb-pot{position:absolute;bottom:28px;width:30px;height:27px;border-radius:4px 4px 9px 9px;background:linear-gradient(160deg,#e7ad86,var(--kh-pot));box-shadow:inset -4px -3px rgba(92,54,38,.08)}.room-kitchen-herb-shelf .pot-a{left:17px}.room-kitchen-herb-shelf .pot-b{left:56px}.room-kitchen-herb-shelf .pot-c{right:17px}.room-kitchen-herb-shelf .kitchen-herb-pot i,.room-kitchen-herb-shelf .kitchen-herb-pot b,.room-kitchen-herb-shelf .kitchen-herb-pot em{position:absolute;bottom:22px;width:15px;height:24px;border-radius:90% 10% 90% 10%;background:#6f9c69;transform-origin:bottom center}.room-kitchen-herb-shelf .kitchen-herb-pot i{left:6px;transform:rotate(-28deg)}.room-kitchen-herb-shelf .kitchen-herb-pot b{left:10px;transform:rotate(24deg);background:#7faf72}.room-kitchen-herb-shelf .kitchen-herb-pot em{left:3px;height:19px;transform:rotate(-4deg);background:#8abf79}\n\n.room:not(.arranging) .room-kitchen-breakfast-table,.room:not(.arranging) .room-kitchen-pendant,.room:not(.arranging) .room-kitchen-herb-shelf{cursor:pointer}.room:not(.arranging) .room-kitchen-breakfast-table:active,.room:not(.arranging) .room-kitchen-herb-shelf:active{filter:brightness(.98) drop-shadow(0 9px 6px rgba(45,32,23,.18))}\n.room.night .room-kitchen-breakfast-table,.room.night .room-kitchen-herb-shelf{filter:drop-shadow(0 10px 7px rgba(5,8,12,.26)) brightness(.90)}.room.night.night-lighting-on .room-kitchen-breakfast-table,.room.night.night-lighting-on .room-kitchen-herb-shelf{filter:drop-shadow(0 10px 7px rgba(5,8,12,.24)) brightness(1)}\n.kitchen-pendant-light-field .lamp-light-cone{filter:saturate(.95)}\n@media(max-width:520px){.room-kitchen-breakfast-table{width:145px;height:92px;left:45%;top:77%}.room-kitchen-pendant{width:76px;height:106px;left:49%;top:26%}.room-kitchen-herb-shelf{width:122px;height:74px;left:69%;top:37%}}\n
/* v9.66.1 — recupero conferma email */
.auth-form .auth-resend{width:100%;min-height:44px;border-radius:14px;font-weight:900}.auth-form .auth-resend.hidden{display:none}

/* v9.66.2 · Area Admin TinyPal */
.tinypal-admin-card-v9662{margin:14px 0;padding:15px;border:1px solid rgba(126,93,72,.16);border-radius:22px;background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(248,245,241,.96));box-shadow:0 10px 30px rgba(72,49,36,.07)}
.tinypal-admin-card-v9662[data-state="admin"]{border-color:rgba(56,142,105,.26);background:linear-gradient(145deg,rgba(249,255,252,.97),rgba(240,249,245,.96))}
.tinypal-admin-head-v9662{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:11px;align-items:center}.tinypal-admin-head-v9662>span{width:42px;height:42px;display:grid;place-items:center;border-radius:14px;background:rgba(126,93,72,.09);font-size:22px}.tinypal-admin-head-v9662 small{display:block;font-size:10px;font-weight:900;letter-spacing:.12em;color:var(--muted,#766f69)}.tinypal-admin-head-v9662 strong{display:block;margin-top:2px;font-size:15px}.tinypal-admin-head-v9662 p{margin:4px 0 0;font-size:12px;color:var(--muted,#766f69);line-height:1.35}.tinypal-admin-head-v9662>button{border:0;width:38px;height:38px;border-radius:13px;background:rgba(126,93,72,.09);font-size:20px;cursor:pointer}
.tinypal-admin-activation-v9662,.tinypal-admin-tools-v9662{margin-top:14px;padding-top:13px;border-top:1px solid rgba(126,93,72,.11)}.tinypal-admin-activation-v9662>p,.tinypal-admin-note-v9662{margin:0 0 10px;font-size:12px;line-height:1.45;color:var(--muted,#766f69)}.tinypal-admin-tools-v9662>label{display:block;margin-bottom:7px;font-size:12px;font-weight:800}
.tinypal-admin-row-v9662{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.tinypal-admin-row-v9662 input{min-width:0;width:100%;box-sizing:border-box;border:1px solid rgba(126,93,72,.18);background:#fff;border-radius:14px;padding:12px 13px;font:inherit;font-size:14px;outline:none}.tinypal-admin-row-v9662 input:focus{border-color:rgba(56,142,105,.48);box-shadow:0 0 0 3px rgba(56,142,105,.08)}.tinypal-admin-row-v9662 button,.tinypal-admin-confirm-v9662{border:0;border-radius:14px;padding:0 14px;min-height:44px;background:#3b735b;color:#fff;font-weight:850;cursor:pointer}.tinypal-admin-row-v9662 button:disabled,.tinypal-admin-confirm-v9662:disabled{opacity:.55;cursor:default}
.tinypal-admin-result-v9662{margin-top:12px}.tinypal-admin-empty-v9662,.tinypal-admin-wait-v9662{padding:13px;border-radius:15px;background:rgba(126,93,72,.07);font-size:13px}.tinypal-admin-empty-v9662 strong,.tinypal-admin-empty-v9662 small{display:block}.tinypal-admin-empty-v9662 small{margin-top:4px;color:var(--muted,#766f69)}
.tinypal-admin-user-v9662{padding:13px;border-radius:17px;background:#fff;border:1px solid rgba(56,142,105,.14)}.tinypal-admin-user-title-v9662{display:flex;gap:10px;align-items:center}.tinypal-admin-user-title-v9662>span{font-size:22px}.tinypal-admin-user-title-v9662 strong,.tinypal-admin-user-title-v9662 small{display:block;overflow-wrap:anywhere}.tinypal-admin-user-title-v9662 small{margin-top:2px;color:var(--muted,#766f69);font-size:12px}.tinypal-admin-user-v9662 dl{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.tinypal-admin-user-v9662 dl>div{padding:9px;border-radius:12px;background:rgba(84,76,70,.045)}.tinypal-admin-user-v9662 dt{font-size:10px;font-weight:850;color:var(--muted,#766f69);text-transform:uppercase;letter-spacing:.05em}.tinypal-admin-user-v9662 dd{margin:3px 0 0;font-size:12px;font-weight:750}.tinypal-admin-confirm-v9662{width:100%;padding:10px 13px}.tinypal-admin-ok-v9662{padding:10px 12px;border-radius:12px;background:rgba(56,142,105,.10);color:#286044;font-size:12px;font-weight:800}.tinypal-admin-note-v9662{margin:10px 1px 0}.hidden{display:none!important}
@media(max-width:430px){.tinypal-admin-user-v9662 dl{grid-template-columns:1fr}.tinypal-admin-row-v9662{grid-template-columns:1fr}.tinypal-admin-row-v9662 button{min-height:42px}.tinypal-admin-card-v9662{padding:14px 13px}}


/* v9.66.3 · Directory account Area Admin */
.tinypal-admin-directory-v9663{margin:0 0 16px;padding:13px;border-radius:18px;background:rgba(255,255,255,.72);border:1px solid rgba(56,142,105,.13)}
.tinypal-admin-directory-head-v9663{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}.tinypal-admin-directory-head-v9663 small{display:block;font-size:9px;font-weight:900;letter-spacing:.12em;color:var(--muted,#766f69)}.tinypal-admin-directory-head-v9663 strong{display:block;margin-top:2px;font-size:15px}.tinypal-admin-directory-head-v9663 span{display:block;margin-top:3px;font-size:11px;color:var(--muted,#766f69)}.tinypal-admin-directory-head-v9663>button{border:0;width:36px;height:36px;border-radius:12px;background:rgba(56,142,105,.10);font-size:19px;cursor:pointer}
.tinypal-admin-stats-v9663{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-top:11px}.tinypal-admin-stats-v9663>div{min-width:0;padding:9px 5px;text-align:center;border-radius:13px;background:rgba(56,142,105,.075)}.tinypal-admin-stats-v9663 strong{display:block;font-size:17px;line-height:1.05}.tinypal-admin-stats-v9663 small{display:block;margin-top:4px;font-size:9px;line-height:1.15;color:var(--muted,#766f69);font-weight:750}
.tinypal-admin-directory-controls-v9663{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;margin-top:10px}.tinypal-admin-directory-controls-v9663 input,.tinypal-admin-directory-controls-v9663 select{min-width:0;border:1px solid rgba(126,93,72,.16);background:#fff;border-radius:13px;padding:10px 11px;font:inherit;font-size:12px;outline:none}.tinypal-admin-directory-controls-v9663 input:focus,.tinypal-admin-directory-controls-v9663 select:focus{border-color:rgba(56,142,105,.45);box-shadow:0 0 0 3px rgba(56,142,105,.07)}
.tinypal-admin-directory-list-v9663{display:flex;flex-direction:column;gap:6px;margin-top:9px;max-height:390px;overflow:auto;overscroll-behavior:contain;padding-right:2px}.tinypal-admin-account-v9663{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:9px;align-items:center;width:100%;border:1px solid rgba(126,93,72,.10);background:#fff;border-radius:14px;padding:10px;text-align:left;cursor:pointer;color:inherit}.tinypal-admin-account-v9663.selected{border-color:rgba(56,142,105,.36);box-shadow:0 0 0 2px rgba(56,142,105,.06)}.tinypal-admin-account-v9663:active{transform:scale(.995)}
.tinypal-admin-account-status-v9663{width:27px;height:27px;display:grid;place-items:center;border-radius:10px;font-size:12px;font-weight:950}.tinypal-admin-account-status-v9663.ok{background:rgba(56,142,105,.13);color:#286044}.tinypal-admin-account-status-v9663.pending{background:rgba(218,153,52,.15);color:#9a6818}.tinypal-admin-account-copy-v9663{min-width:0}.tinypal-admin-account-copy-v9663 strong{display:block;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tinypal-admin-account-copy-v9663 small{display:block;margin-top:3px;font-size:10px;line-height:1.25;color:var(--muted,#766f69)}.tinypal-admin-account-open-v9663{font-size:22px;color:var(--muted,#766f69)}
.tinypal-admin-directory-empty-v9663{padding:13px;border-radius:13px;background:rgba(126,93,72,.055);font-size:12px;color:var(--muted,#766f69)}.tinypal-admin-directory-warning-v9663{margin:8px 1px 0;font-size:10px;line-height:1.35;color:#94631c}
@media(max-width:430px){.tinypal-admin-stats-v9663{grid-template-columns:1fr 1fr}.tinypal-admin-directory-controls-v9663{grid-template-columns:1fr}.tinypal-admin-directory-list-v9663{max-height:360px}}


/* =========================================================
   TinyPal v9.67 · Set Base Camera I
   ========================================================= */
.room-bedroom-nightstand,.room-bedroom-wardrobe{position:absolute;z-index:4;user-select:none;-webkit-user-select:none;touch-action:none;transform:translate(-50%,-50%);filter:drop-shadow(0 10px 7px rgba(48,35,24,.15))}
.room-bedroom-nightstand{left:28%;top:67%;width:108px;height:103px;--bn-hi:#e3c69d;--bn-main:#bd9367;--bn-low:#8f6647;--bn-dark:#62432f}
.room-bedroom-nightstand.tone-walnut{--bn-hi:#b98461;--bn-main:#8c5a40;--bn-low:#68402e;--bn-dark:#44291e}.room-bedroom-nightstand.tone-cream{--bn-hi:#f0e8d8;--bn-main:#d8c9b2;--bn-low:#b7a68f;--bn-dark:#81715f}.room-bedroom-nightstand.tone-rose{--bn-hi:#efd8dc;--bn-main:#d6b2b8;--bn-low:#ad858e;--bn-dark:#7c5b63}
.room-bedroom-nightstand .bedroom-nightstand-top{position:absolute;left:2px;right:2px;top:7px;height:22px;border-radius:9px 9px 5px 5px;background:linear-gradient(180deg,var(--bn-hi),var(--bn-main));border:1px solid rgba(78,54,37,.12);box-shadow:inset 0 4px rgba(255,255,255,.16),0 3px 0 rgba(72,49,33,.08);z-index:3}
.room-bedroom-nightstand .bedroom-nightstand-book{position:absolute;left:14px;top:-8px;width:32px;height:8px;border-radius:3px;background:linear-gradient(180deg,#c98679,#9c5d55);box-shadow:0 -5px 0 #e6c48e;transform:rotate(-2deg)}.room-bedroom-nightstand .bedroom-nightstand-cup{position:absolute;right:14px;top:-12px;width:16px;height:15px;border-radius:4px 4px 7px 7px;background:#ebe4d6;border:1px solid rgba(75,58,45,.12)}.room-bedroom-nightstand .bedroom-nightstand-cup::after{content:"";position:absolute;right:-7px;top:3px;width:7px;height:7px;border:2px solid #d3cabd;border-left:0;border-radius:0 7px 7px 0}
.room-bedroom-nightstand .bedroom-nightstand-body{position:absolute;left:9px;right:9px;top:29px;height:61px;border-radius:5px 5px 10px 10px;background:linear-gradient(145deg,var(--bn-hi),var(--bn-main) 58%,var(--bn-low));border:1px solid rgba(69,48,34,.11);box-shadow:inset 0 6px rgba(255,255,255,.09)}
.room-bedroom-nightstand .bedroom-nightstand-drawer{position:absolute;left:7px;right:7px;top:7px;height:20px;border-radius:4px;background:rgba(255,255,255,.09);border:1px solid rgba(72,50,35,.10)}.room-bedroom-nightstand .bedroom-nightstand-drawer i{position:absolute;left:50%;top:7px;width:18px;height:4px;border-radius:3px;background:var(--bn-dark);opacity:.62;transform:translateX(-50%)}
.room-bedroom-nightstand .bedroom-nightstand-niche{position:absolute;left:8px;right:8px;bottom:7px;height:20px;border-radius:4px;background:rgba(65,44,31,.10);box-shadow:inset 0 3px 5px rgba(50,34,24,.09)}.room-bedroom-nightstand .bedroom-nightstand-niche i{position:absolute;left:10px;bottom:4px;width:31px;height:5px;border-radius:2px;background:#d6c6a8;box-shadow:4px -5px 0 #aab9c0}
.room-bedroom-nightstand .bedroom-nightstand-leg{position:absolute;bottom:1px;width:10px;height:18px;border-radius:2px 2px 5px 5px;background:var(--bn-dark);z-index:-1}.room-bedroom-nightstand .bedroom-nightstand-leg.leg-left{left:20px}.room-bedroom-nightstand .bedroom-nightstand-leg.leg-right{right:20px}.room-bedroom-nightstand::after{content:"";position:absolute;left:16px;right:16px;bottom:-2px;height:10px;border-radius:50%;background:rgba(51,35,24,.13);filter:blur(4px);z-index:-2}

.room-bedroom-wardrobe{left:77%;top:57%;width:126px;height:194px;--bw-hi:#e1c49c;--bw-main:#bc9166;--bw-low:#8c6548;--bw-dark:#5d412f}
.room-bedroom-wardrobe.tone-walnut{--bw-hi:#b67f5e;--bw-main:#87553d;--bw-low:#613b2b;--bw-dark:#40271d}.room-bedroom-wardrobe.tone-cream{--bw-hi:#f1e8d8;--bw-main:#d8c9b1;--bw-low:#b3a18a;--bw-dark:#7a6a58}.room-bedroom-wardrobe.tone-sage{--bw-hi:#d9e0d2;--bw-main:#b4c2aa;--bw-low:#87967d;--bw-dark:#5d6b56}
.room-bedroom-wardrobe .bedroom-wardrobe-crown{position:absolute;left:1px;right:1px;top:4px;height:19px;border-radius:10px 10px 4px 4px;background:linear-gradient(180deg,var(--bw-hi),var(--bw-main));border:1px solid rgba(65,47,34,.12);box-shadow:inset 0 4px rgba(255,255,255,.14),0 3px 0 rgba(65,46,32,.08);z-index:3}
.room-bedroom-wardrobe .bedroom-wardrobe-body{position:absolute;left:7px;right:7px;top:21px;bottom:14px;border-radius:5px 5px 11px 11px;background:linear-gradient(145deg,var(--bw-hi),var(--bw-main) 58%,var(--bw-low));border:1px solid rgba(70,48,34,.12);box-shadow:inset 0 8px rgba(255,255,255,.09)}
.room-bedroom-wardrobe .bedroom-wardrobe-door{position:absolute;top:7px;bottom:43px;width:calc(50% - 8px);border-radius:5px;background:linear-gradient(145deg,rgba(255,255,255,.08),rgba(0,0,0,.035));border:1px solid rgba(68,47,33,.10);box-shadow:inset 0 5px rgba(255,255,255,.06)}.room-bedroom-wardrobe .door-left{left:6px}.room-bedroom-wardrobe .door-right{right:6px}.room-bedroom-wardrobe .bedroom-wardrobe-door::before{content:"";position:absolute;inset:8px;border:1px solid rgba(255,255,255,.11);border-radius:3px}.room-bedroom-wardrobe .bedroom-wardrobe-door i{position:absolute;top:50%;width:5px;height:25px;border-radius:4px;background:var(--bw-dark);opacity:.65;transform:translateY(-50%)}.room-bedroom-wardrobe .door-left i{right:7px}.room-bedroom-wardrobe .door-right i{left:7px}
.room-bedroom-wardrobe .bedroom-wardrobe-drawer{position:absolute;left:7px;right:7px;bottom:7px;height:29px;border-radius:5px;background:rgba(255,255,255,.07);border:1px solid rgba(67,47,34,.10)}.room-bedroom-wardrobe .bedroom-wardrobe-drawer i,.room-bedroom-wardrobe .bedroom-wardrobe-drawer b{position:absolute;top:11px;width:22px;height:4px;border-radius:3px;background:var(--bw-dark);opacity:.58}.room-bedroom-wardrobe .bedroom-wardrobe-drawer i{left:21px}.room-bedroom-wardrobe .bedroom-wardrobe-drawer b{right:21px}
.room-bedroom-wardrobe .bedroom-wardrobe-foot{position:absolute;bottom:2px;width:14px;height:20px;border-radius:2px 2px 7px 7px;background:var(--bw-dark);z-index:-1}.room-bedroom-wardrobe .bedroom-wardrobe-foot.foot-left{left:22px}.room-bedroom-wardrobe .bedroom-wardrobe-foot.foot-right{right:22px}.room-bedroom-wardrobe::after{content:"";position:absolute;left:14px;right:14px;bottom:-3px;height:12px;border-radius:50%;background:rgba(48,34,24,.14);filter:blur(4px);z-index:-2}

/* Cuccia Nido: usa il roomBed unico, quindi niente duplicati o copie tra stanze. */
.room.bed-cozy .room-bed{width:218px!important;height:118px!important;filter:drop-shadow(0 12px 9px rgba(56,38,26,.18))}
.room.bed-cozy .room-bed .bed-back{left:3px!important;right:3px!important;top:0!important;height:79px!important;border-radius:62px 62px 28px 28px!important;background:repeating-linear-gradient(90deg,transparent 0 34px,rgba(255,255,255,.035) 35px 36px),linear-gradient(145deg,#cbb79e 0%,#aa8d72 55%,#7d614d 100%)!important;border:1px solid rgba(80,58,43,.14)!important;box-shadow:inset 0 8px rgba(255,255,255,.12),inset 0 -9px rgba(66,45,31,.08),0 4px 0 rgba(70,47,32,.08)!important}
.room.bed-cozy .room-bed .bed-back::before{inset:11px 14px 18px!important;border:2px solid rgba(255,255,255,.14)!important;border-radius:51px 51px 20px 20px!important}.room.bed-cozy .room-bed .bed-back::after{left:27px!important;right:27px!important;top:21px!important;height:4px!important;border-radius:4px!important;background:rgba(255,255,255,.13)!important;box-shadow:0 19px 0 rgba(74,51,35,.045)!important}
.room.bed-cozy .room-bed .bed-matress{left:13px!important;right:13px!important;top:52px!important;height:55px!important;border-radius:50%!important;background:radial-gradient(ellipse at 45% 24%,#fffdf8 0%,#f3e6d8 60%,#d8c1ab 100%)!important;border:1px solid rgba(108,78,57,.11)!important;box-shadow:inset 0 -9px 11px rgba(103,72,50,.10),inset 0 6px 8px rgba(255,255,255,.52),0 5px 0 rgba(75,50,33,.10)!important}
.room.bed-cozy .room-bed .bed-pillows{display:flex!important;left:34px!important;top:59px!important;gap:0!important;z-index:4!important}.room.bed-cozy .room-bed .bed-pillows span{width:46px!important;height:27px!important;border-radius:14px 16px 14px 16px!important;background:linear-gradient(145deg,#fffaf2,#e8d9c8)!important;border:1px solid rgba(119,86,63,.08)!important;box-shadow:inset 4px 3px rgba(255,255,255,.24),0 3px 5px rgba(68,46,31,.06)!important}.room.bed-cozy .room-bed .bed-pillows span+span{margin-left:-13px!important;transform:rotate(6deg)!important}
.room.bed-cozy .room-bed .bed-blanket{left:87px!important;right:22px!important;top:67px!important;height:34px!important;border-radius:48% 46% 50% 44%!important;background:linear-gradient(145deg,var(--bed-accent-hi,#c8ded2),var(--bed-accent,#9ebdac) 62%,var(--bed-accent-low,#6e947f))!important;border:1px solid rgba(72,95,83,.10)!important;box-shadow:inset 0 5px rgba(255,255,255,.16),0 3px 4px rgba(66,49,36,.08)!important}.room.bed-cozy .room-bed .bed-deco{right:34px!important;top:77px!important;width:18px!important;height:18px!important;border-radius:50%!important;background:rgba(255,255,255,.28)!important;font-size:0!important}.room.bed-cozy .room-bed .bed-deco::before{content:"";position:absolute;left:6px;top:-6px;width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.42);box-shadow:-7px 4px 0 rgba(255,255,255,.36),7px 4px 0 rgba(255,255,255,.36)}
.room.bed-cozy .room-bed::before{left:15px!important;right:15px!important;bottom:4px!important;height:25px!important;border-radius:0 0 27px 27px!important;background:linear-gradient(180deg,#8b654b,#5e412f)!important;box-shadow:inset 0 4px rgba(255,255,255,.06)!important}.room.bed-cozy .room-bed::after{left:25px!important;right:25px!important;bottom:-5px!important;height:14px!important;background:rgba(51,34,23,.17)!important;filter:blur(5px)!important}

.room:not(.arranging) .room-bedroom-nightstand,.room:not(.arranging) .room-bedroom-wardrobe{cursor:pointer}.room:not(.arranging) .room-bedroom-nightstand:active,.room:not(.arranging) .room-bedroom-wardrobe:active{filter:brightness(.98) drop-shadow(0 10px 7px rgba(45,32,23,.18))}.room.night .room-bedroom-nightstand,.room.night .room-bedroom-wardrobe{filter:drop-shadow(0 11px 8px rgba(5,8,12,.28)) brightness(.91)}.room.night.night-lighting-on .room-bedroom-nightstand,.room.night.night-lighting-on .room-bedroom-wardrobe{filter:drop-shadow(0 11px 8px rgba(5,8,12,.25)) brightness(1)}
@media(max-width:520px){.room-bedroom-nightstand{width:96px;height:94px;left:27%;top:69%}.room-bedroom-wardrobe{width:108px;height:176px;left:79%;top:58%}.room.bed-cozy .room-bed{width:202px!important;height:112px!important}}


/* =========================================================
   TinyPal v9.68 · SET BASE CAMERA II
   Tappeto Nube · Lampada Luna · Quadro Sogni
   ========================================================= */
.room-bedroom-rug,.room-bedroom-moon-lamp,.room-bedroom-dream-frame{position:absolute;user-select:none;-webkit-user-select:none;touch-action:none;transform:translate(-50%,-50%)}
.room-bedroom-rug{left:51%;top:81%;width:270px;height:100px;z-index:1;--br-hi:#f2e6d8;--br-main:#d6c1ac;--br-low:#ad927c;filter:drop-shadow(0 8px 5px rgba(53,39,28,.12))}
.room-bedroom-rug.tone-sage{--br-hi:#e0e7dd;--br-main:#bdcdbd;--br-low:#8ea491}.room-bedroom-rug.tone-rose{--br-hi:#f2e0e2;--br-main:#d9b6bd;--br-low:#a9808a}.room-bedroom-rug.tone-sky{--br-hi:#e1e9f0;--br-main:#b9ccda;--br-low:#829eaf}
.room-bedroom-rug .bedroom-rug-core{position:absolute;left:6px;right:6px;top:8px;bottom:8px;border-radius:50%;background:radial-gradient(ellipse at 45% 33%,var(--br-hi) 0%,var(--br-main) 57%,var(--br-low) 100%);border:2px solid rgba(255,255,255,.27);box-shadow:inset 0 7px 10px rgba(255,255,255,.17),inset 0 -9px 12px rgba(80,55,38,.08)}
.room-bedroom-rug .bedroom-rug-core::before{content:"";position:absolute;inset:13px 23px;border:2px dashed rgba(255,255,255,.22);border-radius:50%}.room-bedroom-rug .bedroom-rug-core i,.room-bedroom-rug .bedroom-rug-core b,.room-bedroom-rug .bedroom-rug-core em{position:absolute;width:19px;height:7px;border-radius:50%;background:rgba(255,255,255,.22);filter:blur(.2px)}.room-bedroom-rug .bedroom-rug-core i{left:27%;top:35%;transform:rotate(-18deg)}.room-bedroom-rug .bedroom-rug-core b{left:47%;top:55%;transform:rotate(11deg)}.room-bedroom-rug .bedroom-rug-core em{right:25%;top:31%;transform:rotate(21deg)}
.room-bedroom-rug .bedroom-rug-fringe{position:absolute;top:42px;width:20px;height:18px;background:repeating-linear-gradient(90deg,var(--br-low) 0 2px,transparent 2px 5px);opacity:.7}.room-bedroom-rug .fringe-left{left:-7px;transform:rotate(90deg)}.room-bedroom-rug .fringe-right{right:-7px;transform:rotate(90deg)}

.room-bedroom-moon-lamp{left:37%;top:59%;width:82px;height:116px;z-index:7;--bml-hi:#f4eadc;--bml-main:#d9c59e;--bml-low:#987d5e;--bml-dark:#615045;--bml-glow:#ffd997;filter:drop-shadow(0 8px 6px rgba(46,35,27,.16))}
.room-bedroom-moon-lamp.tone-honey{--bml-hi:#f5dfb2;--bml-main:#d5aa61;--bml-low:#9d7037;--bml-dark:#654728;--bml-glow:#ffd06f}.room-bedroom-moon-lamp.tone-rose{--bml-hi:#f1dce2;--bml-main:#d4abb6;--bml-low:#9b7480;--bml-dark:#684d56;--bml-glow:#ffd7dd}.room-bedroom-moon-lamp.tone-mint{--bml-hi:#ddeade;--bml-main:#aec7b1;--bml-low:#77917c;--bml-dark:#536658;--bml-glow:#dcffd9}
.room-bedroom-moon-lamp .bedroom-moon-shade{position:absolute;left:11px;top:5px;width:60px;height:43px;border-radius:32px 32px 14px 14px;background:linear-gradient(155deg,var(--bml-hi),var(--bml-main) 63%,var(--bml-low));border:1px solid rgba(74,55,39,.12);box-shadow:inset 0 5px rgba(255,255,255,.15)}.room-bedroom-moon-lamp .bedroom-moon-shade i{position:absolute;right:9px;top:8px;width:16px;height:16px;border-radius:50%;background:rgba(255,255,255,.34)}.room-bedroom-moon-lamp .bedroom-moon-shade i::after{content:"";position:absolute;left:5px;top:-2px;width:14px;height:14px;border-radius:50%;background:var(--bml-main)}
.room-bedroom-moon-lamp .bedroom-moon-bulb{position:absolute;left:32px;top:38px;width:18px;height:22px;border-radius:50% 50% 43% 43%;background:radial-gradient(circle at 40% 28%,#fffbe3,var(--bml-glow) 58%,#daa650);box-shadow:0 0 14px rgba(255,210,126,.68),0 7px 22px rgba(255,205,116,.34);z-index:1}.room-bedroom-moon-lamp .bedroom-moon-stem{position:absolute;left:38px;top:54px;width:6px;height:44px;border-radius:999px;background:linear-gradient(90deg,var(--bml-dark),var(--bml-low),var(--bml-dark))}.room-bedroom-moon-lamp .bedroom-moon-base{position:absolute;left:18px;bottom:4px;width:46px;height:14px;border-radius:50%;background:linear-gradient(180deg,var(--bml-main),var(--bml-dark));box-shadow:inset 0 3px rgba(255,255,255,.10)}.room-bedroom-moon-lamp .bedroom-moon-base i{position:absolute;right:11px;top:4px;width:5px;height:5px;border-radius:50%;background:rgba(255,244,213,.75)}
.room-bedroom-moon-lamp.is-off .bedroom-moon-bulb{background:linear-gradient(145deg,#d8d3c8,#aba69d);box-shadow:none;filter:saturate(.15)}.room-bedroom-moon-lamp.is-off{filter:drop-shadow(0 8px 6px rgba(46,35,27,.16)) brightness(.88)}.room-bedroom-moon-lamp:not(.is-off)::after{content:"";position:absolute;left:8px;top:31px;width:66px;height:62px;border-radius:50%;background:radial-gradient(ellipse,rgba(255,219,150,.19),rgba(255,219,150,0) 72%);pointer-events:none}

.room-bedroom-dream-frame{left:64%;top:32%;width:128px;height:96px;z-index:2;--bdf-frame:#b38a62;--bdf-frame-dark:#76563c;--bdf-sky:#7f96ad;--bdf-sky2:#536c86;filter:drop-shadow(0 8px 5px rgba(46,34,25,.14))}
.room-bedroom-dream-frame.tone-walnut{--bdf-frame:#82573e;--bdf-frame-dark:#4f3325}.room-bedroom-dream-frame.tone-cream{--bdf-frame:#ded0bb;--bdf-frame-dark:#9f8c72}.room-bedroom-dream-frame.tone-sage{--bdf-frame:#aab9a7;--bdf-frame-dark:#6f7f6e;--bdf-sky:#829b91;--bdf-sky2:#5f786f}
.room-bedroom-dream-frame .bedroom-dream-frame-shell{position:absolute;inset:4px;border:8px solid var(--bdf-frame);border-radius:18px;background:linear-gradient(180deg,var(--bdf-sky),var(--bdf-sky2));box-shadow:inset 0 0 0 2px rgba(255,255,255,.16),inset 0 -18px 25px rgba(28,38,52,.12),0 3px 0 var(--bdf-frame-dark);overflow:hidden}.room-bedroom-dream-frame .bedroom-dream-frame-shell::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 72% 24%,rgba(255,255,255,.13),transparent 28%)}
.room-bedroom-dream-frame .bedroom-dream-moon{position:absolute;left:24px;top:18px;width:28px;height:28px;border-radius:50%;background:#f7e2a7;box-shadow:0 0 12px rgba(255,226,151,.28)}.room-bedroom-dream-frame .bedroom-dream-moon::after{content:"";position:absolute;left:10px;top:-3px;width:27px;height:27px;border-radius:50%;background:var(--bdf-sky)}
.room-bedroom-dream-frame .dream-star{position:absolute;width:6px;height:6px;border-radius:50%;background:#fff0bd;box-shadow:0 0 7px rgba(255,239,187,.45)}.room-bedroom-dream-frame .star-a{right:26px;top:20px}.room-bedroom-dream-frame .star-b{right:43px;top:35px;width:4px;height:4px}.room-bedroom-dream-frame .star-c{left:58px;top:13px;width:4px;height:4px}.room-bedroom-dream-frame .dream-hill{position:absolute;left:-8px;right:-8px;bottom:-17px;height:47px;border-radius:50% 50% 0 0;background:linear-gradient(180deg,#70857a,#4e665c)}

.room:not(.arranging) .room-bedroom-rug,.room:not(.arranging) .room-bedroom-moon-lamp,.room:not(.arranging) .room-bedroom-dream-frame{cursor:pointer}.room:not(.arranging) .room-bedroom-rug:active,.room:not(.arranging) .room-bedroom-dream-frame:active{filter:brightness(.98) drop-shadow(0 8px 6px rgba(45,32,23,.17))}
.room.night .room-bedroom-rug,.room.night .room-bedroom-dream-frame{filter:drop-shadow(0 9px 7px rgba(5,8,12,.28)) brightness(.90)}.room.night.night-lighting-on .room-bedroom-rug,.room.night.night-lighting-on .room-bedroom-dream-frame{filter:drop-shadow(0 9px 7px rgba(5,8,12,.24)) brightness(1)}
.bedroom-moon-light-field .lamp-light-cone{filter:saturate(.88) blur(1.7px)}
@media(max-width:520px){.room-bedroom-rug{width:238px;height:90px;left:51%;top:82%}.room-bedroom-moon-lamp{width:72px;height:106px;left:36%;top:61%}.room-bedroom-dream-frame{width:112px;height:86px;left:65%;top:33%}}


/* =========================================================
   TinyPal v9.69 · Arredo rapido da inventario
   ========================================================= */
.arrange-quick-inventory{width:100%;min-width:0;border-top:1px solid rgba(77,63,50,.10);border-bottom:1px solid rgba(77,63,50,.10);padding:10px 0 9px;display:grid;gap:8px}
.arrange-quick-inventory.hidden{display:none!important}
.arrange-quick-inventory-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:0 2px}
.arrange-quick-inventory-head>div:first-child{display:grid;gap:2px;min-width:140px}
.arrange-quick-inventory-head small{font-size:10px;font-weight:900;letter-spacing:.08em;opacity:.6}
.arrange-quick-inventory-head strong{font-size:12px;line-height:1.2}
.arrange-quick-inventory-filters{display:flex;gap:5px;overflow-x:auto;scrollbar-width:none;max-width:72%}
.arrange-quick-inventory-filters::-webkit-scrollbar,.arrange-quick-inventory-list::-webkit-scrollbar{display:none}
.arrange-quick-inventory-filters button{border:0;border-radius:999px;background:rgba(70,62,52,.07);padding:7px 10px;white-space:nowrap;font:800 10px/1 system-ui;color:inherit;cursor:pointer}
.arrange-quick-inventory-filters button.active{background:rgba(80,119,91,.16);box-shadow:inset 0 0 0 1px rgba(80,119,91,.20)}
.arrange-quick-inventory-list{display:flex;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;padding:1px 2px 4px;min-height:68px}
.arrange-quick-item{flex:0 0 min(238px,76vw);scroll-snap-align:start;display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px;border-radius:15px;background:rgba(255,255,255,.66);box-shadow:inset 0 0 0 1px rgba(65,55,45,.08);min-width:0}
.arrange-quick-item.recommended{box-shadow:inset 0 0 0 1px rgba(80,119,91,.28),0 4px 12px rgba(72,93,75,.06)}
.arrange-quick-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:rgba(255,255,255,.78);font-size:23px;box-shadow:0 3px 8px rgba(56,48,40,.08)}
.arrange-quick-copy{display:grid;gap:3px;min-width:0}
.arrange-quick-copy strong{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.arrange-quick-copy small{font-size:9px;opacity:.62;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.arrange-quick-item>button{border:0;border-radius:11px;padding:9px 10px;background:rgba(80,119,91,.15);font:900 10px/1 system-ui;color:inherit;white-space:nowrap;cursor:pointer}
.arrange-quick-item>button:active{transform:scale(.96)}
.arrange-quick-empty{flex:1 0 100%;min-height:64px;border:1px dashed rgba(74,64,54,.16);border-radius:14px;display:flex;align-items:center;gap:10px;padding:9px 12px;background:rgba(255,255,255,.35)}
.arrange-quick-empty>span{font-size:24px}.arrange-quick-empty>div{display:grid;gap:2px}.arrange-quick-empty strong{font-size:11px}.arrange-quick-empty small{font-size:9px;opacity:.62}
@media(max-width:430px){
  .arrange-quick-inventory{padding-top:8px}
  .arrange-quick-inventory-head{display:grid;align-items:stretch;gap:7px}
  .arrange-quick-inventory-filters{max-width:none;width:100%}
  .arrange-quick-item{flex-basis:min(230px,82vw);grid-template-columns:38px minmax(0,1fr) auto}
  .arrange-quick-icon{width:38px;height:38px;font-size:21px}
  .arrange-quick-item>button{padding:9px 8px}
}

/* =========================================================
   TinyPal v9.70 · Arredo Pro responsive + Set Base Bagno I
   ========================================================= */

/* Arredo Pro: usa davvero la larghezza disponibile su desktop e mobile. */
.external-arrange-toolbar{
  grid-template-columns:minmax(220px,1fr) auto!important;
  grid-template-areas:
    "selected tools"
    "inventory inventory"
    "pan pan"
    "transfer transfer"!important;
  width:min(1180px,calc(100vw - 40px))!important;
  max-width:none!important;
  max-height:min(64dvh,640px);
  overflow:auto;
  overscroll-behavior:contain;
  padding:14px 16px!important;
  gap:12px!important;
  border-radius:24px!important;
}
.external-arrange-toolbar .arrange-selected{grid-area:selected;min-width:0}
.external-arrange-toolbar .arrange-selected strong{font-size:14px;white-space:normal;line-height:1.15;overflow:visible;text-overflow:clip}
.external-arrange-toolbar .arrange-tools{grid-area:tools;display:grid;grid-template-columns:repeat(6,44px);gap:7px}
.external-arrange-toolbar .arrange-tools button{width:44px;height:42px;border-radius:13px}
.external-arrange-toolbar .arrange-quick-inventory{grid-area:inventory;border-color:rgba(255,255,255,.11);padding:12px 0 10px}
.external-arrange-toolbar .arrange-pan-controls{grid-area:pan;margin-top:0}
.external-arrange-toolbar .arrange-room-transfer{grid-area:transfer;width:100%}
.external-arrange-toolbar .arrange-quick-inventory-head{align-items:center}
.external-arrange-toolbar .arrange-quick-inventory-head small{color:rgba(255,255,255,.72);opacity:1}
.external-arrange-toolbar .arrange-quick-inventory-head strong{color:#fff;font-size:13px}
.external-arrange-toolbar .arrange-quick-inventory-filters{max-width:none;flex-wrap:wrap;overflow:visible}
.external-arrange-toolbar .arrange-quick-inventory-filters button{background:rgba(255,255,255,.10);color:#fff;padding:8px 11px}
.external-arrange-toolbar .arrange-quick-inventory-filters button.active{background:rgba(145,186,154,.26);box-shadow:inset 0 0 0 1px rgba(174,215,182,.24)}
.external-arrange-toolbar .arrange-quick-item{background:rgba(255,255,255,.10);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);color:#fff}
.external-arrange-toolbar .arrange-quick-item.recommended{box-shadow:inset 0 0 0 1px rgba(168,211,176,.38),0 5px 14px rgba(0,0,0,.10)}
.external-arrange-toolbar .arrange-quick-icon{background:rgba(255,255,255,.12)}
.external-arrange-toolbar .arrange-quick-copy small{color:rgba(255,255,255,.68);opacity:1}
.external-arrange-toolbar .arrange-quick-item>button{background:rgba(156,199,165,.22);color:#fff;min-height:36px}
.external-arrange-toolbar .arrange-quick-empty{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.14);color:#fff}
.external-arrange-toolbar .arrange-quick-empty small{color:rgba(255,255,255,.62);opacity:1}

/* Su PC niente striscia minuscola: le schede sfruttano lo spazio in griglia. */
@media(min-width:760px){
  .external-arrange-toolbar .arrange-quick-inventory-list{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
    gap:9px;
    overflow:visible;
    min-height:0;
  }
  .external-arrange-toolbar .arrange-quick-item{
    width:auto;
    min-width:0;
    max-width:none;
    flex:none;
    grid-template-columns:46px minmax(0,1fr) auto;
  }
  .external-arrange-toolbar .arrange-pan-controls{grid-template-columns:52px minmax(0,1fr) 52px}
}

/* Telefono: una colonna ordinata e pannello quasi a tutta larghezza. */
@media(max-width:759px){
  .external-arrange-toolbar{
    width:calc(100vw - 16px)!important;
    bottom:calc(88px + var(--safe-bottom))!important;
    max-height:min(58dvh,590px);
    padding:11px!important;
    border-radius:22px!important;
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-areas:
      "selected"
      "tools"
      "inventory"
      "pan"
      "transfer"!important;
    gap:9px!important;
  }
  .external-arrange-toolbar .arrange-selected{padding:0 3px}
  .external-arrange-toolbar .arrange-selected strong{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .external-arrange-toolbar .arrange-tools{width:100%;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
  .external-arrange-toolbar .arrange-tools button{width:100%;height:42px}
  .external-arrange-toolbar .arrange-quick-inventory{padding:10px 2px 8px}
  .external-arrange-toolbar .arrange-quick-inventory-head{display:grid;grid-template-columns:1fr;gap:8px;align-items:stretch}
  .external-arrange-toolbar .arrange-quick-inventory-filters{display:flex;flex-wrap:nowrap;overflow-x:auto;width:100%;padding-bottom:1px}
  .external-arrange-toolbar .arrange-quick-inventory-list{padding-right:10px}
  .external-arrange-toolbar .arrange-quick-item{flex:0 0 min(286px,82vw);grid-template-columns:42px minmax(0,1fr) auto;padding:9px}
  .external-arrange-toolbar .arrange-pan-controls{grid-template-columns:48px minmax(0,1fr) 48px;padding-top:9px}
  .external-arrange-toolbar .arrange-pan-controls strong{white-space:normal;line-height:1.15}
}
@media(max-width:390px){
  .external-arrange-toolbar{width:calc(100vw - 12px)!important;padding:9px!important;max-height:55dvh}
  .external-arrange-toolbar .arrange-tools button{height:40px;font-size:18px}
  .external-arrange-toolbar .arrange-quick-item{flex-basis:min(270px,84vw)}
}

/* ---- Set Base Bagno I ---- */
.room-bathroom-sink,.room-bathroom-tub,.room-bathroom-cabinet{position:absolute;user-select:none;-webkit-user-select:none;touch-action:none;transform:translate(-50%,-50%)}
.room-bathroom-sink{left:27%;top:57%;width:112px;height:154px;z-index:5;--bs-hi:#f2eee7;--bs-main:#d9d0c4;--bs-low:#a9a096;--bs-accent:#8aa6a2;filter:drop-shadow(0 11px 7px rgba(45,37,31,.15))}
.room-bathroom-sink.tone-sage{--bs-hi:#e7efe8;--bs-main:#c1d0c2;--bs-low:#8fa391;--bs-accent:#6f9189}.room-bathroom-sink.tone-sky{--bs-hi:#e7eff4;--bs-main:#c3d4df;--bs-low:#8ea6b6;--bs-accent:#7192a0}.room-bathroom-sink.tone-rose{--bs-hi:#f3e6e7;--bs-main:#d9bfc2;--bs-low:#aa8c91;--bs-accent:#a27b82}
.room-bathroom-sink .bathroom-sink-mirror{position:absolute;left:19px;top:0;width:74px;height:66px;border-radius:28px 28px 23px 23px;background:linear-gradient(145deg,#e8f1f4,#bcd0d5);border:7px solid var(--bs-main);box-shadow:inset 8px 7px rgba(255,255,255,.30)}.room-bathroom-sink .bathroom-sink-mirror i{position:absolute;left:13px;top:11px;width:20px;height:31px;border-radius:50%;background:rgba(255,255,255,.34);transform:rotate(24deg)}
.room-bathroom-sink .bathroom-sink-basin{position:absolute;left:5px;right:5px;top:73px;height:37px;border-radius:50% 50% 28% 28%;background:linear-gradient(180deg,var(--bs-hi),var(--bs-main));border:1px solid rgba(67,60,54,.10);box-shadow:inset 0 -7px rgba(70,64,58,.07)}.room-bathroom-sink .bathroom-sink-tap{position:absolute;left:49px;top:-17px;width:17px;height:20px;border:4px solid #8d999b;border-left:0;border-bottom:0;border-radius:0 12px 0 0}.room-bathroom-sink .bathroom-sink-drain{position:absolute;left:50%;top:19px;transform:translateX(-50%);width:11px;height:5px;border-radius:50%;background:#98a1a2}
.room-bathroom-sink .bathroom-sink-pedestal{position:absolute;left:38px;top:103px;width:37px;height:43px;border-radius:4px 4px 16px 16px;background:linear-gradient(90deg,var(--bs-main),var(--bs-hi) 44%,var(--bs-low));}.room-bathroom-sink .bathroom-sink-shadow{position:absolute;left:22px;right:22px;bottom:0;height:10px;border-radius:50%;background:rgba(45,36,29,.13);filter:blur(4px)}

.room-bathroom-tub{left:58%;top:72%;width:224px;height:136px;z-index:4;--bt-hi:#f2ede5;--bt-main:#d8d0c6;--bt-low:#a9a098;--bt-water:#a9d8df;filter:drop-shadow(0 13px 8px rgba(44,35,29,.16))}
.room-bathroom-tub.tone-sage{--bt-hi:#e8efe7;--bt-main:#c2d0c0;--bt-low:#8fa08f;--bt-water:#a8d5ce}.room-bathroom-tub.tone-sky{--bt-hi:#e8f1f5;--bt-main:#c5d7e1;--bt-low:#91a9b7;--bt-water:#9fd8e6}.room-bathroom-tub.tone-rose{--bt-hi:#f3e7e7;--bt-main:#dbbec2;--bt-low:#ab8c91;--bt-water:#add9df}
.room-bathroom-tub .bathroom-tub-shell{position:absolute;left:8px;right:8px;bottom:14px;height:75px;border-radius:26px 26px 35px 35px;background:linear-gradient(160deg,var(--bt-hi),var(--bt-main) 58%,var(--bt-low));border:1px solid rgba(65,55,49,.10);box-shadow:inset 0 8px rgba(255,255,255,.15)}.room-bathroom-tub .bathroom-tub-rim{position:absolute;left:10px;right:10px;top:7px;height:25px;border-radius:50%;background:linear-gradient(180deg,#faf8f3,var(--bt-main));box-shadow:inset 0 -6px rgba(65,55,49,.08)}.room-bathroom-tub .bathroom-tub-water{position:absolute;left:17px;right:17px;top:14px;height:21px;border-radius:50%;background:linear-gradient(180deg,rgba(255,255,255,.55),var(--bt-water));z-index:2;box-shadow:inset 0 4px rgba(255,255,255,.30)}
.room-bathroom-tub .bathroom-tub-shower{position:absolute;right:18px;top:0;width:64px;height:76px;z-index:4}.room-bathroom-tub .bathroom-tub-shower i{position:absolute;right:17px;top:22px;width:8px;height:47px;border-radius:7px;background:#8d9899}.room-bathroom-tub .bathroom-tub-shower b{position:absolute;right:2px;top:6px;width:38px;height:26px;border-radius:50% 50% 60% 60%;background:linear-gradient(180deg,#dfe6e6,#9ca8aa);transform:rotate(-12deg);box-shadow:inset 0 4px rgba(255,255,255,.24)}
.room-bathroom-tub .bathroom-tub-foot{position:absolute;bottom:5px;width:18px;height:15px;border-radius:3px 3px 8px 8px;background:#77736e}.room-bathroom-tub .foot-left{left:38px}.room-bathroom-tub .foot-right{right:38px}

.room-bathroom-cabinet{left:77%;top:55%;width:128px;height:142px;z-index:5;--bc-hi:#d6b183;--bc-main:#a97b55;--bc-low:#765038;--bc-dark:#543421;filter:drop-shadow(0 11px 7px rgba(44,34,26,.15))}
.room-bathroom-cabinet.tone-walnut{--bc-hi:#aa7657;--bc-main:#7c5039;--bc-low:#583421;--bc-dark:#3e2418}.room-bathroom-cabinet.tone-cream{--bc-hi:#eee1cf;--bc-main:#ceb99f;--bc-low:#9b8267;--bc-dark:#6e5946}.room-bathroom-cabinet.tone-sage{--bc-hi:#c5d1c2;--bc-main:#98aa96;--bc-low:#6c806b;--bc-dark:#4d5e4d}
.room-bathroom-cabinet .bathroom-cabinet-top{position:absolute;left:4px;right:4px;top:5px;height:18px;border-radius:8px 8px 4px 4px;background:linear-gradient(180deg,var(--bc-hi),var(--bc-main));box-shadow:inset 0 4px rgba(255,255,255,.12)}.room-bathroom-cabinet .bathroom-cabinet-top i,.room-bathroom-cabinet .bathroom-cabinet-top b{position:absolute;top:-11px;width:19px;height:19px;border-radius:6px 6px 9px 9px;background:#e9ded3}.room-bathroom-cabinet .bathroom-cabinet-top i{left:20px}.room-bathroom-cabinet .bathroom-cabinet-top b{right:20px}
.room-bathroom-cabinet .bathroom-cabinet-body{position:absolute;left:8px;right:8px;top:22px;height:102px;border-radius:4px 4px 13px 13px;background:linear-gradient(90deg,var(--bc-low),var(--bc-main) 48%,var(--bc-hi));overflow:hidden}.room-bathroom-cabinet .cabinet-door{position:absolute;top:8px;bottom:34px;width:45%;border-radius:4px;background:rgba(255,255,255,.07);box-shadow:inset 0 0 0 1px rgba(56,38,26,.10)}.room-bathroom-cabinet .cabinet-door.left{left:4px}.room-bathroom-cabinet .cabinet-door.right{right:4px}.room-bathroom-cabinet .cabinet-door i{position:absolute;top:25px;width:4px;height:13px;border-radius:99px;background:var(--bc-dark)}.room-bathroom-cabinet .cabinet-door.left i{right:7px}.room-bathroom-cabinet .cabinet-door.right i{left:7px}.room-bathroom-cabinet .cabinet-drawer{position:absolute;left:8px;right:8px;bottom:6px;height:23px;border-radius:5px;background:rgba(255,255,255,.08);box-shadow:inset 0 0 0 1px rgba(56,38,26,.10)}.room-bathroom-cabinet .cabinet-drawer i{position:absolute;left:50%;top:8px;transform:translateX(-50%);width:26px;height:4px;border-radius:99px;background:var(--bc-dark)}
.room-bathroom-cabinet .bathroom-cabinet-leg{position:absolute;bottom:3px;width:12px;height:18px;border-radius:2px 2px 6px 6px;background:var(--bc-dark)}.room-bathroom-cabinet .leg-left{left:21px}.room-bathroom-cabinet .leg-right{right:21px}
.room:not(.arranging) .room-bathroom-sink,.room:not(.arranging) .room-bathroom-tub,.room:not(.arranging) .room-bathroom-cabinet{cursor:pointer}
.room:not(.arranging) .room-bathroom-sink:active,.room:not(.arranging) .room-bathroom-tub:active,.room:not(.arranging) .room-bathroom-cabinet:active{filter:brightness(.98) drop-shadow(0 9px 6px rgba(45,32,23,.18))}
@media(max-width:520px){.room-bathroom-sink{left:25%;top:58%;width:96px;height:137px}.room-bathroom-tub{left:58%;top:74%;width:196px;height:120px}.room-bathroom-cabinet{left:78%;top:55%;width:110px;height:126px}}


/* =========================================================
   TinyPal v9.71 · Tutorial guidato progressivo
   ========================================================= */
.tutorial-coach{position:fixed;inset:0;z-index:210;pointer-events:none;font-family:inherit}
.tutorial-coach.hidden{display:none!important}
.tutorial-focus-ring{position:fixed;z-index:210;pointer-events:none;border:3px solid rgba(255,255,255,.96);box-shadow:0 0 0 9999px rgba(29,25,22,.52),0 0 0 6px rgba(116,151,124,.22),0 12px 36px rgba(25,21,18,.22);transition:left .22s ease,top .22s ease,width .22s ease,height .22s ease,border-radius .22s ease}
.tutorial-focus-ring.hidden{display:none!important}.tutorial-focus-ring.no-target{inset:0!important;width:auto!important;height:auto!important;border:0!important;border-radius:0!important;background:rgba(29,25,22,.48);box-shadow:none}
.tutorial-coach-card{pointer-events:auto;position:fixed;left:50%;bottom:max(102px,calc(82px + env(safe-area-inset-bottom)));transform:translateX(-50%);width:min(620px,calc(100vw - 28px));padding:17px 18px 15px;border-radius:24px;background:rgba(255,253,249,.98);color:#2c2825;box-shadow:0 20px 60px rgba(29,24,20,.30);border:1px solid rgba(73,62,53,.10);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);z-index:211}
.tutorial-coach.coach-top .tutorial-coach-card{top:max(18px,env(safe-area-inset-top));bottom:auto}
.tutorial-coach-head{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:11px;align-items:center}.tutorial-coach-head>span{width:46px;height:46px;border-radius:16px;background:#f0eee8;display:grid;place-items:center;font-size:24px}.tutorial-coach-head>div{display:grid;gap:2px;min-width:0}.tutorial-coach-head small{font-size:10px;font-weight:950;letter-spacing:.12em;color:#81776f}.tutorial-coach-head strong{font-size:18px;line-height:1.1}.tutorial-coach-head em{font-style:normal;font-size:10px;font-weight:900;color:#857b72;white-space:nowrap}.tutorial-coach-card p{margin:11px 1px 13px;font-size:13px;line-height:1.45;font-weight:650;color:#70675f}.tutorial-coach-actions{display:flex;justify-content:flex-end;gap:8px}.tutorial-coach-actions button{min-height:40px;border:0;border-radius:14px;padding:0 14px;font:850 12px/1 system-ui;cursor:pointer}.tutorial-coach-actions button:first-child{background:#f0eee9;color:#71685f}.tutorial-coach-actions button:last-child{background:#282421;color:#fff;min-width:104px}.tutorial-coach-actions button:active{transform:scale(.97)}
@media(max-width:560px){.tutorial-coach-card{bottom:max(92px,calc(76px + env(safe-area-inset-bottom)));width:calc(100vw - 20px);padding:14px 14px 13px;border-radius:21px}.tutorial-coach.coach-top .tutorial-coach-card{top:max(10px,env(safe-area-inset-top))}.tutorial-coach-head{grid-template-columns:40px minmax(0,1fr) auto;gap:9px}.tutorial-coach-head>span{width:40px;height:40px;border-radius:14px;font-size:21px}.tutorial-coach-head strong{font-size:16px}.tutorial-coach-head em{font-size:9px}.tutorial-coach-card p{font-size:12px;margin:9px 1px 11px}.tutorial-coach-actions button{min-height:38px;padding:0 12px;font-size:11px}}
@media(min-width:900px){.tutorial-coach-card{width:min(720px,calc(100vw - 48px));padding:20px 22px 18px}.tutorial-coach-head strong{font-size:20px}.tutorial-coach-card p{font-size:14px}.tutorial-coach-actions button{min-height:42px;font-size:12px}}

/* =========================================================
   TinyPal v9.72 · Fase 22 — Modalità Costruisci a schermo intero
   ========================================================= */
.build-mode-topbar{display:none}
.build-mode-topbar.hidden{display:none!important}
body.build-mode-active{overflow:hidden!important;overscroll-behavior:none;background:#e8e3dc}
body.build-mode-active .app-shell{
  width:100vw!important;max-width:none!important;height:100dvh!important;min-height:100dvh!important;
  margin:0!important;padding:0!important;overflow:hidden!important;
}
body.build-mode-active .home-topbar,
body.build-mode-active .dock{display:none!important}
body.build-mode-active main.home-layout{
  position:fixed!important;inset:0!important;z-index:40!important;display:block!important;
  width:100vw!important;max-width:none!important;height:100dvh!important;margin:0!important;padding:0!important;
  overflow:hidden!important;background:linear-gradient(180deg,#e9e4dd,#ddd6cd)!important;
}
body.build-mode-active main.home-layout>*:not(.room-scroll-shell):not(.external-arrange-toolbar):not(.build-mode-topbar){display:none!important}
body.build-mode-active .build-mode-topbar{
  display:grid!important;position:fixed;left:50%;top:max(8px,env(safe-area-inset-top));transform:translateX(-50%);
  width:min(1180px,calc(100vw - 20px));min-height:54px;z-index:74;
  grid-template-columns:auto minmax(220px,1fr) auto;align-items:center;gap:12px;padding:7px 9px;
  border-radius:20px;background:rgba(31,29,27,.94);color:#fff;border:1px solid rgba(255,255,255,.08);
  box-shadow:0 14px 36px rgba(26,22,19,.22);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)
}
.build-mode-done,.build-mode-room-nav>button,.build-mode-actions button{
  border:0;color:#fff;background:rgba(255,255,255,.11);font:850 12px/1 system-ui;cursor:pointer;touch-action:manipulation
}
.build-mode-done{height:40px;border-radius:13px;padding:0 13px;display:flex;align-items:center;gap:7px;background:#f5f1ea;color:#292522}
.build-mode-done span{font-size:16px}.build-mode-done strong{font-size:12px}
.build-mode-room-nav{min-width:0;display:grid;grid-template-columns:38px minmax(0,1fr) 38px;align-items:center;gap:8px}
.build-mode-room-nav>button{height:38px;border-radius:12px;font-size:24px}
.build-mode-room-nav>div{min-width:0;text-align:center;display:grid;gap:2px}
.build-mode-room-nav small{font-size:9px;letter-spacing:.13em;font-weight:950;color:rgba(255,255,255,.55)}
.build-mode-room-nav strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.build-mode-actions{display:flex;align-items:center;gap:7px}
.build-zoom-controls{display:grid;grid-template-columns:38px 68px 38px;gap:4px;padding:3px;border-radius:14px;background:rgba(255,255,255,.06)}
.build-zoom-controls button{height:34px;border-radius:10px;font-size:18px}
.build-zoom-controls #buildZoomReset{font-size:10px;padding:0 6px}.build-zoom-controls #buildZoomReset strong{font-size:10px}
.build-inventory-toggle{height:40px;border-radius:13px;padding:0 11px;display:flex;align-items:center;gap:6px}
.build-inventory-toggle span{font-size:17px}.build-inventory-toggle strong{font-size:11px}
body.build-mode-active.build-inventory-collapsed .build-inventory-toggle{background:rgba(157,199,166,.22);box-shadow:inset 0 0 0 1px rgba(171,215,181,.18)}

body.build-mode-active .room-scroll-shell{
  position:fixed!important;left:0!important;right:0!important;
  top:calc(max(8px,env(safe-area-inset-top)) + 68px)!important;
  bottom:var(--build-toolbar-h,150px)!important;
  width:100vw!important;max-width:none!important;height:auto!important;margin:0!important;padding:12px!important;
  border-radius:0!important;overflow:auto!important;overscroll-behavior:contain!important;scroll-snap-type:none!important;
  background:
    radial-gradient(circle at 18% 8%,rgba(255,255,255,.40),transparent 28%),
    linear-gradient(180deg,#e8e2da,#d7cfc5)!important;
  scrollbar-width:thin;touch-action:none
}
body.build-mode-active .room-scroll-shell>.room{
  width:max(100%,700px)!important;min-width:max(100%,700px)!important;max-width:none!important;
  height:max(440px,100%)!important;min-height:440px!important;margin:0!important;border-radius:28px!important;
  transform-origin:top left;box-shadow:0 16px 46px rgba(51,40,31,.18)!important
}
body.build-mode-active .room-scroll-shell.room-expand-active>.room{
  width:max(100%,var(--room-expanded-width,860px))!important;
  min-width:max(100%,var(--room-expanded-width,860px))!important;
}
body.build-mode-active .room-scroll-shell::after{display:none!important}
body.build-mode-active .room .house-room-current-badge{top:14px;right:14px;left:auto;transform:none;opacity:.84}
body.build-mode-active .room .room-expansion-indicator{top:14px;left:14px}

body.build-mode-active .external-arrange-toolbar{
  display:grid!important;position:fixed!important;left:50%!important;right:auto!important;
  bottom:max(8px,env(safe-area-inset-bottom))!important;transform:translateX(-50%)!important;
  width:min(1180px,calc(100vw - 20px))!important;max-height:min(42dvh,420px)!important;
  grid-template-columns:minmax(200px,1fr) auto!important;
  grid-template-areas:"selected tools" "inventory inventory" "pan pan" "transfer transfer"!important;
  padding:10px 12px!important;gap:8px!important;border-radius:20px!important;z-index:73!important
}
body.build-mode-active .external-arrange-toolbar .arrange-selected strong{font-size:13px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
body.build-mode-active .external-arrange-toolbar .arrange-tools{grid-template-columns:repeat(6,40px)!important;gap:5px!important}
body.build-mode-active .external-arrange-toolbar .arrange-tools button{width:40px!important;height:38px!important;border-radius:11px!important}
body.build-mode-active .external-arrange-toolbar .arrange-pan-controls{padding-top:6px!important}
body.build-mode-active .external-arrange-toolbar .arrange-quick-inventory{padding:8px 0 6px!important}
body.build-mode-active.build-inventory-collapsed .external-arrange-toolbar .arrange-quick-inventory{display:none!important}
body.build-mode-active.build-inventory-collapsed .external-arrange-toolbar{
  max-height:190px!important;grid-template-areas:"selected tools" "pan pan" "transfer transfer"!important
}

/* Il canvas deve restare enorme anche sui PC larghi: niente vecchio limite da 1180px. */
@media(min-width:900px){
  body.build-mode-active .room-scroll-shell{padding:14px 18px!important}
  body.build-mode-active .room-scroll-shell>.room{height:max(520px,100%)!important;min-height:520px!important}
  body.build-mode-active .external-arrange-toolbar .arrange-quick-inventory-list{
    grid-template-columns:repeat(auto-fit,minmax(210px,1fr))!important;max-height:164px;overflow:auto!important
  }
}
@media(max-width:759px){
  body.build-mode-active .build-mode-topbar{
    width:calc(100vw - 12px);grid-template-columns:auto minmax(0,1fr) auto;gap:6px;padding:6px;border-radius:18px
  }
  .build-mode-done{width:42px;padding:0;justify-content:center}.build-mode-done strong{display:none}
  .build-mode-room-nav{grid-template-columns:32px minmax(0,1fr) 32px;gap:4px}.build-mode-room-nav>button{height:36px;font-size:21px}
  .build-mode-room-nav small{font-size:8px}.build-mode-room-nav strong{font-size:12px}
  .build-zoom-controls{grid-template-columns:32px 48px 32px;gap:2px}.build-zoom-controls button{height:32px}
  .build-zoom-controls #buildZoomReset strong{font-size:9px}
  .build-inventory-toggle{width:42px;padding:0;justify-content:center}.build-inventory-toggle strong{display:none}
  body.build-mode-active .room-scroll-shell{top:calc(max(6px,env(safe-area-inset-top)) + 64px)!important;padding:8px!important}
  body.build-mode-active .room-scroll-shell>.room{width:700px!important;min-width:700px!important;height:max(460px,100%)!important;min-height:460px!important;border-radius:22px!important}
  body.build-mode-active .room-scroll-shell.room-expand-active>.room{width:var(--room-expanded-width,860px)!important;min-width:var(--room-expanded-width,860px)!important}
  body.build-mode-active .external-arrange-toolbar{
    width:calc(100vw - 12px)!important;bottom:max(6px,env(safe-area-inset-bottom))!important;
    grid-template-columns:minmax(0,1fr) auto!important;grid-template-areas:"selected tools" "inventory inventory" "pan pan" "transfer transfer"!important;
    padding:8px!important;gap:6px!important;border-radius:18px!important;max-height:min(46dvh,390px)!important
  }
  body.build-mode-active .external-arrange-toolbar .arrange-tools{grid-template-columns:repeat(6,minmax(34px,1fr))!important;width:min(290px,58vw)!important}
  body.build-mode-active .external-arrange-toolbar .arrange-tools button{width:100%!important;height:36px!important}
  body.build-mode-active .external-arrange-toolbar .arrange-quick-inventory-head{display:flex!important;align-items:center!important;gap:8px!important}
  body.build-mode-active .external-arrange-toolbar .arrange-quick-inventory-filters{max-width:62%!important}
  body.build-mode-active .external-arrange-toolbar .arrange-quick-item{flex-basis:min(250px,72vw)!important}
  body.build-mode-active.build-inventory-collapsed .external-arrange-toolbar{grid-template-areas:"selected tools" "pan pan" "transfer transfer"!important;max-height:176px!important}
}
@media(max-width:430px){
  .build-zoom-controls{grid-template-columns:30px 42px 30px}.build-mode-actions{gap:3px}
  body.build-mode-active .external-arrange-toolbar .arrange-tools{width:min(256px,61vw)!important;gap:4px!important}
  body.build-mode-active .external-arrange-toolbar .arrange-pan-controls strong{font-size:9.5px!important}
}

/* =========================================================
   TinyPal v9.73 · Fase 23 — Griglia & aggancio intelligente
   ========================================================= */
.build-snap-toggle,.build-grid-toggle{
  height:40px;border-radius:13px;padding:0 10px;display:flex;align-items:center;justify-content:center;gap:6px;
  transition:background .16s ease,box-shadow .16s ease,transform .12s ease
}
.build-snap-toggle span,.build-grid-toggle span{font-size:16px}.build-snap-toggle strong,.build-grid-toggle strong{font-size:10px}
.build-snap-toggle.active,.build-grid-toggle.active{background:rgba(157,199,166,.22)!important;box-shadow:inset 0 0 0 1px rgba(171,215,181,.20)}
.build-snap-toggle:active,.build-grid-toggle:active{transform:scale(.95)}

/* Griglia separata dagli pseudo-elementi della stanza per non interferire con meteo/luci. */
.build-grid-overlay-v973{display:none;position:absolute;inset:0;z-index:0;pointer-events:none;border-radius:inherit;overflow:hidden;
  background-image:
    linear-gradient(to right,rgba(74,92,78,.10) 1px,transparent 1px),
    linear-gradient(to bottom,rgba(74,92,78,.09) 1px,transparent 1px);
  background-size:4% 4%;opacity:.68
}
body.build-mode-active.build-grid-visible .build-grid-overlay-v973{display:block}

.build-snap-overlay-v973{position:absolute;inset:0;z-index:34;pointer-events:none;overflow:hidden;border-radius:inherit}
.build-snap-line{display:none;position:absolute;pointer-events:none;background:rgba(82,140,102,.92);box-shadow:0 0 0 1px rgba(255,255,255,.72),0 0 10px rgba(82,140,102,.30)}
.build-snap-line.vertical{top:0;bottom:0;width:1.5px;transform:translateX(-50%)}
.build-snap-line.horizontal{left:0;right:0;height:1.5px;transform:translateY(-50%)}
.build-snap-overlay-v973.show-x .build-snap-line.vertical,.build-snap-overlay-v973.show-y .build-snap-line.horizontal{display:block}
.build-snap-label{display:none;position:absolute;transform:translate(-50%,-135%);max-width:150px;padding:5px 8px;border-radius:999px;
  background:rgba(31,45,36,.91);color:#fff;font:900 9px/1 system-ui;letter-spacing:.03em;white-space:nowrap;box-shadow:0 5px 14px rgba(29,42,34,.20)}
.build-snap-overlay-v973.show-label .build-snap-label{display:block}
body:not(.build-mode-active) .build-snap-overlay-v973,body:not(.build-mode-active) .build-grid-overlay-v973{display:none!important}

@media(max-width:759px){
  .build-snap-toggle,.build-grid-toggle{width:36px;height:38px;padding:0}.build-snap-toggle strong,.build-grid-toggle strong{display:none}
  .build-snap-toggle span,.build-grid-toggle span{font-size:15px}
  .build-inventory-toggle{width:38px!important}
  .build-mode-actions{gap:3px!important}
  .build-zoom-controls{grid-template-columns:30px 44px 30px!important}
  .build-grid-overlay-v973{opacity:.56}
}
@media(max-width:380px){
  body.build-mode-active .build-mode-topbar{gap:4px!important;padding-left:4px!important;padding-right:4px!important}
  .build-mode-done{width:38px!important}.build-mode-actions{gap:2px!important}
  .build-snap-toggle,.build-grid-toggle{width:32px!important}.build-inventory-toggle{width:34px!important}
  .build-zoom-controls{grid-template-columns:28px 38px 28px!important;gap:1px!important}
  .build-mode-room-nav{grid-template-columns:28px minmax(0,1fr) 28px!important}
}


/* =========================================================
   TinyPal v9.73.1 · HOTFIX — Costruisci mobile largo e leggibile
   ========================================================= */
@media(max-width:759px){
  /* Barra alta su 2 righe: nessun controllo deve contendersi 1 sola riga. */
  body.build-mode-active .build-mode-topbar{
    width:calc(100vw - 10px)!important;
    min-height:92px!important;
    grid-template-columns:42px minmax(0,1fr) 42px!important;
    grid-template-areas:
      "done room inventory"
      "actions actions actions"!important;
    align-items:center!important;
    gap:5px 6px!important;
    padding:6px!important;
    border-radius:17px!important;
  }
  .build-mode-done{grid-area:done!important;width:42px!important;height:38px!important;padding:0!important;justify-content:center!important}
  .build-mode-room-nav{grid-area:room!important;grid-template-columns:36px minmax(0,1fr) 36px!important;gap:5px!important;width:100%!important}
  .build-mode-room-nav>button{height:36px!important;border-radius:11px!important;font-size:22px!important}
  .build-mode-room-nav small{font-size:7.8px!important;line-height:1.05!important}
  .build-mode-room-nav strong{font-size:12.5px!important;line-height:1.15!important}
  .build-inventory-toggle{grid-area:inventory!important;width:42px!important;height:38px!important;padding:0!important;justify-content:center!important}
  .build-mode-actions{
    grid-area:actions!important;
    width:100%!important;
    min-width:0!important;
    display:grid!important;
    grid-template-columns:minmax(154px,1fr) 42px 42px!important;
    align-items:center!important;
    gap:5px!important;
  }
  .build-zoom-controls{
    width:100%!important;min-width:0!important;
    grid-template-columns:42px minmax(64px,1fr) 42px!important;
    gap:4px!important;padding:2px!important;border-radius:12px!important
  }
  .build-zoom-controls button{height:34px!important;min-width:0!important}
  .build-zoom-controls #buildZoomReset strong{font-size:10px!important}
  .build-snap-toggle,.build-grid-toggle{width:42px!important;height:38px!important;padding:0!important;border-radius:11px!important}
  .build-snap-toggle strong,.build-grid-toggle strong,.build-inventory-toggle strong{display:none!important}

  /* Il canvas comincia sotto entrambe le righe della barra. */
  body.build-mode-active .room-scroll-shell{
    top:calc(max(5px,env(safe-area-inset-top)) + 104px)!important;
    padding:7px!important;
  }

  /* Barra bassa: selezione e strumenti non devono più stare schiacciati affiancati. */
  body.build-mode-active .external-arrange-toolbar{
    width:calc(100vw - 10px)!important;
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-areas:
      "selected"
      "tools"
      "inventory"
      "pan"
      "transfer"!important;
    align-items:stretch!important;
    padding:8px 9px!important;
    gap:6px!important;
    max-height:min(48dvh,410px)!important;
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
    scrollbar-width:none!important;
  }
  body.build-mode-active .external-arrange-toolbar::-webkit-scrollbar{display:none!important}
  body.build-mode-active .external-arrange-toolbar .arrange-selected{
    grid-area:selected!important;
    width:100%!important;
    min-width:0!important;
    display:grid!important;
    grid-template-columns:auto minmax(0,1fr)!important;
    align-items:center!important;
    column-gap:8px!important;
    padding:0 2px!important;
  }
  body.build-mode-active .external-arrange-toolbar .arrange-selected small{font-size:8.5px!important;white-space:nowrap!important}
  body.build-mode-active .external-arrange-toolbar .arrange-selected strong{font-size:12.5px!important;min-width:0!important}
  body.build-mode-active .external-arrange-toolbar .arrange-tools{
    grid-area:tools!important;
    width:100%!important;
    max-width:none!important;
    display:grid!important;
    grid-template-columns:repeat(6,minmax(0,1fr))!important;
    gap:5px!important;
  }
  body.build-mode-active .external-arrange-toolbar .arrange-tools button{
    width:100%!important;min-width:0!important;height:40px!important;border-radius:11px!important
  }
  body.build-mode-active .external-arrange-toolbar .arrange-pan-controls{grid-area:pan!important;width:100%!important;margin-top:0!important}
  body.build-mode-active .external-arrange-toolbar .arrange-room-transfer{grid-area:transfer!important;width:100%!important}
  body.build-mode-active .external-arrange-toolbar .arrange-quick-inventory{grid-area:inventory!important;width:100%!important;min-width:0!important}
  body.build-mode-active .external-arrange-toolbar .arrange-quick-inventory-head{
    display:grid!important;grid-template-columns:1fr!important;align-items:stretch!important;gap:7px!important
  }
  body.build-mode-active .external-arrange-toolbar .arrange-quick-inventory-filters{
    width:100%!important;max-width:none!important;display:flex!important;overflow-x:auto!important;padding-bottom:1px!important
  }
  body.build-mode-active .external-arrange-toolbar .arrange-quick-inventory-list{width:100%!important;min-width:0!important}
  body.build-mode-active .external-arrange-toolbar .arrange-quick-item{flex-basis:min(258px,84vw)!important}

  body.build-mode-active.build-inventory-collapsed .external-arrange-toolbar{
    grid-template-areas:"selected" "tools" "pan" "transfer"!important;
    max-height:206px!important;
  }
}

@media(max-width:390px){
  body.build-mode-active .build-mode-topbar{
    grid-template-columns:38px minmax(0,1fr) 38px!important;
    gap:4px!important;padding:5px!important
  }
  .build-mode-done,.build-inventory-toggle{width:38px!important;height:36px!important}
  .build-mode-room-nav{grid-template-columns:31px minmax(0,1fr) 31px!important;gap:3px!important}
  .build-mode-room-nav>button{height:34px!important}
  .build-mode-actions{grid-template-columns:minmax(140px,1fr) 38px 38px!important;gap:4px!important}
  .build-zoom-controls{grid-template-columns:38px minmax(58px,1fr) 38px!important;gap:3px!important}
  .build-snap-toggle,.build-grid-toggle{width:38px!important;height:36px!important}
  body.build-mode-active .external-arrange-toolbar{width:calc(100vw - 8px)!important;padding:7px!important}
  body.build-mode-active .external-arrange-toolbar .arrange-tools{gap:4px!important}
  body.build-mode-active .external-arrange-toolbar .arrange-tools button{height:38px!important;font-size:16px!important}
  body.build-mode-active .external-arrange-toolbar .arrange-pan-controls strong{font-size:9.5px!important}
}

@media(max-width:340px){
  .build-mode-room-nav small{display:none!important}
  .build-mode-room-nav strong{font-size:11.5px!important}
  .build-mode-actions{grid-template-columns:minmax(128px,1fr) 36px 36px!important}
  .build-zoom-controls{grid-template-columns:35px minmax(52px,1fr) 35px!important}
  .build-snap-toggle,.build-grid-toggle{width:36px!important}
  body.build-mode-active .external-arrange-toolbar .arrange-tools button{height:36px!important}
}


/* =========================================================
   TinyPal v9.74 · Esperienze separate PC / Mobile
   Un solo gioco, stesso salvataggio. La UI si adatta al device.
   ========================================================= */
.device-experience-chip{
  margin-top:10px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:7px 10px;
  border:1px solid var(--line);
  border-radius:15px;
  background:rgba(255,255,255,.72);
  color:inherit;
  text-align:left;
  box-shadow:0 6px 18px rgba(65,49,36,.06);
}
.device-experience-chip>span{
  width:31px;height:31px;border-radius:10px;background:var(--surface-2);
  display:grid;place-items:center;font-size:17px;
}
.device-experience-chip small,.device-experience-chip strong{display:block}
.device-experience-chip small{font-size:7px;letter-spacing:.1em;color:var(--muted);font-weight:900}
.device-experience-chip strong{font-size:10px;margin-top:1px}

.desktop-experience-panel{
  display:none;
  margin:12px 0 0;
  padding:18px;
  border-radius:25px;
  background:linear-gradient(145deg,#fffefb,#f3f7f4);
}
.desktop-experience-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:14px
}
.desktop-experience-head h2{font-size:22px;margin:4px 0 4px}
.desktop-experience-head p{font-size:10px;color:var(--muted);margin:0}
.desktop-experience-state{
  padding:7px 10px;border:1px solid var(--line);border-radius:999px;
  font-size:8px;font-weight:900;color:#55705f;background:#edf5f0;white-space:nowrap
}
.desktop-need-grid{
  display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px
}
.desktop-need-grid>div{
  padding:10px;border:1px solid var(--line);border-radius:15px;background:rgba(255,255,255,.78);min-width:0
}
.desktop-need-grid small{display:block;font-size:7px;letter-spacing:.07em;font-weight:900;color:var(--muted)}
.desktop-need-grid strong{display:block;font-size:13px;margin:3px 0 7px}
.desktop-need-grid i{
  display:block;height:6px;border-radius:99px;background:#e9e2d8;overflow:hidden
}
.desktop-need-grid i b{
  display:block;height:100%;width:0;border-radius:inherit;
  background:linear-gradient(90deg,#d5ad73,#79aa84);transition:width .25s ease
}
.desktop-need-grid>div.low i b{background:linear-gradient(90deg,#c56f60,#e0aa73)}
.desktop-experience-summary{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:9px
}
.desktop-experience-summary>div{
  padding:9px 11px;border-radius:14px;background:var(--surface-2);min-width:0
}
.desktop-experience-summary small,.desktop-experience-summary strong{display:block}
.desktop-experience-summary small{font-size:7px;letter-spacing:.09em;font-weight:900;color:var(--muted)}
.desktop-experience-summary strong{font-size:11px;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.desktop-experience-actions{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px
}
.desktop-experience-actions button{
  min-width:0;border:1px solid var(--line);border-radius:15px;padding:10px;
  display:grid;grid-template-columns:34px 1fr;gap:9px;align-items:center;text-align:left;
  background:#fff;color:inherit
}
.desktop-experience-actions button:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(65,49,36,.07)}
.desktop-experience-actions button>span{
  width:34px;height:34px;border-radius:11px;background:var(--surface-2);display:grid;place-items:center;font-size:17px
}
.desktop-experience-actions strong,.desktop-experience-actions small{display:block}
.desktop-experience-actions strong{font-size:10px}
.desktop-experience-actions small{font-size:8px;line-height:1.35;color:var(--muted);margin-top:2px}
.desktop-experience-hint{
  display:flex;gap:9px;align-items:center;margin-top:10px;padding:9px 11px;
  border-radius:13px;background:#f6f1e9
}
.desktop-experience-hint>span{font-size:18px}
.desktop-experience-hint p{font-size:8.5px;line-height:1.45;color:var(--muted);margin:0}
.desktop-experience-hint kbd{
  display:inline-block;padding:2px 5px;border:1px solid #d8d0c5;border-bottom-width:2px;border-radius:5px;
  background:#fff;font:inherit;font-weight:900;color:#5e554c
}

.mobile-category-more{display:none}

/* DESKTOP: più densità e controlli avanzati */
html[data-device-experience="desktop"] .desktop-experience-panel{display:block}
html[data-device-experience="desktop"] .device-experience-chip{cursor:pointer}
html[data-device-experience="desktop"] .home-category-head>small::after{
  content:" · Sul PC hai anche il Centro controllo con dati live."
}
html[data-device-experience="desktop"] .bottom-sheet{
  width:min(760px,calc(100% - 56px))!important;
}
html[data-device-experience="desktop"] .sheet-grid:not(.settings-sheet-grid){
  grid-template-columns:repeat(3,minmax(0,1fr));
}
html[data-device-experience="desktop"] .settings-row-list{
  display:grid;grid-template-columns:1fr 1fr;gap:7px;
}
html[data-device-experience="desktop"] .settings-section-block{padding-bottom:8px}

/* MOBILE: prima le azioni essenziali, il resto su richiesta */
html[data-device-experience="mobile"] .desktop-experience-panel{display:none!important}
html[data-device-experience="mobile"] .device-experience-chip{
  margin-top:7px;padding:5px 8px;border-radius:12px;box-shadow:none;background:var(--surface-2)
}
html[data-device-experience="mobile"] .device-experience-chip>span{width:26px;height:26px;font-size:14px}
html[data-device-experience="mobile"] .device-experience-chip small{display:none}
html[data-device-experience="mobile"] .device-experience-chip strong{font-size:9px}
html[data-device-experience="mobile"] #statsButton{display:none!important}
html[data-device-experience="mobile"] .home-top-actions{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
}
html[data-device-experience="mobile"] .device-secondary-category{display:none!important}
html[data-device-experience="mobile"].device-mobile-more-open .device-secondary-category{display:grid!important}
html[data-device-experience="mobile"] .mobile-category-more{
  display:grid;grid-template-columns:32px minmax(0,1fr);gap:9px;align-items:center;
  width:100%;margin:2px 0 0;padding:11px 13px;border:1px dashed var(--line);border-radius:17px;
  background:rgba(255,255,255,.48);color:inherit;text-align:left
}
html[data-device-experience="mobile"] .mobile-category-more>span{
  grid-row:1/3;width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:var(--surface-2);font-size:16px
}
html[data-device-experience="mobile"] .mobile-category-more strong{font-size:10px}
html[data-device-experience="mobile"] .mobile-category-more small{font-size:8px;color:var(--muted)}
html[data-device-experience="mobile"].device-mobile-more-open .mobile-category-more>span{transform:rotate(45deg)}
html[data-device-experience="mobile"] .device-dock-room{display:none!important}
html[data-device-experience="mobile"] .dock{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
}
html[data-device-experience="mobile"] .home-category-head{
  align-items:flex-start;flex-direction:column;gap:4px
}
html[data-device-experience="mobile"] .home-category-head>small{
  max-width:none;text-align:left;font-size:.72rem
}
html[data-device-experience="mobile"] .home-category-card{
  min-height:72px;padding:12px 12px;border-radius:19px
}
html[data-device-experience="mobile"] .home-category-card small{
  font-size:.72rem;white-space:normal
}
html[data-device-experience="mobile"] .settings-hub-tools .settings-filter-row{
  display:none
}
html[data-device-experience="mobile"] .settings-search{margin-bottom:2px}
html[data-device-experience="mobile"] .settings-section-head small{
  display:none
}
html[data-device-experience="mobile"] .settings-row-copy small{
  line-height:1.3
}

/* Selector esperienza dentro Impostazioni */
.device-experience-settings{
  margin:10px 0 3px;padding:13px;border:1px solid var(--line);border-radius:17px;background:var(--surface-2)
}
.device-experience-settings-head{display:flex;gap:10px;align-items:center;margin-bottom:9px}
.device-experience-settings-head>span{font-size:21px}
.device-experience-settings-head strong,.device-experience-settings-head small{display:block}
.device-experience-settings-head strong{font-size:11px}
.device-experience-settings-head small{font-size:8px;line-height:1.35;color:var(--muted);margin-top:2px}
.device-experience-settings-options{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.device-experience-settings-options button{
  border:1px solid var(--line);border-radius:11px;background:#fff;padding:8px 6px;font:inherit;font-size:8px;font-weight:900;color:var(--muted)
}
.device-experience-settings-options button.active{
  background:#e9f2ed;color:#4d7059;border-color:#bfd2c4
}

@media(max-width:520px){
  html[data-device-experience="mobile"] .home-category-grid{grid-template-columns:1fr!important}
  html[data-device-experience="mobile"].device-mobile-more-open .home-category-grid{grid-template-columns:1fr!important}
  .device-experience-settings-options{grid-template-columns:1fr}
}



/* =========================================================
   TinyPal v9.75 · Esperienze PC / Mobile · Fase 2
   Città, Inventario, Famiglia e Costruisci
   ========================================================= */

/* ---------- CITTÀ ---------- */
.desktop-city-manager,.mobile-city-navigator{display:none}
html[data-device-experience="desktop"] .desktop-city-manager{
  display:block;margin:0 0 12px;padding:13px;border:1px solid var(--line);
  border-radius:18px;background:linear-gradient(135deg,#fffdf9,#f1f6f2)
}
.desktop-city-manager-head{display:flex;justify-content:space-between;gap:15px;align-items:center}
.desktop-city-manager-head>div:first-child small,.desktop-city-manager-head>div:first-child strong{display:block}
.desktop-city-manager-head>div:first-child small{font-size:7px;letter-spacing:.11em;font-weight:900;color:var(--muted)}
.desktop-city-manager-head>div:first-child strong{font-size:14px;margin-top:2px}
.desktop-city-manager-stats{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.desktop-city-manager-stats>span{
  min-width:90px;padding:7px 9px;border-radius:11px;background:#fff;border:1px solid var(--line)
}
.desktop-city-manager-stats small,.desktop-city-manager-stats strong{display:block}
.desktop-city-manager-stats small{font-size:6.5px;font-weight:900;letter-spacing:.08em;color:var(--muted)}
.desktop-city-manager-stats strong{font-size:9px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.desktop-city-lots{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-top:10px}
.desktop-city-lot{
  position:relative;min-width:0;border:1px solid var(--line);border-radius:12px;background:#fff;
  padding:8px;text-align:left;color:inherit;display:grid;grid-template-columns:27px minmax(0,1fr);gap:7px;align-items:center
}
.desktop-city-lot:hover{transform:translateY(-1px);box-shadow:0 7px 16px rgba(65,49,36,.06)}
.desktop-city-lot.selected{border-color:#9fbda8;background:#edf5f0}
.desktop-city-lot.current:after{
  content:"QUI";position:absolute;right:5px;top:5px;font-size:5.5px;font-weight:950;color:#50735b
}
.desktop-city-lot>span{width:27px;height:27px;border-radius:9px;background:var(--surface-2);display:grid;place-items:center;font-size:14px}
.desktop-city-lot strong,.desktop-city-lot small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.desktop-city-lot strong{font-size:8.5px}.desktop-city-lot small{font-size:6.5px;color:var(--muted);margin-top:1px}

html[data-device-experience="mobile"] .mobile-city-navigator{
  display:block;margin:0 0 10px;padding:12px;border:1px solid var(--line);border-radius:17px;background:var(--surface-2)
}
.mobile-city-navigator-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.mobile-city-navigator-head small,.mobile-city-navigator-head strong{display:block}
.mobile-city-navigator-head small{font-size:7px;font-weight:900;letter-spacing:.1em;color:var(--muted)}
.mobile-city-navigator-head strong{font-size:12px;margin-top:2px}
.mobile-city-navigator-head button{border:1px solid var(--line);border-radius:10px;background:#fff;padding:7px 9px;font:inherit;font-size:8px;font-weight:900;color:inherit}
.mobile-city-quick-places{
  display:flex;gap:7px;overflow-x:auto;scrollbar-width:none;padding:9px 1px 1px;overscroll-behavior-x:contain
}
.mobile-city-quick-places::-webkit-scrollbar{display:none}
.mobile-city-place{
  flex:0 0 auto;min-width:104px;border:1px solid var(--line);border-radius:13px;background:#fff;
  padding:9px;text-align:left;color:inherit
}
.mobile-city-place.selected{background:#eaf3ed;border-color:#a8c2ae}
.mobile-city-place>span{font-size:18px}.mobile-city-place strong,.mobile-city-place small{display:block}
.mobile-city-place strong{font-size:9px;margin-top:5px}.mobile-city-place small{font-size:7px;color:var(--muted);margin-top:2px}
html[data-device-experience="mobile"] #cityMapWorld{display:none}
html[data-device-experience="mobile"].device-mobile-city-map-open #cityMapWorld{display:block}
html[data-device-experience="mobile"] .city-map-legend{display:none}
html[data-device-experience="mobile"] .city-place-panel{
  grid-template-columns:42px minmax(0,1fr);gap:10px;padding:12px
}
html[data-device-experience="mobile"] .city-place-panel .city-go-button{
  grid-column:1/-1;width:100%;min-height:44px
}
html[data-device-experience="mobile"] .city-map-overview{padding:11px 12px}
html[data-device-experience="mobile"] .city-map-overview-side{gap:5px}

/* ---------- INVENTARIO ---------- */
.inventory-experience-controls{
  margin:0 0 10px;padding:11px;border:1px solid var(--line);border-radius:17px;background:var(--surface-2)
}
.inventory-experience-summary{display:flex;gap:9px;align-items:center}
.inventory-experience-summary>span{width:36px;height:36px;border-radius:11px;background:#fff;display:grid;place-items:center;font-size:18px}
.inventory-experience-summary small,.inventory-experience-summary strong,.inventory-experience-summary em{display:block}
.inventory-experience-summary small{font-size:6.5px;letter-spacing:.1em;font-weight:900;color:var(--muted)}
.inventory-experience-summary strong{font-size:11px;margin-top:1px}.inventory-experience-summary em{font-style:normal;font-size:7.5px;color:var(--muted);margin-top:1px}
.inventory-desktop-search{
  display:flex;align-items:center;gap:7px;margin-top:9px;padding:8px 10px;border:1px solid var(--line);border-radius:11px;background:#fff
}
.inventory-desktop-search span{font-size:16px;color:var(--muted)}
.inventory-desktop-search input{border:0;outline:0;background:transparent;width:100%;font:inherit;font-size:10px;color:inherit}
.inventory-experience-filters{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}
.inventory-experience-filters button{
  border:1px solid var(--line);border-radius:999px;background:#fff;padding:6px 9px;font:inherit;font-size:7.5px;font-weight:900;color:var(--muted)
}
.inventory-experience-filters button.active{background:#e9f2ed;color:#4f715a;border-color:#bdd0c1}
.inventory-row.device-filter-hidden,.inventory-section-title.device-filter-hidden{display:none!important}
html[data-device-experience="desktop"] #inventorySheet{width:min(840px,calc(100% - 56px))!important}
html[data-device-experience="desktop"] .inventory-list{
  display:grid;grid-template-columns:1fr 1fr;gap:7px;align-items:start
}
html[data-device-experience="desktop"] .inventory-section-title{grid-column:1/-1}
html[data-device-experience="desktop"] .inventory-row{height:100%;min-width:0}
html[data-device-experience="mobile"] .inventory-desktop-search{display:none}
html[data-device-experience="mobile"] .inventory-experience-filters{
  flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:1px
}
html[data-device-experience="mobile"] .inventory-experience-filters::-webkit-scrollbar{display:none}
html[data-device-experience="mobile"] .inventory-experience-filters button{flex:0 0 auto}
html[data-device-experience="mobile"] .inventory-room-note small{line-height:1.35}

/* ---------- FAMIGLIA ---------- */
.desktop-household-matrix,.mobile-household-tabs{display:none}
html[data-device-experience="desktop"] .household-sheet{width:min(920px,calc(100% - 56px))!important}
html[data-device-experience="desktop"] .desktop-household-matrix{
  display:block;margin-bottom:10px;padding:12px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(135deg,#fff,#f5f2ec)
}
.desktop-household-matrix-head{display:flex;justify-content:space-between;gap:12px;align-items:center}
.desktop-household-matrix-head small,.desktop-household-matrix-head strong{display:block}
.desktop-household-matrix-head small{font-size:7px;font-weight:900;letter-spacing:.1em;color:var(--muted)}
.desktop-household-matrix-head strong{font-size:13px;margin-top:2px}
.desktop-household-matrix-head>span{font-size:7.5px;font-weight:900;padding:6px 8px;border-radius:999px;background:#edf5f0;color:#55725e}
.desktop-household-matrix-list{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:9px}
.desktop-family-row{border:1px solid var(--line);border-radius:13px;background:#fff;padding:9px;min-width:0}
.desktop-family-row-head{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:7px;align-items:center}
.desktop-family-row-head>span{width:30px;height:30px;border-radius:10px;background:var(--surface-2);display:grid;place-items:center;font-size:16px}
.desktop-family-row-head strong,.desktop-family-row-head small{display:block}
.desktop-family-row-head strong{font-size:9.5px}.desktop-family-row-head small{font-size:6.5px;color:var(--muted);margin-top:1px}
.desktop-family-row-head button{border:1px solid var(--line);border-radius:9px;background:#fff;padding:5px 7px;font:inherit;font-size:6.5px;font-weight:900;color:var(--muted)}
.desktop-family-row-head button.active{background:#eaf3ed;color:#52705c}
.desktop-family-vitals{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;margin-top:7px}
.desktop-family-vitals span{padding:5px 3px;border-radius:8px;background:var(--surface-2);font-size:6.5px;font-weight:850;text-align:center;white-space:nowrap}
.desktop-family-vitals span.low{background:#fff0eb;color:#9a5a4d}

html[data-device-experience="mobile"] .mobile-household-tabs{
  display:grid;grid-template-columns:repeat(3,1fr);gap:6px;position:sticky;top:0;z-index:4;
  margin:0 0 10px;padding:6px;border:1px solid var(--line);border-radius:15px;background:rgba(250,247,242,.96);backdrop-filter:blur(10px)
}
.mobile-household-tabs button{
  border:0;border-radius:10px;background:transparent;padding:8px 4px;color:var(--muted);font:inherit
}
.mobile-household-tabs button span,.mobile-household-tabs button strong{display:block}
.mobile-household-tabs button span{font-size:16px}.mobile-household-tabs button strong{font-size:7.5px;margin-top:2px}
.mobile-household-tabs button.active{background:#fff;color:#4e6d58;box-shadow:0 4px 12px rgba(65,49,36,.06)}
html[data-device-experience="mobile"] #householdSheet[data-mobile-tab="members"] [data-mobile-family-section]:not([data-mobile-family-section="members"]){display:none!important}
html[data-device-experience="mobile"] #householdSheet[data-mobile-tab="routine"] [data-mobile-family-section]:not([data-mobile-family-section="routine"]){display:none!important}
html[data-device-experience="mobile"] #householdSheet[data-mobile-tab="advanced"] [data-mobile-family-section]:not([data-mobile-family-section="advanced"]){display:none!important}
html[data-device-experience="mobile"] .household-sheet-head p{font-size:10px;line-height:1.35}
html[data-device-experience="mobile"] .household-hero{padding:12px}
html[data-device-experience="mobile"] .household-foundation-card{padding:13px}
html[data-device-experience="mobile"] .household-roadmap>div:not(.next){display:none}
html[data-device-experience="mobile"] .household-footnote{font-size:8px}

/* ---------- COSTRUISCI ---------- */
.build-mobile-advanced-toggle{display:none}
.desktop-build-inspector{display:none}
html[data-device-experience="desktop"] body.build-mode-active .desktop-build-inspector{
  display:block!important;position:fixed;right:14px;top:112px;width:250px;z-index:61;
  padding:12px;border:1px solid rgba(80,60,40,.12);border-radius:18px;background:rgba(255,253,249,.96);
  box-shadow:0 16px 44px rgba(70,50,30,.15);backdrop-filter:blur(12px)
}
.desktop-build-inspector-head{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.desktop-build-inspector-head small,.desktop-build-inspector-head strong{display:block}
.desktop-build-inspector-head small{font-size:6.5px;letter-spacing:.1em;font-weight:900;color:var(--muted)}
.desktop-build-inspector-head strong{font-size:11px;margin-top:2px}
.desktop-build-inspector-head>span{font-size:7px;font-weight:900;padding:5px 7px;border-radius:999px;background:var(--surface-2);white-space:nowrap}
.desktop-build-inspector-values{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:9px}
.desktop-build-inspector-values>div{padding:7px;border-radius:10px;background:var(--surface-2)}
.desktop-build-inspector-values small,.desktop-build-inspector-values strong{display:block}
.desktop-build-inspector-values small{font-size:5.5px;letter-spacing:.08em;color:var(--muted);font-weight:900}
.desktop-build-inspector-values strong{font-size:9px;margin-top:2px}
.desktop-build-room-buttons{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:8px}
.desktop-build-room-buttons button{
  border:1px solid var(--line);border-radius:9px;background:#fff;padding:7px 5px;font:inherit;font-size:6.5px;font-weight:900;color:var(--muted)
}
.desktop-build-room-buttons button.active{background:#eaf3ed;color:#4f705a;border-color:#b9cebF}
.desktop-build-inspector-help{display:flex;gap:7px;align-items:flex-start;margin-top:8px;padding:7px;border-radius:10px;background:#f7f1e9}
.desktop-build-inspector-help>span{font-size:16px}.desktop-build-inspector-help p{font-size:6.5px;line-height:1.45;color:var(--muted);margin:0}
.desktop-build-inspector-help kbd{display:inline-block;padding:1px 4px;border:1px solid #d8d0c5;border-bottom-width:2px;border-radius:4px;background:#fff;font:inherit;font-weight:900;color:#5e554c}

html[data-device-experience="mobile"] body.build-mode-active .build-mobile-advanced-toggle{
  display:flex;align-items:center;justify-content:center;min-height:38px;border-radius:11px
}
html[data-device-experience="mobile"] body.build-mode-active:not(.build-mobile-advanced-open) .build-zoom-controls,
html[data-device-experience="mobile"] body.build-mode-active:not(.build-mobile-advanced-open) #buildSnapToggle,
html[data-device-experience="mobile"] body.build-mode-active:not(.build-mobile-advanced-open) #buildGridToggle{
  display:none!important
}
html[data-device-experience="mobile"] body.build-mode-active .build-mode-actions{
  grid-template-columns:1fr 1fr!important
}
html[data-device-experience="mobile"] body.build-mode-active.build-mobile-advanced-open .build-mode-actions{
  grid-template-columns:1fr!important
}
html[data-device-experience="mobile"] body.build-mode-active.build-mobile-advanced-open .build-zoom-controls{
  width:100%;display:grid!important;grid-template-columns:44px 1fr 44px!important
}
html[data-device-experience="mobile"] body.build-mode-active.build-mobile-advanced-open #buildSnapToggle,
html[data-device-experience="mobile"] body.build-mode-active.build-mobile-advanced-open #buildGridToggle{
  display:flex!important;width:100%;justify-content:center
}
html[data-device-experience="mobile"] body.build-mode-active .arrange-tools{
  grid-template-columns:repeat(3,minmax(0,1fr))!important
}
html[data-device-experience="mobile"] body.build-mode-active .arrange-tools #sendBackward,
html[data-device-experience="mobile"] body.build-mode-active .arrange-tools #bringForward{
  display:none
}
html[data-device-experience="mobile"] body.build-mode-active.build-mobile-advanced-open .arrange-tools #sendBackward,
html[data-device-experience="mobile"] body.build-mode-active.build-mobile-advanced-open .arrange-tools #bringForward{
  display:block
}
@media(max-width:430px){
  html[data-device-experience="mobile"] body.build-mode-active .build-mode-actions{grid-template-columns:1fr!important}
  .desktop-city-lots{grid-template-columns:repeat(2,1fr)}
}



/* TinyPal v9.75.1 — ritorno al sito ufficiale */
.game-site-return{
  display:inline-flex;
  align-items:center;
  gap:6px;
  width:max-content;
  margin:0 0 8px;
  padding:7px 10px;
  border:1px solid var(--line);
  border-radius:13px;
  background:rgba(255,255,255,.78);
  color:var(--muted);
  text-decoration:none;
  font-size:8px;
  font-weight:900;
  letter-spacing:.01em;
  box-shadow:0 5px 14px rgba(65,49,36,.05);
}
.game-site-return:hover{
  color:var(--text);
  background:#fff;
  transform:translateY(-1px);
}
.game-site-return span{font-size:13px}
.game-site-return strong{font:inherit}
html[data-device-experience="mobile"] .game-site-return{
  padding:5px 8px;
  margin-bottom:6px;
  border-radius:11px;
  font-size:7.5px;
  box-shadow:none;
}
html[data-device-experience="mobile"] .game-site-return span{font-size:12px}
html[data-device-experience="desktop"] .game-site-return{
  padding:7px 11px;
  color:#50685a;
  background:#edf5f0;
  border-color:#cbdccf;
}



.game-site-settings-row{
  text-decoration:none;
  color:inherit;
}
.game-site-settings-row b{
  font-size:14px;
  color:var(--muted);
}



/* =========================================================
   TinyPal v9.76 · PC/Mobile Fase 3
   Home PC senza ripetizioni + Cura/Cibo/Salute adattivi
   ========================================================= */

/* ---------- HOME PC: una sola fonte per ogni informazione ---------- */
html[data-device-experience="desktop"] #coinsButton,
html[data-device-experience="desktop"] #statsButton{
  display:none!important;
}
html[data-device-experience="desktop"] .home-top-actions{
  display:flex!important;
  justify-content:flex-end;
  align-items:flex-start;
}
html[data-device-experience="desktop"] #notificationButton{
  width:auto;
  min-width:132px;
}
html[data-device-experience="desktop"] #petInfoStrip .status-chip{
  display:none!important;
}
html[data-device-experience="desktop"] #homeCategoryHub{
  display:none!important;
}
html[data-device-experience="desktop"] .desktop-experience-actions{
  grid-template-columns:repeat(4,minmax(0,1fr));
}
html[data-device-experience="desktop"] .desktop-experience-summary{
  grid-template-columns:1.35fr 1.1fr .8fr .8fr;
}
html[data-device-experience="desktop"] .desktop-experience-panel{
  margin-bottom:3px;
}

/* ---------- CENTRALE CURA PC ---------- */
.desktop-care-console{display:none}
html[data-device-experience="desktop"] .desktop-care-console{
  display:block;
  padding:15px;
  border:1px solid var(--line);
  border-radius:20px;
  background:linear-gradient(145deg,#fffdf9,#f0f6f2);
}
.desktop-care-console-head{
  display:flex;justify-content:space-between;gap:18px;align-items:flex-start
}
.desktop-care-console-head small,.desktop-care-console-head strong,.desktop-care-console-head p{display:block}
.desktop-care-console-head small{font-size:7px;letter-spacing:.11em;font-weight:900;color:var(--muted)}
.desktop-care-console-head strong{font-size:16px;margin-top:3px}
.desktop-care-console-head p{font-size:8.5px;line-height:1.45;color:var(--muted);margin:3px 0 0}
.desktop-care-console-head>span{
  padding:7px 9px;border-radius:999px;border:1px solid #c8dbce;background:#eaf4ed;
  color:#53715d;font-size:7px;font-weight:950;letter-spacing:.05em;white-space:nowrap
}
.desktop-care-console-head>span.warn{background:#fff3df;border-color:#ead1a8;color:#8b6940}
.desktop-care-console-head>span.danger{background:#ffebe6;border-color:#e9c0b6;color:#9a5648}
.desktop-care-console-grid{
  display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;margin-top:11px
}
.desktop-care-console-grid>div{
  min-width:0;padding:9px;border:1px solid var(--line);border-radius:13px;background:#fff
}
.desktop-care-console-grid small,.desktop-care-console-grid strong{display:block}
.desktop-care-console-grid small{font-size:6.5px;font-weight:900;letter-spacing:.07em;color:var(--muted)}
.desktop-care-console-grid strong{font-size:11px;margin:3px 0 6px}
.desktop-care-console-grid i{height:5px;border-radius:99px;background:#ebe4dc;display:block;overflow:hidden}
.desktop-care-console-grid i b{
  display:block;height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,#d6ad72,#78aa84)
}
.desktop-care-console-grid>div.low i b{background:linear-gradient(90deg,#c96e61,#e4ad73)}
.desktop-care-console-bottom{
  display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-top:8px
}
.desktop-care-console-bottom>div{min-width:0;padding:8px 9px;border-radius:11px;background:var(--surface-2)}
.desktop-care-console-bottom small,.desktop-care-console-bottom strong{display:block}
.desktop-care-console-bottom small{font-size:6px;letter-spacing:.08em;font-weight:900;color:var(--muted)}
.desktop-care-console-bottom strong{font-size:8px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Su PC le tre vecchie scorciatoie iniziali sono ridondanti: la centrale + pannelli sotto bastano */
html[data-device-experience="desktop"] #homeCareSheet .home-sheet-shortcuts{
  display:none!important;
}
html[data-device-experience="desktop"] #homeCareSheet{
  width:min(930px,calc(100% - 56px))!important;
}
html[data-device-experience="desktop"] #actionSheet[data-panel="food"],
html[data-device-experience="desktop"] #actionSheet[data-panel="care"],
html[data-device-experience="desktop"] #healthSheet{
  width:min(900px,calc(100% - 56px))!important;
}

/* ---------- ASSISTENTE CURA MOBILE ---------- */
.mobile-care-guide{display:none}
html[data-device-experience="mobile"] .mobile-care-guide{
  display:block;
  padding:13px;
  border:1px solid var(--line);
  border-radius:18px;
  background:linear-gradient(145deg,#f0f7f2,#fffdf9);
}
.mobile-care-guide-head{display:grid;grid-template-columns:42px 1fr;gap:10px;align-items:center}
.mobile-care-guide-head>span{
  width:42px;height:42px;border-radius:14px;background:#fff;display:grid;place-items:center;font-size:22px
}
.mobile-care-guide-head small,.mobile-care-guide-head strong,.mobile-care-guide-head p{display:block}
.mobile-care-guide-head small{font-size:6.5px;letter-spacing:.1em;font-weight:900;color:var(--muted)}
.mobile-care-guide-head strong{font-size:12px;margin-top:2px}
.mobile-care-guide-head p{font-size:8px;line-height:1.4;color:var(--muted);margin:2px 0 0}
.mobile-care-guide-action{
  width:100%;display:grid;grid-template-columns:34px minmax(0,1fr) 18px;gap:9px;align-items:center;
  margin-top:10px;padding:10px;border:1px solid #bcd1c2;border-radius:14px;background:#fff;color:inherit;text-align:left
}
.mobile-care-guide-action>span{
  width:34px;height:34px;border-radius:11px;background:#e9f3ed;display:grid;place-items:center;font-size:17px
}
.mobile-care-guide-action strong,.mobile-care-guide-action small{display:block}
.mobile-care-guide-action strong{font-size:10px}.mobile-care-guide-action small{font-size:7.5px;color:var(--muted);margin-top:2px}
.mobile-care-guide-action>b{font-size:18px;color:var(--muted)}
.mobile-care-guide-secondary{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:7px}
.mobile-care-guide-secondary button{
  min-width:0;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.72);padding:8px 4px;color:inherit
}
.mobile-care-guide-secondary span,.mobile-care-guide-secondary strong,.mobile-care-guide-secondary small{display:block}
.mobile-care-guide-secondary span{font-size:16px}.mobile-care-guide-secondary strong{font-size:8px;margin-top:3px}
.mobile-care-guide-secondary small{font-size:6.5px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Evita ripetere gli stessi metri subito sotto l'assistente su mobile */
html[data-device-experience="mobile"] #homeCareSheet #needsCard,
html[data-device-experience="mobile"] #homeCareSheet #healthCard{
  display:none!important;
}
html[data-device-experience="mobile"] #homeCareSheet .home-sheet-shortcuts{
  margin-top:8px;
}

/* ---------- CIBO/CURA: prima la cosa utile, poi il resto ---------- */
.mobile-action-focus{display:none}
html[data-device-experience="mobile"] #actionSheet[data-panel="food"] .mobile-action-focus,
html[data-device-experience="mobile"] #actionSheet[data-panel="care"] .mobile-action-focus{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  margin:0 0 9px;
  padding:11px 12px;
  border:1px solid var(--line);
  border-radius:15px;
  background:var(--surface-2);
}
.mobile-action-focus small,.mobile-action-focus strong,.mobile-action-focus p{display:block}
.mobile-action-focus small{font-size:6.5px;letter-spacing:.1em;font-weight:900;color:var(--muted)}
.mobile-action-focus strong{font-size:11px;margin-top:2px}
.mobile-action-focus p{font-size:7.5px;color:var(--muted);line-height:1.35;margin:2px 0 0}
.mobile-action-focus button{
  flex:none;border:1px solid var(--line);border-radius:10px;background:#fff;padding:7px 8px;
  font:inherit;font-size:7px;font-weight:900;color:var(--muted)
}
html[data-device-experience="mobile"] #actionSheet[data-panel="food"] #sheetGrid.mobile-focus-collapsed .food-overview-card,
html[data-device-experience="mobile"] #actionSheet[data-panel="care"] #sheetGrid.mobile-focus-collapsed .care-overview-card{
  display:none!important;
}
html[data-device-experience="mobile"] #actionSheet[data-panel="food"] #sheetGrid.mobile-focus-collapsed .food-group-title,
html[data-device-experience="mobile"] #actionSheet[data-panel="care"] #sheetGrid.mobile-focus-collapsed .care-group-title{
  display:none!important;
}
html[data-device-experience="mobile"] #actionSheet[data-panel="food"] #sheetGrid.mobile-focus-collapsed .action-card:not(.food-action-primary):not(.food-action-bowl){
  display:none!important;
}
html[data-device-experience="mobile"] #actionSheet[data-panel="care"] #sheetGrid.mobile-focus-collapsed .action-card:not(.care-action-primary){
  display:none!important;
}
html[data-device-experience="mobile"] #actionSheet[data-panel="food"] #sheetGrid.mobile-focus-collapsed,
html[data-device-experience="mobile"] #actionSheet[data-panel="care"] #sheetGrid.mobile-focus-collapsed{
  grid-template-columns:1fr!important;
}
html[data-device-experience="mobile"] #actionSheet[data-panel="food"] .food-action-primary,
html[data-device-experience="mobile"] #actionSheet[data-panel="care"] .care-action-primary{
  min-height:86px;
}

/* ---------- SALUTE MOBILE: essenziale prima, cartella completa su richiesta ---------- */
.mobile-health-guide{display:none}
html[data-device-experience="mobile"] .mobile-health-guide{
  display:flex;justify-content:space-between;gap:10px;align-items:center;
  margin:0 0 10px;padding:11px;border:1px solid var(--line);border-radius:15px;background:var(--surface-2)
}
.mobile-health-guide>div{display:grid;grid-template-columns:35px 1fr;gap:8px;align-items:center}
.mobile-health-guide>div>span{width:35px;height:35px;border-radius:11px;background:#fff;display:grid;place-items:center;font-size:18px}
.mobile-health-guide small,.mobile-health-guide strong,.mobile-health-guide p{display:block}
.mobile-health-guide small{font-size:6px;letter-spacing:.09em;font-weight:900;color:var(--muted)}
.mobile-health-guide strong{font-size:9.5px;margin-top:1px}.mobile-health-guide p{font-size:7px;color:var(--muted);margin:2px 0 0}
.mobile-health-guide button{border:1px solid var(--line);border-radius:9px;background:#fff;padding:7px;font:inherit;font-size:6.5px;font-weight:900;color:var(--muted)}
html[data-device-experience="mobile"] #healthSheet:not(.mobile-health-expanded) .health-section,
html[data-device-experience="mobile"] #healthSheet:not(.mobile-health-expanded) .health-history-wrap{
  display:none!important;
}
html[data-device-experience="mobile"] #healthSheet:not(.mobile-health-expanded) .health-sheet-progress.hidden{
  display:none!important;
}
html[data-device-experience="mobile"] #healthSheet .health-actions{
  grid-template-columns:1fr!important;
}

/* Desktop salute: cartella clinica più ampia e leggibile */
html[data-device-experience="desktop"] #healthSheet .health-section{
  padding:13px 15px;
  border:1px solid var(--line);
  border-radius:15px;
  background:rgba(255,255,255,.65);
}
html[data-device-experience="desktop"] #healthSheet .health-history-wrap{
  padding-top:12px;
}
@media(max-width:430px){
  .mobile-care-guide-secondary{grid-template-columns:1fr 1fr}
  .mobile-care-guide-secondary button:last-child{grid-column:1/-1}
  .mobile-health-guide{display:grid!important}
  .mobile-health-guide button{width:100%}
}



/* =========================================================
   TinyPal v9.77 · Impostazioni rifatte PC / Mobile
   ========================================================= */
#actionSheet[data-panel="more"] .settings-v977-grid{
  display:block!important;
  grid-template-columns:none!important;
  gap:0!important;
}
#actionSheet[data-panel="more"] .catalog-filters{display:none!important}

/* ====================== PC ====================== */
html[data-device-experience="desktop"] #actionSheet[data-panel="more"]{
  width:min(1040px,calc(100% - 46px))!important;
  max-height:min(86dvh,820px)!important;
  padding-bottom:12px;
}
html[data-device-experience="desktop"] #actionSheet[data-panel="more"]>.sheet-head{
  padding-bottom:10px;
}
.settings-v977-desktop{
  display:grid;
  grid-template-columns:215px minmax(0,1fr);
  min-height:570px;
  border:1px solid rgba(71,63,55,.08);
  border-radius:22px;
  overflow:hidden;
  background:#fff;
}
.settings-v977-sidebar{
  min-width:0;
  padding:14px 11px 11px;
  background:linear-gradient(180deg,#f3f1ec,#ecefe9);
  border-right:1px solid rgba(75,65,55,.08);
  display:flex;
  flex-direction:column;
}
.settings-v977-sidebar-profile{
  display:grid;
  grid-template-columns:40px minmax(0,1fr);
  gap:9px;
  align-items:center;
  padding:5px 6px 12px;
}
.settings-v977-sidebar-profile>span{
  width:40px;height:40px;border-radius:13px;
  display:grid;place-items:center;background:#fff;
  box-shadow:0 5px 13px rgba(64,53,42,.06);
  font-size:20px;
}
.settings-v977-sidebar-profile small,
.settings-v977-sidebar-profile strong,
.settings-v977-sidebar-profile p{display:block}
.settings-v977-sidebar-profile small{
  font-size:6.5px;letter-spacing:.11em;font-weight:950;color:var(--muted)
}
.settings-v977-sidebar-profile strong{
  margin-top:2px;font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.settings-v977-sidebar-profile p{
  margin:2px 0 0;font-size:7px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.settings-v977-desktop-search{
  min-height:37px;
  display:grid;grid-template-columns:27px 1fr;align-items:center;
  margin:0 4px 10px;padding:0 7px;
  border:1px solid rgba(75,65,55,.09);
  border-radius:11px;background:rgba(255,255,255,.74)
}
.settings-v977-desktop-search>span{text-align:center;font-size:15px;color:#847b72}
.settings-v977-desktop-search input{
  width:100%;height:35px;border:0;outline:0;background:transparent;
  color:inherit;font:inherit;font-size:8.5px;font-weight:750
}
.settings-v977-sidebar-nav{display:grid;gap:3px}
.settings-v977-sidebar-nav button{
  position:relative;
  width:100%;
  min-height:39px;
  display:grid;grid-template-columns:27px minmax(0,1fr) 8px;
  gap:7px;align-items:center;
  padding:5px 8px;
  border:0;border-radius:11px;
  background:transparent;color:#6c655e;text-align:left
}
.settings-v977-sidebar-nav button:hover{background:rgba(255,255,255,.65)}
.settings-v977-sidebar-nav button.active{
  background:#fff;color:#35463b;box-shadow:0 5px 13px rgba(62,54,45,.055)
}
.settings-v977-sidebar-nav button>span{
  width:27px;height:27px;border-radius:9px;background:rgba(255,255,255,.62);
  display:grid;place-items:center;font-size:14px
}
.settings-v977-sidebar-nav button.active>span{background:#e9f2ec}
.settings-v977-sidebar-nav button strong{font-size:8.5px}
.settings-v977-sidebar-nav button i{
  width:6px;height:6px;border-radius:50%;background:#61a472;justify-self:end
}
.settings-v977-sidebar-status{
  margin-top:auto;padding:10px 7px 7px;border-top:1px solid rgba(70,60,50,.07)
}
.settings-v977-sidebar-status>div{display:flex;align-items:center;gap:5px}
.settings-v977-sidebar-status>div span{font-size:7px;color:#aaa}
.settings-v977-sidebar-status>div span.on{color:#5da36c}
.settings-v977-sidebar-status>div strong{font-size:7.5px}
.settings-v977-sidebar-status>small{display:block;margin-top:4px;font-size:6.5px;color:var(--muted)}
.settings-v977-sidebar-site{
  display:grid;grid-template-columns:24px 1fr 12px;gap:6px;align-items:center;
  margin-top:5px;padding:8px;border-radius:10px;background:#fff;color:inherit;text-decoration:none
}
.settings-v977-sidebar-site span{font-size:13px}
.settings-v977-sidebar-site strong{font-size:7.5px}
.settings-v977-sidebar-site b{font-size:11px;color:var(--muted)}

.settings-v977-desktop-main{
  min-width:0;
  padding:13px 15px 17px;
  background:#fbfaf7;
}
.settings-v977-desktop-top{margin-bottom:11px}
.settings-v977-desktop-statuses{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px
}
.settings-v977-desktop-statuses button{
  min-width:0;min-height:48px;
  display:grid;grid-template-columns:27px minmax(0,1fr);gap:7px;align-items:center;
  padding:7px 8px;border:1px solid rgba(75,65,55,.07);border-radius:12px;
  background:#fff;color:inherit;text-align:left
}
.settings-v977-desktop-statuses button>span{
  width:27px;height:27px;border-radius:9px;background:#f2f3f0;display:grid;place-items:center;font-size:14px
}
.settings-v977-desktop-statuses small,.settings-v977-desktop-statuses strong{display:block}
.settings-v977-desktop-statuses small{font-size:5.7px;letter-spacing:.08em;font-weight:950;color:var(--muted)}
.settings-v977-desktop-statuses strong{
  margin-top:2px;font-size:7.8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.settings-v977-content{min-width:0}
.settings-v977-page-head{
  min-height:70px;
  display:flex;gap:10px;align-items:flex-start;
  padding:12px 13px;
  border:1px solid rgba(75,65,55,.07);
  border-radius:16px 16px 0 0;
  background:linear-gradient(135deg,#fff,#f5f3ee)
}
.settings-v977-page-head>div{min-width:0}
.settings-v977-page-head small{
  display:block;font-size:6.5px;letter-spacing:.11em;font-weight:950;color:#66756a
}
.settings-v977-page-head h3{margin:3px 0 2px;font-size:16px;line-height:1.1}
.settings-v977-page-head p{margin:0;color:var(--muted);font-size:7.5px;line-height:1.4}
.settings-v977-page-list{
  display:grid;grid-template-columns:1fr 1fr;
  border:1px solid rgba(75,65,55,.07);border-top:0;
  border-radius:0 0 16px 16px;overflow:hidden;background:#fff
}
.settings-v977-row{
  width:100%;min-width:0;min-height:66px;
  display:grid;grid-template-columns:35px minmax(0,1fr) auto 11px;
  gap:8px;align-items:center;
  padding:9px 10px;
  border:0;border-right:1px solid rgba(75,65,55,.06);border-bottom:1px solid rgba(75,65,55,.06);
  background:#fff;color:inherit;text-align:left
}
.settings-v977-row:nth-child(even){border-right:0}
.settings-v977-row:hover{background:#f7f6f2}
.settings-v977-row.guide{background:linear-gradient(120deg,#f4f7ff,#fffaf3)}
.settings-v977-row-icon{
  width:35px;height:35px;border-radius:11px;background:#f2f1ed;display:grid;place-items:center;font-size:17px
}
.settings-v977-row-copy{min-width:0}
.settings-v977-row-copy strong{display:block;font-size:9.5px}
.settings-v977-row-copy small{
  display:block;margin-top:2px;font-size:7.3px;line-height:1.35;color:var(--muted);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden
}
.settings-v977-row-badge{
  max-width:78px;padding:4px 6px;border-radius:999px;background:#edf3ef;color:#607064;
  font-size:6.2px;font-weight:950;white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.settings-v977-row>b{color:#aaa198;font-size:13px}
.settings-v977-page-extra{margin-top:9px}
.settings-v977-page-extra .device-experience-settings{
  margin:0;background:#fff;border-radius:15px
}
.settings-v977-site-card{
  display:grid;grid-template-columns:38px minmax(0,1fr) 18px;gap:9px;align-items:center;
  padding:11px;border:1px solid var(--line);border-radius:15px;background:#fff;color:inherit;text-decoration:none
}
.settings-v977-site-card>span{
  width:38px;height:38px;border-radius:12px;background:#edf4ef;display:grid;place-items:center;font-size:18px
}
.settings-v977-site-card small,.settings-v977-site-card strong,.settings-v977-site-card p{display:block}
.settings-v977-site-card small{font-size:6px;font-weight:950;letter-spacing:.09em;color:var(--muted)}
.settings-v977-site-card strong{font-size:9.5px;margin-top:2px}
.settings-v977-site-card p{font-size:7px;color:var(--muted);margin:2px 0 0}
.settings-v977-site-card>b{font-size:13px;color:var(--muted)}

.settings-v977-search-results{
  display:grid;grid-template-columns:1fr 1fr;
  border:1px solid rgba(75,65,55,.07);border-top:0;border-radius:0 0 16px 16px;overflow:hidden
}
.settings-v977-empty{
  grid-column:1/-1;padding:35px 15px;text-align:center;background:#fff
}
.settings-v977-empty>span{font-size:25px}
.settings-v977-empty strong,.settings-v977-empty small{display:block}
.settings-v977-empty strong{font-size:10px;margin-top:6px}
.settings-v977-empty small{font-size:7.5px;color:var(--muted);margin-top:3px}

/* ====================== MOBILE ====================== */
.settings-v977-mobile{display:none}
html[data-device-experience="mobile"] #actionSheet[data-panel="more"]{
  width:min(100%,520px)!important;
  max-height:94dvh!important;
}
html[data-device-experience="mobile"] #actionSheet[data-panel="more"] .sheet-head{
  padding-bottom:8px;
}
html[data-device-experience="mobile"] .settings-v977-desktop{display:none!important}
html[data-device-experience="mobile"] .settings-v977-mobile{display:block}
.settings-v977-mobile-profile{
  display:grid;grid-template-columns:46px minmax(0,1fr) 30px;gap:10px;align-items:center;
  padding:12px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(135deg,#eef5f0,#fffaf3)
}
.settings-v977-mobile-avatar{
  width:46px;height:46px;border-radius:15px;background:#fff;display:grid;place-items:center;font-size:23px;
  box-shadow:0 5px 14px rgba(65,55,45,.06)
}
.settings-v977-mobile-profile small,.settings-v977-mobile-profile strong,.settings-v977-mobile-profile span{display:block}
.settings-v977-mobile-profile small{font-size:6.5px;letter-spacing:.11em;font-weight:950;color:var(--muted)}
.settings-v977-mobile-profile strong{font-size:12px;margin-top:2px}
.settings-v977-mobile-profile span{font-size:7.5px;color:var(--muted);margin-top:2px}
.settings-v977-mobile-profile em{
  width:30px;height:30px;border-radius:10px;background:#fff;display:grid;place-items:center;font-style:normal;font-size:14px
}
.settings-v977-mobile-profile em.online{background:#e5f2e9}
.settings-v977-mobile-search,.settings-v977-result-search{
  height:42px;display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;
  margin-top:9px;padding:0 8px;border:1px solid var(--line);border-radius:13px;background:#fff
}
.settings-v977-mobile-search>span,.settings-v977-result-search>span{font-size:16px;text-align:center;color:var(--muted)}
.settings-v977-mobile-search input,.settings-v977-result-search input{
  width:100%;height:40px;border:0;outline:0;background:transparent;font:inherit;font-size:10px;color:inherit
}
.settings-v977-result-search button{
  border:0;background:transparent;color:var(--muted);font:inherit;font-size:8px;font-weight:900;padding:7px
}
.settings-v977-mobile-quick{
  display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:8px
}
.settings-v977-mobile-quick button{
  min-width:0;min-height:58px;display:grid;grid-template-columns:30px 1fr;grid-template-rows:auto auto;
  gap:0 7px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:13px;background:#fff;color:inherit;text-align:left
}
.settings-v977-mobile-quick button>span{
  grid-row:1/3;width:30px;height:30px;border-radius:10px;background:var(--surface-2);display:grid;place-items:center;font-size:15px
}
.settings-v977-mobile-quick small{font-size:6px;font-weight:950;letter-spacing:.08em;color:var(--muted)}
.settings-v977-mobile-quick strong{font-size:8.5px;margin-top:1px}
.settings-v977-mobile-heading{margin:15px 4px 7px}
.settings-v977-mobile-heading small,.settings-v977-mobile-heading strong{display:block}
.settings-v977-mobile-heading small{font-size:6.5px;font-weight:950;letter-spacing:.11em;color:var(--muted)}
.settings-v977-mobile-heading strong{font-size:11px;margin-top:2px}
.settings-v977-mobile-categories{display:grid;gap:6px}
.settings-v977-mobile-categories button{
  width:100%;min-width:0;display:grid;grid-template-columns:40px minmax(0,1fr) 25px 12px;gap:9px;align-items:center;
  padding:10px;border:1px solid var(--line);border-radius:15px;background:#fff;color:inherit;text-align:left
}
.settings-v977-mobile-categories button>span{
  width:40px;height:40px;border-radius:13px;background:#f3f2ee;display:grid;place-items:center;font-size:20px
}
.settings-v977-mobile-categories strong,.settings-v977-mobile-categories small{display:block}
.settings-v977-mobile-categories strong{font-size:10px}
.settings-v977-mobile-categories small{font-size:7.5px;line-height:1.35;color:var(--muted);margin-top:2px}
.settings-v977-mobile-categories em{
  width:25px;height:25px;border-radius:9px;background:var(--surface-2);display:grid;place-items:center;
  font-style:normal;font-size:7px;font-weight:900;color:var(--muted)
}
.settings-v977-mobile-categories b{font-size:15px;color:#aaa198}
.settings-v977-mobile-site{
  display:grid;grid-template-columns:35px 1fr 14px;gap:8px;align-items:center;
  margin-top:9px;padding:10px;border-radius:14px;background:#edf4ef;color:inherit;text-decoration:none
}
.settings-v977-mobile-site>span{font-size:18px}
.settings-v977-mobile-site strong,.settings-v977-mobile-site small{display:block}
.settings-v977-mobile-site strong{font-size:9px}.settings-v977-mobile-site small{font-size:7px;color:var(--muted);margin-top:2px}
.settings-v977-mobile-site b{font-size:12px;color:var(--muted)}

/* Mobile: pagina singola, non lista infinita */
html[data-device-experience="mobile"] .settings-v977-page-head{
  border-radius:16px;
  display:grid;grid-template-columns:34px 1fr;
  min-height:auto;padding:10px;margin-bottom:7px
}
html[data-device-experience="mobile"] .settings-v977-page-head:not(:has(.settings-v977-back)){
  grid-template-columns:1fr
}
.settings-v977-back{
  width:34px;height:34px;border:1px solid var(--line);border-radius:11px;background:#fff;color:inherit;font-size:16px
}
html[data-device-experience="mobile"] .settings-v977-page-head h3{font-size:14px}
html[data-device-experience="mobile"] .settings-v977-page-head p{font-size:7.5px}
html[data-device-experience="mobile"] .settings-v977-page-list,
html[data-device-experience="mobile"] .settings-v977-search-results{
  display:grid;grid-template-columns:1fr;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff
}
html[data-device-experience="mobile"] .settings-v977-row{
  min-height:62px;border-right:0!important;padding:9px;
  grid-template-columns:34px minmax(0,1fr) auto 11px
}
html[data-device-experience="mobile"] .settings-v977-row-icon{width:34px;height:34px;font-size:17px}
html[data-device-experience="mobile"] .settings-v977-row-copy strong{font-size:9.5px}
html[data-device-experience="mobile"] .settings-v977-row-copy small{font-size:7.5px}
html[data-device-experience="mobile"] .settings-v977-row-badge{max-width:65px;font-size:5.8px}
html[data-device-experience="mobile"] .settings-v977-page-extra .device-experience-settings{
  margin-top:8px;background:var(--surface-2)
}
html[data-device-experience="mobile"] .settings-v977-page-extra .device-experience-settings-options{
  grid-template-columns:1fr;
}
html[data-device-experience="mobile"] .settings-v977-site-card{margin-top:8px}
html[data-device-experience="mobile"] .search-page{margin-top:8px}

@media(max-width:370px){
  .settings-v977-mobile-categories button{grid-template-columns:36px minmax(0,1fr) 12px}
  .settings-v977-mobile-categories button>span{width:36px;height:36px}
  .settings-v977-mobile-categories em{display:none}
  html[data-device-experience="mobile"] .settings-v977-row-badge{display:none}
  html[data-device-experience="mobile"] .settings-v977-row{grid-template-columns:34px minmax(0,1fr) 11px}
}



/* =========================================================
   TinyPal v9.78 · Rifacimento generale Fase 1 · Cibo / Cura
   ========================================================= */
#actionSheet[data-panel="food"] .foodcare-v978-grid,
#actionSheet[data-panel="care"] .foodcare-v978-grid{
  display:block!important;
  grid-template-columns:none!important;
  gap:0!important;
}
#actionSheet[data-panel="food"] .mobile-action-focus,
#actionSheet[data-panel="care"] .mobile-action-focus{
  display:none!important;
}
.foodcare-v978-shell{display:grid;gap:10px}
.foodcare-v978-switch{
  display:grid;grid-template-columns:1fr 1fr;gap:6px;
  padding:5px;border:1px solid var(--line);border-radius:15px;background:var(--surface-2)
}
.foodcare-v978-switch button{
  min-width:0;display:grid;grid-template-columns:32px minmax(0,1fr);grid-template-rows:auto auto;gap:0 8px;
  align-items:center;padding:8px;border:0;border-radius:11px;background:transparent;color:var(--muted);text-align:left
}
.foodcare-v978-switch button>span{
  grid-row:1/3;width:32px;height:32px;border-radius:10px;background:rgba(255,255,255,.62);display:grid;place-items:center;font-size:16px
}
.foodcare-v978-switch button strong,.foodcare-v978-switch button small{display:block}
.foodcare-v978-switch button strong{font-size:9px}.foodcare-v978-switch button small{font-size:6.5px;margin-top:1px}
.foodcare-v978-switch button.active{background:#fff;color:var(--text);box-shadow:0 4px 12px rgba(65,55,45,.05)}
.foodcare-v978-shell.food .foodcare-v978-switch button.active>span{background:#fff4e6}
.foodcare-v978-shell.care .foodcare-v978-switch button.active>span{background:#edf5f0}

/* HERO */
.foodcare-v978-hero{
  padding:13px;border:1px solid var(--line);border-radius:19px;background:linear-gradient(145deg,#fffdf9,#f7f4ee)
}
.foodcare-v978-hero.food{background:linear-gradient(145deg,#fffaf1,#fffdf8)}
.foodcare-v978-hero.care{background:linear-gradient(145deg,#edf6f0,#fffdf8)}
.foodcare-v978-hero-copy{
  display:grid;grid-template-columns:43px minmax(0,1fr);gap:10px;align-items:center
}
.foodcare-v978-hero-icon{
  width:43px;height:43px;border-radius:14px;background:#fff;display:grid;place-items:center;font-size:21px;
  box-shadow:0 5px 14px rgba(65,55,45,.05)
}
.foodcare-v978-hero-copy small,.foodcare-v978-hero-copy h3,.foodcare-v978-hero-copy p{display:block}
.foodcare-v978-hero-copy small{font-size:6.5px;letter-spacing:.1em;font-weight:950;color:var(--muted)}
.foodcare-v978-hero-copy h3{font-size:14px;line-height:1.12;margin:2px 0 2px}
.foodcare-v978-hero-copy p{font-size:7.5px;line-height:1.4;color:var(--muted);margin:0}
.foodcare-v978-hero-meters{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:10px
}
.foodcare-v978-shell.food .foodcare-v978-hero-meters{grid-template-columns:1fr 1fr}
.foodcare-v978-meter{
  min-width:0;padding:8px;border-radius:11px;background:rgba(255,255,255,.72);border:1px solid rgba(75,65,55,.055)
}
.foodcare-v978-meter>div{display:flex;justify-content:space-between;gap:7px;align-items:center}
.foodcare-v978-meter span{font-size:6.5px;font-weight:850;color:var(--muted)}
.foodcare-v978-meter strong{font-size:8px}
.foodcare-v978-meter i{display:block;height:5px;margin-top:5px;border-radius:999px;background:#ebe4da;overflow:hidden}
.foodcare-v978-meter i b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#d5ac72,#78aa84)}
.foodcare-v978-meter.warn i b{background:linear-gradient(90deg,#d6a264,#e0b87b)}
.foodcare-v978-meter.danger i b{background:linear-gradient(90deg,#c8685f,#dc9176)}
.foodcare-v978-facts{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:7px
}
.foodcare-v978-facts>div{min-width:0;padding:7px 8px;border-radius:10px;background:rgba(255,255,255,.62)}
.foodcare-v978-facts small,.foodcare-v978-facts strong{display:block}
.foodcare-v978-facts small{font-size:5.5px;letter-spacing:.08em;font-weight:950;color:var(--muted)}
.foodcare-v978-facts strong{font-size:7.5px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.foodcare-v978-primary-slot{margin-top:9px}

/* ACTION CARDS */
.foodcare-v978-action{
  width:100%;min-width:0;min-height:64px;display:grid;grid-template-columns:36px minmax(0,1fr) auto 12px;
  gap:8px;align-items:center;padding:9px 10px;border:1px solid var(--line);border-radius:13px;
  background:#fff;color:inherit;text-align:left
}
.foodcare-v978-action:hover{background:#faf8f3;transform:translateY(-1px)}
.foodcare-v978-action-icon{
  width:36px;height:36px;border-radius:11px;background:var(--surface-2);display:grid;place-items:center;font-size:18px
}
.foodcare-v978-action-copy{min-width:0}
.foodcare-v978-action-copy strong,.foodcare-v978-action-copy small{display:block}
.foodcare-v978-action-copy strong{font-size:9.5px}
.foodcare-v978-action-copy small{
  font-size:7.2px;line-height:1.35;color:var(--muted);margin-top:2px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden
}
.foodcare-v978-action em{
  max-width:66px;padding:4px 6px;border-radius:999px;background:#eef3ef;color:#607064;
  font-style:normal;font-size:6.2px;font-weight:950;white-space:nowrap
}
.foodcare-v978-action>b{font-size:13px;color:#aaa198}
.foodcare-v978-action.primary{
  min-height:72px;border-color:rgba(93,122,101,.18);
  background:rgba(255,255,255,.86);box-shadow:0 5px 14px rgba(65,55,45,.04)
}
.foodcare-v978-shell.food .foodcare-v978-action.primary{border-color:#ead8b8;background:#fffaf0}
.foodcare-v978-shell.care .foodcare-v978-action.primary{border-color:#cbdcce;background:#f5faf6}
.foodcare-v978-action.primary .foodcare-v978-action-icon{width:40px;height:40px;font-size:20px}
.foodcare-v978-action.tone-danger{border-color:#e7beb5;background:#fff6f3}
.foodcare-v978-action.tone-warn{border-color:#ead3a9;background:#fffaf0}

/* DESKTOP */
html[data-device-experience="desktop"] #actionSheet[data-panel="food"],
html[data-device-experience="desktop"] #actionSheet[data-panel="care"]{
  width:min(980px,calc(100% - 48px))!important;
  max-height:min(88dvh,830px)!important
}
html[data-device-experience="desktop"] .foodcare-v978-switch{max-width:430px}
html[data-device-experience="desktop"] .foodcare-v978-hero{
  display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:10px;align-items:start
}
html[data-device-experience="desktop"] .foodcare-v978-hero-copy{grid-column:1}
html[data-device-experience="desktop"] .foodcare-v978-hero-meters{grid-column:1}
html[data-device-experience="desktop"] .foodcare-v978-facts{grid-column:2;grid-row:1/3;grid-template-columns:1fr 1fr;align-self:stretch;margin-top:0}
html[data-device-experience="desktop"] .foodcare-v978-facts>div{display:flex;flex-direction:column;justify-content:center;padding:9px}
html[data-device-experience="desktop"] .foodcare-v978-primary-slot{grid-column:1/-1;margin-top:0}
.foodcare-v978-desktop-content{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px
}
.foodcare-v978-shell.care .foodcare-v978-desktop-content{
  grid-template-columns:repeat(3,minmax(0,1fr))
}
.foodcare-v978-group{
  min-width:0;border:1px solid var(--line);border-radius:16px;background:#fbfaf7;overflow:hidden
}
.foodcare-v978-group>header{
  display:grid;grid-template-columns:31px minmax(0,1fr) 23px;gap:8px;align-items:center;padding:9px 10px;
  border-bottom:1px solid rgba(75,65,55,.06)
}
.foodcare-v978-group>header>span{
  width:31px;height:31px;border-radius:10px;background:#fff;display:grid;place-items:center;font-size:15px
}
.foodcare-v978-group>header small,.foodcare-v978-group>header strong{display:block}
.foodcare-v978-group>header small{font-size:5.5px;letter-spacing:.1em;font-weight:950;color:var(--muted)}
.foodcare-v978-group>header strong{font-size:9px;margin-top:1px}
.foodcare-v978-group>header em{
  width:23px;height:23px;border-radius:8px;background:#fff;display:grid;place-items:center;font-style:normal;font-size:6.5px;font-weight:900;color:var(--muted)
}
.foodcare-v978-group-grid{display:grid;gap:5px;padding:7px}
.foodcare-v978-shell.food .foodcare-v978-group.group-now{grid-column:1/-1}
.foodcare-v978-shell.food .foodcare-v978-group.group-meals{grid-column:1}
.foodcare-v978-shell.food .foodcare-v978-group.group-pantry{grid-column:2}
.foodcare-v978-shell.care .foodcare-v978-group.group-hygiene{grid-column:1}
.foodcare-v978-shell.care .foodcare-v978-group.group-health{grid-column:2}
.foodcare-v978-shell.care .foodcare-v978-group.group-wellness{grid-column:3}
.foodcare-v978-desktop-footer{
  display:flex;gap:8px;align-items:center;padding:8px 10px;border-radius:12px;background:var(--surface-2)
}
.foodcare-v978-desktop-footer>span{font-size:16px}
.foodcare-v978-desktop-footer p{margin:0;font-size:7px;line-height:1.45;color:var(--muted)}

/* MOBILE */
.foodcare-v978-mobile-tabs,.foodcare-v978-mobile-page{display:none}
html[data-device-experience="mobile"] #actionSheet[data-panel="food"],
html[data-device-experience="mobile"] #actionSheet[data-panel="care"]{
  width:min(100%,520px)!important;
  max-height:94dvh!important
}
html[data-device-experience="mobile"] .foodcare-v978-switch{position:sticky;top:0;z-index:4}
html[data-device-experience="mobile"] .foodcare-v978-hero{
  padding:11px;border-radius:17px
}
html[data-device-experience="mobile"] .foodcare-v978-hero-copy{
  grid-template-columns:39px minmax(0,1fr);gap:9px
}
html[data-device-experience="mobile"] .foodcare-v978-hero-icon{width:39px;height:39px;font-size:19px}
html[data-device-experience="mobile"] .foodcare-v978-hero-copy h3{font-size:12.5px}
html[data-device-experience="mobile"] .foodcare-v978-hero-copy p{font-size:7.4px}
html[data-device-experience="mobile"] .foodcare-v978-hero-meters{
  grid-template-columns:1fr 1fr!important;gap:5px
}
html[data-device-experience="mobile"] .foodcare-v978-facts{
  display:none
}
html[data-device-experience="mobile"] .foodcare-v978-primary-slot{margin-top:7px}
html[data-device-experience="mobile"] .foodcare-v978-action.primary{
  min-height:68px
}
html[data-device-experience="mobile"] .foodcare-v978-desktop-content,
html[data-device-experience="mobile"] .foodcare-v978-desktop-footer{
  display:none!important
}
html[data-device-experience="mobile"] .foodcare-v978-mobile-tabs{
  display:grid;gap:5px;
  grid-template-columns:repeat(3,minmax(0,1fr));
  padding:5px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)
}
html[data-device-experience="mobile"] .foodcare-v978-shell.care .foodcare-v978-mobile-tabs{
  grid-template-columns:repeat(4,minmax(0,1fr))
}
.foodcare-v978-mobile-tabs button{
  min-width:0;border:0;border-radius:10px;background:transparent;padding:7px 3px;color:var(--muted)
}
.foodcare-v978-mobile-tabs button span,.foodcare-v978-mobile-tabs button strong{display:block}
.foodcare-v978-mobile-tabs button span{font-size:15px}
.foodcare-v978-mobile-tabs button strong{font-size:6.8px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.foodcare-v978-mobile-tabs button.active{
  background:#fff;color:var(--text);box-shadow:0 4px 10px rgba(65,55,45,.05)
}
html[data-device-experience="mobile"] .foodcare-v978-mobile-page{display:block}
.foodcare-v978-mobile-section-head{margin:2px 3px 6px}
.foodcare-v978-mobile-section-head small,.foodcare-v978-mobile-section-head strong{display:block}
.foodcare-v978-mobile-section-head small{font-size:6px;letter-spacing:.1em;font-weight:950;color:var(--muted)}
.foodcare-v978-mobile-section-head strong{font-size:10px;margin-top:2px}
.foodcare-v978-mobile-list{display:grid;gap:6px}
html[data-device-experience="mobile"] .foodcare-v978-action{
  min-height:62px;padding:8px 9px;grid-template-columns:34px minmax(0,1fr) auto 11px
}
html[data-device-experience="mobile"] .foodcare-v978-action-icon{width:34px;height:34px;font-size:17px}
html[data-device-experience="mobile"] .foodcare-v978-action-copy strong{font-size:9px}
html[data-device-experience="mobile"] .foodcare-v978-action-copy small{font-size:7px}
html[data-device-experience="mobile"] .foodcare-v978-action em{font-size:5.8px;max-width:55px}
@media(max-width:370px){
  html[data-device-experience="mobile"] .foodcare-v978-shell.care .foodcare-v978-mobile-tabs{
    grid-template-columns:1fr 1fr
  }
  .foodcare-v978-switch button small{display:none}
  .foodcare-v978-switch button{grid-template-rows:1fr}
  .foodcare-v978-switch button>span{grid-row:1}
  html[data-device-experience="mobile"] .foodcare-v978-action em{display:none}
  html[data-device-experience="mobile"] .foodcare-v978-action{grid-template-columns:34px minmax(0,1fr) 11px}
}

