/* ===== Profili d'esempio: facsimile del profilo dell'app (area pubblica e area personale) ===== */
.proto {
  --pt-bg: #F5F5F7; --pt-card: #fff; --pt-soft: #F5F5F7; --pt-blue: #489DFE; --pt-blue-soft: #E4F1FF; --pt-navy: #123F73;
  --pt-ink: #000; --pt-ink2: #4D4D4D; --pt-gray: #7B7B7C; --pt-chev: #CCD2D9; --pt-line: #EBEDF0;
  --pt-shadow: 0 0 8px rgba(102,173,255,.12); --pt-ease: cubic-bezier(.22,1,.36,1);
  background: var(--pt-bg); color: var(--pt-ink); font-family: var(--f-body);
}
:root[data-theme="dark"] .proto {
  --pt-bg: #0A1322; --pt-card: #132038; --pt-soft: #1A2942; --pt-blue-soft: rgba(72,157,254,.18); --pt-navy: #A9CCFF;
  --pt-ink: #EEF2F8; --pt-ink2: #C3CCDA; --pt-gray: #8F9BB0; --pt-chev: #4A5873; --pt-line: #22314C;
  --pt-shadow: 0 0 0 1px rgba(127,140,162,.16);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .proto {
    --pt-bg: #0A1322; --pt-card: #132038; --pt-soft: #1A2942; --pt-blue-soft: rgba(72,157,254,.18); --pt-navy: #A9CCFF;
    --pt-ink: #EEF2F8; --pt-ink2: #C3CCDA; --pt-gray: #8F9BB0; --pt-chev: #4A5873; --pt-line: #22314C;
    --pt-shadow: 0 0 0 1px rgba(127,140,162,.16);
  }
}
.proto .pg-bar { position: sticky; }
.proto svg.ic { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; flex: none; }
:where(.proto) button { font: inherit; color: inherit; -webkit-tap-highlight-color: transparent; }
.pt-wrap { max-width: 520px; margin: 0 auto; padding: 0 max(16px, env(safe-area-inset-right, 0px)) 72px max(16px, env(safe-area-inset-left, 0px)); }

/* introduzione sopra al profilo */
.pt-intro { padding: clamp(28px, 7vw, 56px) 4px clamp(22px, 5vw, 34px); text-align: center; }
.pt-intro .kick { max-width: none; margin: 0 0 14px; font: 500 .7rem/1 var(--nd-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--pt-blue); }
.pt-intro h1 { margin: 0; font: 400 clamp(2rem, 8.4vw, 2.9rem)/1.04 var(--nd-display); letter-spacing: -.01em; }
.pt-intro h1 em { color: var(--pt-blue); }
.pt-intro p { margin: 16px auto 0; max-width: 34ch; font-size: clamp(1rem, 3.9vw, 1.1rem); line-height: 1.5; color: var(--pt-ink2); }

/* telefono: la cornice in cui vive il profilo */
.pt-app { position: relative; border-radius: 44px; overflow: hidden; background: var(--pt-bg); box-shadow: 0 30px 70px -30px rgba(18,63,115,.35), 0 0 0 1px rgba(18,63,115,.06); isolation: isolate; }
.pt-cover { position: relative; height: clamp(300px, 92vw, 410px); }
.pt-cover img { width: 100%; height: 100%; object-fit: cover; object-position: var(--pos, 50% 50%); display: block; }
.pt-cover::after { content: ""; position: absolute; inset: auto 0 0; height: 46%; background: linear-gradient(to bottom, transparent, var(--pt-bg) 92%); }
.pt-body-wrap { position: relative; margin-top: calc(-1 * clamp(80px, 22vw, 110px)); padding: 0 16px 24px; z-index: 1; }

/* scelta area: pubblica / personale */
.pt-areas { position: absolute; z-index: 3; top: 16px; left: 50%; translate: -50% 0; display: grid; grid-template-columns: 1fr 1fr; padding: 4px; border-radius: 99px; background: rgba(255,255,255,.55); -webkit-backdrop-filter: blur(18px) saturate(1.6); backdrop-filter: blur(18px) saturate(1.6); box-shadow: 0 0 8px rgba(102,173,255,.18), inset 0 0 0 1px rgba(255,255,255,.6); }
.pt-areas::before { content: ""; position: absolute; top: 4px; bottom: 4px; left: 4px; width: calc(50% - 4px); border-radius: 99px; background: #fff; box-shadow: 0 2px 10px rgba(18,63,115,.12); transition: translate .5s var(--pt-ease); }
.pt-areas[data-on="priv"]::before { translate: 100% 0; }
.pt-areas button { position: relative; z-index: 1; height: 38px; padding: 0 16px; border: 0; background: none; font-size: .95rem; color: #3A3A3C; cursor: pointer; white-space: nowrap; transition: color .3s ease, font-weight .3s; }
.pt-areas button[aria-selected="true"] { color: var(--pt-blue); font-weight: 700; }
.pt-panes { position: relative; display: grid; }
.pt-pane { grid-area: 1 / 1; display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; align-content: start; transition: opacity .45s ease, translate .55s var(--pt-ease), filter .45s ease; }
.pt-pane[aria-hidden="true"] { opacity: 0; translate: 0 14px; filter: blur(4px); pointer-events: none; visibility: hidden; position: absolute; top: 0; left: 0; right: 0; transition: opacity .3s ease, translate .3s ease, filter .3s ease, visibility 0s .3s; }

/* carta base */
.pt-w { background: var(--pt-card); border-radius: 35px; box-shadow: var(--pt-shadow); }

/* box profilo */
.pt-box { padding: 16px; display: grid; gap: 16px; }
.pt-id { display: flex; align-items: center; gap: 13px; }
.pt-av { position: relative; flex: none; width: 76px; height: 76px; }
.pt-av img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; display: block; }
.pt-av.logo img { border-radius: 22px; }
.pt-ok { position: absolute; right: -3px; bottom: -1px; width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: var(--pt-blue); box-shadow: 0 0 0 3px var(--pt-card); }
.pt-ok svg { width: 14px; height: 14px; fill: none; stroke: #fff; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }
.pt-id b { display: block; font-size: 17px; line-height: 22px; }
.pt-id span { display: block; margin-top: 4px; font-size: 15px; line-height: 20px; color: var(--pt-ink2); }
.pt-bio { margin: 0; font-size: 17px; line-height: 22px; color: var(--pt-ink); }
.pt-bio a { color: var(--pt-blue); text-decoration: none; }
.pt-hello { padding: 20px 20px 22px; }
.pt-hello h2 { margin: 0; font: 400 clamp(1.9rem, 8vw, 2.3rem)/1.05 var(--nd-display); color: var(--pt-ink); }
.pt-hello p { margin: 8px 0 0; font-size: 17px; line-height: 22px; color: var(--pt-gray); }

/* tasti Messaggio / Segui */
.pt-btns { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.pt-msg, .pt-follow { height: 46px; border-radius: 99px; border: 1px solid var(--pt-line); background: var(--pt-card); font-size: 17px; cursor: pointer; }
.pt-msg { cursor: default; }
.pt-follow { position: relative; overflow: hidden; display: grid; place-items: center; color: var(--pt-blue); font-weight: 700; transition: background-color .45s var(--pt-ease), border-color .45s var(--pt-ease), color .45s ease; }
.pt-follow > span { grid-area: 1 / 1; display: inline-flex; align-items: center; gap: 7px; transition: opacity .35s ease, translate .5s var(--pt-ease), filter .35s ease; }
.pt-follow .t2 { opacity: 0; translate: 0 70%; filter: blur(3px); }
.pt-follow .t2 svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.pt-follow .t2 path { stroke-dasharray: 20; stroke-dashoffset: 20; transition: stroke-dashoffset .45s var(--pt-ease) .15s; }
.pt-follow[aria-pressed="true"] { background: var(--pt-blue-soft); border-color: transparent; }
.pt-follow[aria-pressed="true"] .t1 { opacity: 0; translate: 0 -70%; filter: blur(3px); }
.pt-follow[aria-pressed="true"] .t2 { opacity: 1; translate: 0 0; filter: none; }
.pt-follow[aria-pressed="true"] .t2 path { stroke-dashoffset: 0; }
.pt-follow::after { content: ""; position: absolute; left: var(--x, 50%); top: var(--y, 50%); width: 10px; height: 10px; margin: -5px; border-radius: 50%; background: rgba(72,157,254,.22); opacity: 0; transform: scale(0); }
.pt-follow.ripple::after { animation: pt-ripple .7s var(--pt-ease); }
@keyframes pt-ripple { 0% { opacity: 1; transform: scale(0); } 100% { opacity: 0; transform: scale(36); } }

/* album: una foto grande, due piccole */
.pt-album { display: grid; grid-template-columns: 2fr 1fr; grid-template-rows: 1fr 1fr; aspect-ratio: 3 / 2; gap: 1px; border-radius: 35px; overflow: hidden; background: rgba(0,0,0,.25); filter: drop-shadow(0 0 8px rgba(102,173,255,.12)); }
.pt-ph { display: block; width: 100%; height: 100%; padding: 0; border: 0; overflow: hidden; cursor: zoom-in; background: #D9DDE3; }
.pt-ph img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s var(--pt-ease); }
@media (hover: hover) { .pt-ph:hover img { transform: scale(1.04); } }
.pt-album .pt-ph:first-child { grid-row: 1 / 3; }

/* carosello */
.pt-car { padding: 25px 16px 22px; display: grid; gap: 12px; }
.pt-car h3 { margin: 0; font: 400 20px/27px var(--f-body); color: var(--pt-ink); letter-spacing: 0; }
.pt-car .pt-ph { position: relative; height: auto; aspect-ratio: 332 / 250; border-radius: 25px; }
.pt-car .pt-ph i { position: absolute; right: 10px; bottom: 10px; width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; background: rgba(167,169,173,.3); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); color: #fff; }
.pt-car .pt-ph i svg { width: 20px; height: 20px; }
.pt-car small { font-size: 15px; line-height: 20px; color: var(--pt-ink2); }
.pt-car b { font-size: 20px; line-height: 26px; font-weight: 400; }
.pt-car p { margin: -4px 0 0; font-size: 17px; line-height: 22px; color: var(--pt-ink2); }

/* sezioni: chiuse e aperte come nell'app */
.pt-sec { padding: 18px 16px; transition: padding .45s var(--pt-ease); }
.pt-sec.open { padding: 16px; }
.pt-sec-h { position: relative; width: 100%; display: flex; align-items: center; gap: 12px; padding: 0 26px 0 0; border: 0; background: none; text-align: left; cursor: pointer; }
.pt-ico { flex: none; width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; background: var(--pt-soft); color: var(--pt-ink); transition: background-color .4s ease, color .4s ease; }
.pt-sec.open .pt-ico { background: var(--pt-blue-soft); color: var(--pt-blue); }
.pt-sec-h > span { display: grid; gap: 4px; min-width: 0; }
.pt-sec-h b { font-size: 17px; line-height: 22px; }
.pt-sec-h small { font-size: 15px; line-height: 20px; color: var(--pt-gray); }
.pt-chev { position: absolute; right: 9px; top: 50%; width: 13px; height: 8px; margin-top: -4px; color: var(--pt-chev); transition: transform .45s var(--pt-ease), color .4s ease; }
.pt-chev svg { display: block; width: 13px; height: 8px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.pt-sec.open .pt-chev { transform: rotate(180deg); color: var(--pt-blue); }
.pt-sec-b { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .5s var(--pt-ease); }
.pt-sec.open .pt-sec-b { grid-template-rows: 1fr; }
.pt-sec-in { min-height: 0; overflow: hidden; }
.pt-sec-in > .pt-stack { padding-top: 25px; }
/* contenuto e spiegazione occupano la stessa cella: la sezione non cambia altezza */
.pt-stack { display: grid; grid-template-columns: minmax(0, 1fr); }
.pt-stack > .pt-content, .pt-stack > .pt-info { grid-area: 1 / 1; min-width: 0; transition: opacity .4s ease, filter .4s ease, translate .5s var(--pt-ease); }
.pt-content { display: grid; grid-template-columns: minmax(0, 1fr); gap: 25px; align-content: start; }
.pt-info { display: grid; align-content: center; gap: 14px; padding: 8px 4px; opacity: 0; filter: blur(4px); translate: 0 8px; pointer-events: none; }
.pt-sec.info .pt-content { opacity: 0; filter: blur(4px); translate: 0 -8px; pointer-events: none; }
.pt-sec.info .pt-info { opacity: 1; filter: none; translate: 0 0; pointer-events: auto; }
.pt-info .ttl { font: 500 .7rem/1 var(--nd-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--pt-blue); }
.pt-info p { margin: 0; font-size: 17px; line-height: 24px; color: var(--pt-ink); }
.pt-info-btn { justify-self: start; margin-top: 18px; display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 16px 0 8px; border: 0; border-radius: 99px; background: var(--pt-soft); font-size: 15px; cursor: pointer; transition: background-color .3s ease; }
.pt-info-btn i { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: var(--pt-card); color: var(--pt-blue); font: italic 700 14px/1 Georgia, serif; transition: transform .45s var(--pt-ease); }
.pt-info-btn > span { display: grid; }
.pt-info-btn > span span { grid-area: 1 / 1; justify-self: start; transition: opacity .3s ease; }
.pt-info-btn .t2 { opacity: 0; }
.pt-sec.info .pt-info-btn { background: var(--pt-blue-soft); color: var(--pt-blue); }
.pt-info-btn i { position: relative; }
.pt-info-btn i::after { content: "×"; position: absolute; inset: 0; display: grid; place-items: center; font: 600 18px/1 var(--f-body); font-style: normal; color: var(--pt-blue); background: var(--pt-card); border-radius: 50%; opacity: 0; transform: rotate(-90deg); transition: opacity .3s ease, transform .45s var(--pt-ease); }
.pt-sec.info .pt-info-btn i::after { opacity: 1; transform: none; }
.pt-sec.info .pt-info-btn .t1 { opacity: 0; }
.pt-sec.info .pt-info-btn .t2 { opacity: 1; }

/* elementi del contenuto */
.pt-txt { margin: 0; font-size: 17px; line-height: 22px; }
.pt-rows { display: grid; gap: 12px; }
.pt-row { display: flex; align-items: center; gap: 12px; }
.pt-rows .pt-row + .pt-row { padding-top: 12px; border-top: 1px solid var(--pt-line); }
.pt-row .pt-ico { background: var(--pt-card); color: var(--pt-blue); box-shadow: 0 0 0 1px var(--pt-line); }
.pt-row > span { display: grid; gap: 4px; min-width: 0; }
.pt-row b { font-size: 15px; line-height: 20px; }
.pt-row em { font-style: normal; font-size: 17px; line-height: 22px; color: var(--pt-gray); }
.pt-row a { color: var(--pt-gray); text-decoration: none; }
.pt-lab { margin: 0 0 12px; font-size: 15px; line-height: 20px; color: var(--pt-gray); }
.pt-chips { display: flex; gap: 5px; overflow-x: auto; scrollbar-width: none; }
.pt-chips::-webkit-scrollbar { display: none; }
.pt-chip { flex: none; min-width: 100px; height: 36px; padding: 0 14px; border: 0; border-radius: 99px; background: var(--pt-blue-soft); color: var(--pt-blue); font-size: 17px; font-weight: 700; display: grid; place-items: center; }
button.pt-chip { cursor: pointer; transition: background-color .3s ease, color .3s ease; }
button.pt-chip[aria-pressed="false"] { background: var(--pt-soft); color: var(--pt-ink2); font-weight: 400; }
.pt-hscroll { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 2px 0 4px; }
.pt-hscroll::-webkit-scrollbar { display: none; }
.pt-hscroll > * { scroll-snap-align: start; flex: none; }
.pt-seg { display: grid; grid-template-columns: 1fr 1fr; position: relative; padding: 5px; border-radius: 99px; background: var(--pt-soft); }
.pt-seg::before { content: ""; position: absolute; top: 5px; bottom: 5px; left: 5px; width: calc(50% - 5px); border-radius: 99px; background: var(--pt-card); box-shadow: 0 1px 6px rgba(18,63,115,.08); transition: translate .45s var(--pt-ease); }
.pt-seg[data-on="1"]::before { translate: 100% 0; }
.pt-seg button { position: relative; z-index: 1; height: 36px; border: 0; background: none; font-size: 17px; color: var(--pt-ink2); cursor: pointer; transition: color .3s; }
.pt-seg button[aria-pressed="true"] { color: var(--pt-blue); font-weight: 700; }
.pt-wide { width: 100%; height: 46px; border: 1px solid var(--pt-line); border-radius: 99px; background: var(--pt-card); font-size: 17px; cursor: default; }

/* note libere (post-it) */
.pt-sec.amber.open .pt-ico, .pt-sec.amber .pt-ico { background: rgba(255,183,49,.2); color: #DA9815; }
.pt-sec.amber .pt-sec-h b, .pt-sec.amber .pt-chev, .pt-sec.amber.open .pt-chev { color: #DA9815; }
.pt-notes { gap: 16px; }
.pt-note { width: min(100%, 332px); min-height: 300px; padding: 16px; border-radius: 28px; display: flex; flex-direction: column; justify-content: space-between; gap: 22px; background: linear-gradient(180deg, rgba(255,166,0,.2) 12.8%, rgba(255,183,49,.2) 62%); }
.pt-note small { font-size: 15px; line-height: 20px; color: #DA9815; }
.pt-note p { margin: 0; font-size: 24px; line-height: 31px; color: var(--pt-ink2); }
.pt-note footer { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; font-size: 17px; line-height: 22px; color: var(--pt-ink2); }
.pt-note footer i { flex: none; width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; background: rgba(255,255,255,.6); color: #DA9815; }

/* spot */
.pt-spot { width: 266px; padding: 12px; border-radius: 23px; display: flex; flex-direction: column; justify-content: space-between; gap: 12px; background: var(--pt-card); border: 2px solid var(--c, #489DFE); }
.pt-spot .msg { padding: 12px 10px; border-radius: 16px; background: var(--pt-soft); font-size: 15px; line-height: 20px; }
.pt-spot .img { position: relative; height: 104px; border-radius: 16px; overflow: hidden; }
.pt-spot .img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pt-spot .top { display: grid; gap: 12px; }
.pt-spot footer { display: flex; align-items: center; justify-content: space-between; font-size: 15px; }
.pt-spot footer .cn-mark { font-weight: 700; letter-spacing: -.01em; }
.pt-spot footer .tag { padding: 4px 10px; border-radius: 99px; background: color-mix(in srgb, var(--c, #489DFE) 16%, transparent); color: var(--c, #489DFE); font-weight: 700; }

/* diario personale */
.pt-mood-k { display: grid; gap: 6px; }
.pt-mood-k small { font-size: 15px; letter-spacing: .04em; color: var(--pt-gray); }
.pt-mood-k b { font-size: 20px; line-height: 27px; font-weight: 400; color: var(--pt-navy); }
.pt-bars { display: grid; grid-template-columns: repeat(7, 1fr); gap: 8px; align-items: end; height: 130px; }
.pt-bars span { position: relative; height: 100%; border-radius: 20px 20px 0 0; background: #F8F8FF; display: flex; align-items: flex-end; }
:root[data-theme="dark"] .pt-bars span { background: rgba(255,255,255,.04); }
.pt-bars span i { width: 100%; height: var(--h); border-radius: 20px 20px 0 0; background: var(--c); transition: height .7s var(--pt-ease); }
.pt-bars span i::after { content: ""; position: absolute; left: 50%; bottom: calc(var(--h) - 6px); width: 8px; height: 8px; margin-left: -4px; border-radius: 50%; background: var(--c); box-shadow: 0 0 0 2px #fff, 0 1px 4px rgba(0,0,0,.25); transition: bottom .7s var(--pt-ease); }
.pt-days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 8px; margin-top: -13px; text-align: center; font-size: 15px; color: var(--pt-gray); }
.pt-tip { display: flex; align-items: center; gap: 12px; padding: 12px; border-radius: 25px; background: #F0F7FF; color: var(--pt-navy); font-size: 15px; line-height: 20px; }
:root[data-theme="dark"] .pt-tip { background: rgba(72,157,254,.1); }
.pt-tip i { flex: none; width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; background: var(--pt-card); color: #6ABD3D; }

/* pubblicati */
.pt-post { width: 170px; min-height: 230px; padding: 12px; border-radius: 22px; display: flex; flex-direction: column; justify-content: space-between; gap: 16px; background: var(--pt-soft); font-size: 15px; line-height: 20px; }
.pt-post small { color: var(--pt-gray); }
.pt-post.img { padding: 0; overflow: hidden; position: relative; color: #fff; }
.pt-post.img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.pt-post.img::after { content: ""; position: absolute; inset: 40% 0 0; background: linear-gradient(transparent, rgba(0,0,0,.6)); }
.pt-post.img span { position: relative; z-index: 1; margin-top: auto; padding: 12px; }
.pt-post.img small { color: rgba(255,255,255,.8); }

/* esperienze */
.pt-moments { display: flex; gap: 9px; overflow-x: auto; scrollbar-width: none; }
.pt-moments::-webkit-scrollbar { display: none; }
.pt-moments img { flex: none; width: 76px; height: 76px; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 2px var(--pt-card), 0 0 0 4px var(--pt-blue-soft); margin: 4px; }
.pt-k20 { margin: 0; font-size: 20px; line-height: 27px; color: var(--pt-blue); }
.pt-tickets { display: grid; gap: 12px; }
.pt-ticket { display: flex; align-items: center; gap: 12px; padding: 12px; border-radius: 25px; background: var(--pt-card); box-shadow: 0 0 0 1px var(--pt-line); }
.pt-ticket img { flex: none; width: 81px; height: 81px; border-radius: 20px; object-fit: cover; }
.pt-ticket > span { flex: 1; min-width: 0; display: grid; gap: 8px; }
.pt-ticket .when { display: flex; justify-content: space-between; gap: 6px; font-size: 15px; }
.pt-ticket .when em { font-style: normal; color: var(--pt-gray); white-space: nowrap; }
.pt-ticket b { font-size: 17px; line-height: 22px; font-weight: 400; }

/* salvati / correlati */
.pt-card2 { width: 200px; display: grid; gap: 10px; }
.pt-card2 .slot { position: relative; height: 140px; border-radius: 22px; overflow: hidden; background: var(--pt-soft); }
.pt-card2 .slot img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pt-card2 .slot i { position: absolute; top: 8px; right: 8px; width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: rgba(255,255,255,.85); color: var(--pt-blue); }
.pt-card2 .slot i svg { width: 16px; height: 16px; fill: currentColor; stroke: none; }
.pt-card2 small { font-size: 13px; color: var(--pt-blue); font-weight: 700; }
.pt-card2 b { font-size: 16px; line-height: 21px; font-weight: 500; }
.pt-card2 em { font-style: normal; font-size: 14px; color: var(--pt-gray); }

/* attività del mese */
.pt-cal { display: grid; grid-template-columns: repeat(10, 1fr); gap: 6px; }
.pt-cal i { aspect-ratio: 1; border-radius: 8px; background: color-mix(in srgb, var(--pt-blue) calc(var(--a) * 1%), var(--pt-soft)); }
.pt-cal-ax { display: flex; justify-content: space-between; margin-top: -16px; font-size: 13px; color: var(--pt-gray); }
.pt-out { display: grid; gap: 10px; padding: 14px; border-radius: 25px; background: #F0F7FF; color: var(--pt-navy); }
:root[data-theme="dark"] .pt-out { background: rgba(72,157,254,.1); }
.pt-out small { font-size: 15px; }
.pt-out b { font-size: 26px; line-height: 30px; font-weight: 500; }
.pt-prog { height: 8px; border-radius: 99px; background: rgba(72,157,254,.18); overflow: hidden; }
.pt-prog i { display: block; height: 100%; width: 70%; border-radius: inherit; background: linear-gradient(90deg, #6ABD3D, #99FEA3); }
.pt-out em { font-style: normal; font-size: 15px; color: var(--pt-gray); }

/* azienda: orari, stato */
.pt-state { font-weight: 700; color: #34A853; }
.pt-state.soon { color: #E08A00; }
.pt-state.closed { color: #E8453C; }
.pt-hours { display: grid; gap: 0; }
.pt-hours div { display: flex; justify-content: space-between; padding: 10px 0; font-size: 17px; border-top: 1px solid var(--pt-line); color: var(--pt-gray); }
.pt-hours div:first-child { border-top: 0; }
.pt-hours div.today { color: var(--pt-ink); font-weight: 700; }
.pt-today { display: grid; gap: 6px; padding: 14px; border-radius: 25px; background: var(--pt-soft); }
.pt-today small { font-size: 15px; color: var(--pt-gray); }
.pt-today b { font-size: 20px; line-height: 26px; font-weight: 500; }
.pt-row .go { margin-left: auto; flex: none; width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: var(--pt-blue-soft); color: var(--pt-blue); }
.pt-row .go svg { width: 18px; height: 18px; }

/* bacheca */
.pt-sort { display: flex; justify-content: space-between; align-items: center; font-size: 15px; color: var(--pt-gray); }
.pt-sort b { color: var(--pt-blue); }
.pt-board { display: grid; gap: 10px; }
.pt-board div { display: flex; align-items: center; gap: 12px; padding: 12px; border-radius: 22px; background: var(--pt-soft); }
.pt-board img { flex: none; width: 56px; height: 56px; border-radius: 16px; object-fit: cover; }
.pt-board span { display: grid; gap: 3px; }
.pt-board b { font-size: 17px; font-weight: 500; }
.pt-board small { font-size: 14px; color: var(--pt-gray); }

/* in evidenza */
.pt-feat { position: relative; border-radius: 25px; overflow: hidden; aspect-ratio: 16 / 10; color: #fff; }
.pt-feat img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.pt-feat::after { content: ""; position: absolute; inset: 30% 0 0; background: linear-gradient(transparent, rgba(0,0,0,.66)); }
.pt-feat > .cap { position: absolute; z-index: 1; left: 16px; right: 16px; bottom: 14px; display: grid; gap: 4px; }
.pt-feat small { font-size: 14px; opacity: .85; }
.pt-feat b { font-size: 20px; line-height: 25px; font-weight: 500; }
.pt-feat .tag { position: absolute; z-index: 1; top: 12px; left: 12px; padding: 6px 10px; border-radius: 99px; background: rgba(255,255,255,.88); color: var(--pt-blue); font-size: 13px; font-weight: 700; }

/* recensioni */
.pt-score { display: flex; align-items: center; gap: 16px; }
.pt-score > b { font-size: 48px; line-height: 1; font-weight: 500; letter-spacing: -.02em; }
.pt-score span { display: grid; gap: 4px; }
.pt-stars { color: #FFB731; letter-spacing: 2px; font-size: 17px; }
.pt-score small { font-size: 15px; color: var(--pt-gray); }
.pt-crit { display: grid; gap: 12px; }
.pt-crit div { display: grid; grid-template-columns: 1fr auto; gap: 6px 10px; font-size: 15px; }
.pt-crit div em { font-style: normal; font-weight: 700; }
.pt-crit div i { grid-column: 1 / -1; height: 6px; border-radius: 99px; background: var(--pt-soft); overflow: hidden; }
.pt-crit div i::before { content: ""; display: block; height: 100%; width: var(--v); border-radius: inherit; background: var(--pt-blue); }
.pt-rev { display: grid; gap: 8px; padding: 14px; border-radius: 22px; background: var(--pt-soft); }
.pt-rev header { display: flex; align-items: center; gap: 10px; }
.pt-rev header i { flex: none; width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: var(--pt-blue-soft); color: var(--pt-blue); font: 700 13px/1 var(--f-body); font-style: normal; }
.pt-rev header span { display: grid; gap: 2px; font-size: 15px; }
.pt-rev header small { color: var(--pt-gray); font-size: 13px; }
.pt-rev header .pt-stars { margin-left: auto; font-size: 14px; }
.pt-rev b { font-size: 17px; font-weight: 500; }
.pt-rev p { margin: 0; font-size: 15px; line-height: 21px; color: var(--pt-ink2); }

/* team */
.pt-team { display: grid; gap: 12px; }
.pt-team .pt-row i.av { flex: none; width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; background: var(--pt-blue-soft); color: var(--pt-blue); font: 700 15px/1 var(--f-body); font-style: normal; }

/* campagne */
.pt-kpis { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.pt-kpis div { padding: 12px 10px; border-radius: 20px; background: var(--pt-soft); display: grid; gap: 4px; }
.pt-kpis b { font-size: 22px; font-weight: 500; }
.pt-kpis small { font-size: 13px; color: var(--pt-gray); }
.pt-spark { width: 100%; height: 70px; display: block; }

/* foto a schermo intero */
.pt-lb { position: fixed; inset: 0; z-index: 60; display: grid; place-items: center; padding: 16px; background: rgba(5,10,20,0); -webkit-backdrop-filter: blur(0); backdrop-filter: blur(0); transition: background-color .4s ease, backdrop-filter .4s ease, -webkit-backdrop-filter .4s ease; }
.pt-lb.on { background: rgba(5,10,20,.86); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.pt-lb-in { width: min(100%, 440px); display: grid; gap: 14px; opacity: 0; transform: scale(.96); transition: opacity .4s ease, transform .5s var(--pt-ease); }
.pt-lb.on .pt-lb-in { opacity: 1; transform: none; }
.pt-lb-img { border-radius: 26px; overflow: hidden; max-height: 72vh; }
.pt-lb-img img { width: 100%; max-height: 72vh; object-fit: contain; display: block; background: #000; }
.pt-lb-bar { display: flex; align-items: center; gap: 12px; color: #fff; }
.pt-lb-bar p { flex: 1; margin: 0; font-size: 17px; line-height: 23px; }
.pt-save { flex: none; display: inline-flex; align-items: center; gap: 6px; height: 40px; padding: 0 14px; border: 0; border-radius: 99px; background: rgba(255,255,255,.14); color: #fff !important; cursor: pointer; transition: background-color .3s ease; }
.pt-save[aria-pressed="true"] { background: var(--pt-blue); }
.pt-save svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linejoin: round; transition: fill .3s; }
.pt-save[aria-pressed="true"] svg { fill: currentColor; }
.pt-lb-x { position: absolute; top: calc(14px + env(safe-area-inset-top, 0px)); right: 16px; width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgba(255,255,255,.14); color: #fff !important; font-size: 26px; line-height: 1; cursor: pointer; }

/* animazione iniziale: un dito compone il profilo spostando i widget */
.pt-demo { margin: 0; padding: 22px 14px 24px; border-radius: 34px; background: linear-gradient(180deg, rgba(72,157,254,.09), rgba(72,157,254,.02)); box-shadow: inset 0 0 0 1px rgba(72,157,254,.16); }
.dm-k { margin: 0 0 8px; text-align: center; font: 500 .7rem/1 var(--nd-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--pt-blue); }
.pt-sep { display: flex; align-items: center; gap: 14px; margin: clamp(40px, 9vw, 60px) 4px 22px; font: 500 .7rem/1 var(--nd-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--pt-gray); }
.pt-sep::before, .pt-sep::after { content: ""; flex: 1; height: 1px; background: var(--pt-line); }
.dm-av { flex: none; width: 36px; height: 36px; border-radius: 50%; background: linear-gradient(135deg, #DCE9F8, #B9D3F2); box-shadow: 0 0 0 2.5px var(--pt-card); }
.dm-list li .lk { margin-left: auto; width: 13px; height: 13px; fill: none; stroke: var(--pt-gray); stroke-width: 2; flex: none; }
.dm-say { min-height: 22px; margin: 0 0 14px; text-align: center; font-size: 15px; line-height: 22px; color: var(--pt-ink2); transition: opacity .25s ease, translate .3s var(--pt-ease); }
.dm-say.out { opacity: 0; translate: 0 5px; }
.dm-stage { position: relative; display: grid; grid-template-columns: 1.3fr 1fr; gap: 12px; align-items: stretch; max-width: 440px; margin: 0 auto; }
.dm-phone { background: var(--pt-card); border-radius: 26px; overflow: hidden; padding-bottom: 4px; box-shadow: var(--pt-shadow), 0 20px 40px -26px rgba(18,63,115,.4); }
.dm-cover { height: 48px; background: linear-gradient(120deg, #9CC9FF, #489DFE 55%, #2F6FDE); }
.dm-head { display: flex; align-items: flex-start; gap: 8px; padding: 0 10px; margin-top: -16px; }
.dm-head img, .dm-head .dm-av { flex: none; width: 36px; height: 36px; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 2.5px var(--pt-card); }
.dm-head img.logo { border-radius: 11px; }
.dm-head span { display: grid; min-width: 0; padding-top: 18px; }
.dm-head b { font-size: 12.5px; line-height: 16px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dm-head small { font-size: 11px; line-height: 14px; color: var(--pt-gray); }
.dm-list { list-style: none; margin: 0; padding: 10px 8px 0; }
.dm-list li, .dm-ghost { box-sizing: border-box; height: 30px; margin: 0 0 6px; display: flex; align-items: center; gap: 7px; padding: 0 10px; border-radius: 11px; background: var(--pt-soft); color: var(--pt-ink); font-size: 12px; font-weight: 600; white-space: nowrap; overflow: hidden; }
.dm-list li span, .dm-ghost span { overflow: hidden; text-overflow: ellipsis; }
.dm-list li svg.ic, .dm-ghost svg.ic { width: 15px; height: 15px; stroke-width: 2; color: var(--pt-blue); }
.dm-tray { padding: 12px 8px 6px; border-radius: 24px; border: 1.5px dashed rgba(72,157,254,.4); background: rgba(72,157,254,.05); }
.dm-tray .dm-list { padding: 0; }
.dm-tray li { background: var(--pt-card); box-shadow: 0 1px 4px rgba(18,63,115,.08); }
.dm-t { margin: 0 0 10px 4px; font: 500 10px/1 var(--nd-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--pt-blue); }
.dm-gone { visibility: hidden; }
.dm-ghost { position: absolute; z-index: 5; margin: 0; background: var(--pt-card) !important; box-shadow: 0 14px 28px rgba(18,63,115,.24); pointer-events: none; transform-origin: 22px 50%; }
.dm-new { animation: dm-flash 1.2s ease; }
@keyframes dm-flash { 0%, 35% { background: var(--pt-blue-soft); } 100% { background: var(--pt-soft); } }
.dm-tray .dm-new { animation: none; }
.dm-hand { position: absolute; left: -10px; top: -3px; z-index: 6; width: 32px; height: 32px; pointer-events: none; opacity: 0; }
.dm-hand svg { display: block; width: 100%; height: 100%; fill: #fff; stroke: #0B1B33; stroke-width: 1.5; stroke-linejoin: round; filter: drop-shadow(0 4px 8px rgba(11,27,51,.3)); transform-origin: 30% 10%; }
.dm-replay { display: flex; align-items: center; gap: 6px; margin: 16px auto 0; height: 36px; padding: 0 16px; border-radius: 99px; border: 1px solid var(--pt-line); background: var(--pt-card); color: var(--pt-blue) !important; font-size: 14px !important; font-weight: 700 !important; cursor: pointer; }
.dm-replay[hidden] { display: none; }

@media (min-width: 700px) {
  .pt-app { border-radius: 48px; }
}
@media (prefers-reduced-motion: reduce) {
  .proto *, .proto *::before, .proto *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* icone più grandi, come nelle app di oggi */
.pt-ico svg.ic { width: 26px; height: 26px; stroke-width: 1.6; }
.pt-row .pt-ico svg.ic { width: 24px; }

/* attività del mese: equilibrio tra fuori e casa */
.pt-bal { display: grid; gap: 12px; padding: 14px; border-radius: 25px; background: var(--pt-soft); }
.pt-bal > div { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-size: 15px; }
.pt-bal > div span { display: inline-flex; align-items: center; gap: 8px; color: var(--pt-ink2); }
.pt-bal > div span svg.ic { width: 20px; height: 20px; }
.pt-bal > div:first-child svg.ic { color: #6ABD3D; }
.pt-bal > div:nth-child(2) svg.ic { color: #7B6CF6; }
.pt-bal b { font-size: 17px; font-weight: 600; }
.pt-split { margin: 2px 0 0; height: 8px; border-radius: 99px; background: #B7AEFB; overflow: hidden; }
.pt-split i { display: block; height: 100%; width: var(--v); background: #8BD36A; border-radius: 99px 0 0 99px; }
.pt-tip.calm { background: rgba(123,108,246,.1); color: #3E347F; }
.pt-tip.calm i { color: #7B6CF6; }
:root[data-theme="dark"] .pt-tip.calm { color: #CBC5FF; }

/* contatti dell'attività: mappa, indirizzo e quattro azioni rapide */
.pt-map { position: relative; height: 140px; border-radius: 25px; overflow: hidden; display: grid; place-items: center;
  background:
    linear-gradient(28deg, transparent 46%, #fff 46%, #fff 50%, transparent 50%),
    linear-gradient(-62deg, transparent 58%, #fff 58%, #fff 61%, transparent 61%),
    linear-gradient(90deg, transparent 30%, rgba(255,255,255,.8) 30%, rgba(255,255,255,.8) 32%, transparent 32%),
    radial-gradient(circle at 80% 25%, #CDE8C4 0 18%, transparent 19%),
    radial-gradient(circle at 15% 80%, #CDE8C4 0 14%, transparent 15%),
    #E7EDF4; }
:root[data-theme="dark"] .pt-map { filter: brightness(.45) saturate(.8); }
.pt-map-pin { position: relative; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--pt-blue); color: #fff; box-shadow: 0 6px 16px rgba(72,157,254,.45); }
.pt-map-pin::before { content: ""; position: absolute; inset: -10px; border-radius: 50%; background: rgba(72,157,254,.22); animation: pt-pulse 2.4s ease-out infinite; }
.pt-map-pin svg.ic { width: 22px; height: 22px; stroke: #fff; }
@keyframes pt-pulse { 0% { transform: scale(.6); opacity: 1; } 100% { transform: scale(1.5); opacity: 0; } }
.pt-addr { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: -13px; }
.pt-addr > span:first-child { display: grid; gap: 3px; min-width: 0; }
.pt-addr b { font-size: 17px; }
.pt-addr em { font-style: normal; font-size: 15px; color: var(--pt-gray); }
.pt-addr-go { flex: none; display: inline-flex; align-items: center; gap: 6px; height: 40px; padding: 0 14px; border-radius: 99px; background: var(--pt-blue); color: #fff; font-size: 15px; font-weight: 700; }
.pt-addr-go svg.ic { width: 16px; height: 16px; stroke-width: 2; }
.pt-acts { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: -13px; }
.pt-act { display: grid; gap: 3px; padding: 14px; border-radius: 22px; background: var(--pt-soft); min-width: 0; }
.pt-act i { width: 40px; height: 40px; margin-bottom: 8px; border-radius: 50%; display: grid; place-items: center; background: var(--pt-card); color: var(--pt-blue); }
.pt-act i svg.ic { width: 22px; height: 22px; }
.pt-act b { font-size: 16px; }
.pt-act em { font-style: normal; font-size: 13px; color: var(--pt-gray); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (prefers-reduced-motion: reduce) { .pt-map-pin::before { animation: none; } }

/* Saluto dell'area privata: sopra la foto, con una sfumatura che lo rende leggibile */
.pt-hello { position: relative; padding: 6px 4px 8px; }
.pt-hello::before { content: ""; position: absolute; z-index: -1; inset: -46px -16px -6px; background: linear-gradient(to bottom, color-mix(in srgb, var(--pt-bg) 0%, transparent), color-mix(in srgb, var(--pt-bg) 82%, transparent) 42%, var(--pt-bg) 72%); pointer-events: none; }
.pt-hello h2 { color: var(--pt-ink); text-shadow: 0 1px 12px color-mix(in srgb, var(--pt-bg) 70%, transparent); }
.pt-hello p { color: var(--pt-ink2); }

/* Icone */
.pt-card2 .slot i svg { width: 16px; height: 16px; }
/* chevron, info e chiusura */
.pt-chev { width: 22px; height: 22px; margin-top: -11px; right: 4px; }
.pt-chev svg.ic { width: 22px; height: 22px; stroke-width: 2; }
.pt-info-btn i { position: relative; width: 26px; height: 26px; background: var(--pt-card); color: var(--pt-blue); font: inherit; }
.pt-sec.info .pt-info-btn i { transform: none; }
.pt-info-btn i svg.ic { position: absolute; inset: 0; width: 22px; height: 22px; margin: auto; transition: opacity .3s ease, transform .45s var(--pt-ease); }
.pt-info-btn i svg.ic + svg.ic { opacity: 0; transform: rotate(-90deg); }
.pt-info-btn i::after { content: none !important; }
.pt-sec.info .pt-info-btn i svg.ic:first-child { opacity: 0; transform: rotate(90deg); }
.pt-sec.info .pt-info-btn i svg.ic + svg.ic { opacity: 1; transform: none; }
.pt-lb-x { display: grid; place-items: center; }
.pt-lb-x svg.ic { width: 22px; height: 22px; stroke: #fff; }
/* stelle */
.pt-stars { display: inline-flex; gap: 2px; letter-spacing: 0; }
.pt-rev header .pt-stars svg { width: 13px; height: 13px; }

/* Atmosfera: riepilogo scritto da Nia, oppure il box dove descriverla */
.pt-atm-sum { display: grid; gap: 10px; }
.pt-atm-sum p { margin: 0; font-size: 16px; line-height: 23px; color: var(--pt-ink2); }
.pt-atm-sum p b { color: var(--pt-ink); }
.pt-atm-t { font-size: 17px !important; font-weight: 700; color: var(--pt-ink) !important; }
.pt-atm-sum .pt-wide, .pt-atm-go { display: inline-flex; align-items: center; justify-content: center; gap: 8px; cursor: pointer; }
.pt-atm-sum .pt-wide { margin-top: 6px; }
.pt-atm-sum .pt-wide svg.ic, .pt-atm-go svg.ic { width: 18px; height: 18px; }
.pt-atm-in { display: grid; gap: 12px; }
.pt-atm-in[hidden], .pt-atm-sum[hidden] { display: none; }
.pt-atm-k { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 15px; font-weight: 700; }
.pt-atm-k img { width: 22px; height: 22px; border-radius: 50%; }
.pt-atm-box { min-height: 120px; padding: 14px 16px; border-radius: 22px; background: var(--pt-soft); font-size: 16px; line-height: 23px; color: var(--pt-ink); outline: none; box-shadow: inset 0 0 0 1px var(--pt-line); transition: box-shadow .2s ease; }
.pt-atm-box:focus { box-shadow: inset 0 0 0 2px var(--pt-ink); }
.pt-atm-box:empty::before { content: attr(data-ph); color: var(--pt-gray); }
.pt-atm-go { height: 46px; border: 0; border-radius: 99px; background: var(--pt-ink); color: var(--pt-card) !important; font-size: 16px; font-weight: 700; }
.pt-atm-go.busy { opacity: .6; pointer-events: none; }
.pt-score .pt-stars, .pt-rev header .pt-stars { display: inline-flex; flex-direction: row; gap: 2px; }
.pt-stars svg { width: 16px; height: 16px; fill: #FFB731; stroke: none; }
.pt-stars svg.off { fill: color-mix(in srgb, #FFB731 25%, transparent); }
/* Icone Phosphor (tratto spesso): sono forme piene, non linee */
.proto svg.ic.ph { fill: currentColor; stroke: none; }
.pt-ico svg.ic.ph { width: 25px; height: 25px; }
.pt-row .pt-ico svg.ic.ph, .pt-act i svg.ic.ph { width: 22px; height: 22px; }
.pt-sec-h > .pt-ico { background: #F5F5F5; }
.pt-sec.open .pt-sec-h > .pt-ico { background: #E4F1FF; color: var(--pt-blue); }
:root[data-theme="dark"] .pt-sec-h > .pt-ico { background: var(--pt-soft); }
:root[data-theme="dark"] .pt-sec.open .pt-sec-h > .pt-ico { background: var(--pt-blue-soft); }
.pt-ok svg.ic.ph { width: 14px; height: 14px; fill: #fff; }
.pt-chev svg.ic.ph { width: 18px; height: 18px; margin: 2px; }
.pt-info-btn i svg.ic.ph { width: 20px; height: 20px; }
.pt-lb-x svg.ic.ph { fill: #fff; width: 20px; height: 20px; }
.dm-list li svg.ic.ph, .dm-ghost svg.ic.ph { width: 16px; height: 16px; }
.dm-list li svg.ic.ph.lk { width: 13px; height: 13px; fill: var(--pt-gray); margin-left: auto; }
.pt-map-pin svg.ic.ph { fill: #fff; }
/* Icone Solar (480 Design, CC BY 4.0): tratto sottile e arrotondato */
.proto svg.ic.so { fill: none; stroke: none; }
.pt-ico svg.ic.so { width: 26px; height: 26px; }
.pt-ok svg.ic.ph { width: 14px; height: 14px; }
.pt-chev svg.ic.so { width: 20px; height: 20px; margin: 1px; }
.pt-info-btn i svg.ic.so { width: 22px; height: 22px; }
.dm-list li svg.ic.so, .dm-ghost svg.ic.so { width: 16px; height: 16px; }
.dm-list li svg.ic.so.lk { width: 14px; height: 14px; margin-left: auto; color: var(--pt-gray); }
.pt-map-pin svg.ic.so { color: #fff; }
.pt-addr-go svg.ic.so { width: 18px; height: 18px; }
.pt-stars svg { fill: #FFB731; }
/* righe senza icone: etichetta e valore, separati da una linea */
.pt-row > span { gap: 3px; }
.pt-act { padding: 16px; gap: 4px; }
/* Spot: niente bordo colorato */
.pt-spot { border: 0; background: var(--pt-soft); }
.pt-spot .msg { background: var(--pt-card); }
.pt-spot footer .tag { background: var(--pt-blue-soft); color: var(--pt-blue); }
/* icone dentro le sezioni: senza cerchio attorno */
.pt-ri { flex: none; width: 26px; display: grid; place-items: center; color: var(--pt-blue); }
.pt-ri svg.ic.so { width: 24px; height: 24px; }
.pt-row { gap: 14px; }
.pt-act i { width: auto; height: auto; margin-bottom: 10px; background: none; display: block; color: var(--pt-blue); }
.pt-act i svg.ic.so { width: 26px; height: 26px; }
.pt-tip i { width: auto; height: auto; background: none; padding: 0 2px 0 4px; }
.pt-tip i svg.ic.so { width: 26px; height: 26px; }
.pt-tip { color: var(--pt-navy); }
.pt-tip > i { color: #6ABD3D; }
.pt-tip.calm > i { color: #7B6CF6; }
.pt-bal > div span svg.ic.so { width: 22px; height: 22px; }
/* biglietti: bordo interno, non tagliato ai lati */
.pt-ticket { box-shadow: none; border: 1px solid var(--pt-line); }
/* bio: link senza emoji */
.pt-link { display: inline-flex; align-items: center; gap: 6px; margin-top: -6px; font-size: 17px; color: var(--pt-blue); text-decoration: none; justify-self: start; }
.pt-link svg.ic.so { width: 20px; height: 20px; }

/* sezioni tutte alte uguali: titolo e descrizione su una riga */
.pt-sec-h b, .pt-sec-h small { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pt-sec-h { min-height: 46px; }
.pt-note footer i svg.ic.so { width: 22px; height: 22px; }
/* Sponsorizza: una campagna in corso */
.pt-camp { display: grid; gap: 14px; padding: 16px; border-radius: 25px; background: var(--pt-soft); }
.pt-camp-h { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.pt-camp-on { display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; border-radius: 99px; background: rgba(52,168,83,.14); color: #1E7A3C; font-size: 13px; font-weight: 700; }
.pt-camp-on::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #34A853; }
.pt-camp-h small { font-size: 13px; color: var(--pt-gray); }
.pt-camp > b { font-size: 18px; line-height: 23px; font-weight: 600; }
.pt-camp .pt-rows .pt-row + .pt-row { border-top-color: color-mix(in srgb, var(--pt-ink) 8%, transparent); }
.pt-camp-r { display: grid; grid-template-columns: 1fr auto; gap: 8px; align-items: baseline; font-size: 15px; color: var(--pt-ink2); }
.pt-camp-r b { font-size: 17px; color: var(--pt-ink); }
.pt-camp-r b small { font-size: 13px; font-weight: 400; color: var(--pt-gray); }
.pt-camp-r .pt-prog { grid-column: 1 / -1; margin: 0; background: rgba(72,157,254,.18); }
.pt-camp-r .pt-prog i { background: var(--pt-blue); }
/* Atmosfera: solo il tasto nero di Nia */
.pt-atm-go { width: 100%; }
.pt-atm-go[hidden], .pt-atm-sum[hidden] { display: none; }
/* la spiegazione non occupa spazio finché non si apre: niente buchi bianchi */
.pt-stack { position: relative; transition: min-height .45s cubic-bezier(.22,1,.36,1); }
.pt-stack > .pt-info { position: absolute; top: 0; left: 0; right: 0; }
.pt-k20 { font-size: 17px; line-height: 22px; font-weight: 600; color: var(--pt-ink); }
/* I widget: sotto il profilo, con titolo e breve spiegazione */
.pt-wid { margin-top: clamp(48px, 12vw, 72px); }
.pt-wid-t { margin: 0 4px; font: 400 clamp(1.7rem, 7vw, 2.2rem)/1.1 var(--nd-display); color: var(--pt-ink); text-align: center; }
.pt-wid-t em { display: block; margin-top: 4px; font-family: var(--f-body); font-style: italic; font-weight: 600; color: var(--pt-blue); letter-spacing: -.01em; }
.pt-wid-p { margin: 14px auto 22px; max-width: 34ch; text-align: center; font-size: 16px; line-height: 23px; color: var(--pt-ink2); }
/* "Rivedi" compare con una dissolvenza */
.dm-replay { display: flex; opacity: 0; transform: translateY(8px); pointer-events: none; transition: opacity .5s ease, transform .6s cubic-bezier(.22,1,.36,1); }
.dm-replay.on { opacity: 1; transform: none; pointer-events: auto; }
