/* =========================================================================
   LINKDOC - Pagina publica (a "bio") do paciente. Mobile-first.
   ========================================================================= */
.bio-wrap { max-width: 460px; margin: 0 auto; min-height: 100vh; padding: 0 18px 40px; position: relative; }
.bio-wrap::before { content: ''; position: fixed; top: -120px; left: 50%; transform: translateX(-50%); width: 520px; height: 320px; background: radial-gradient(circle, rgba(142,168,255,.20), transparent 70%); pointer-events: none; z-index: 0; }
.bio-inner { position: relative; z-index: 1; }

/* Header */
.bio-head { text-align: center; padding: 40px 0 20px; }
.bio-avatar { width: 96px; height: 96px; border-radius: 30px; margin: 0 auto 16px; background: var(--accent-gradient); display: grid; place-items: center; font-size: 40px; font-weight: var(--fw-extra); color: #fff; box-shadow: var(--accent-glow); }
.bio-name { font-size: 24px; font-weight: var(--fw-extra); letter-spacing: var(--ls-tight); }
.bio-verified { display: inline-flex; vertical-align: middle; margin-left: 6px; color: var(--accent-300); }
.bio-spec { color: var(--text-secondary); font-size: 14px; margin-top: 4px; }
.bio-headline { color: var(--text-primary); font-size: 15px; margin-top: 14px; line-height: 1.5; opacity: .92; }
.bio-councils { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; margin-top: 14px; }
.bio-council { font-size: 11px; color: var(--text-tertiary); background: var(--surface-1); border: 1px solid var(--border-subtle); padding: 4px 10px; border-radius: 999px; }
.bio-social { display: flex; gap: 10px; justify-content: center; margin-top: 18px; }
.bio-social a { width: 44px; height: 44px; border-radius: 50%; background: var(--surface-1); border: 1px solid var(--border-subtle); display: grid; place-items: center; color: var(--text-secondary); transition: all var(--dur-base); }
.bio-social a:hover { color: var(--accent-300); border-color: var(--accent-soft-border); transform: translateY(-2px); }

/* Section */
.bio-sec { margin-top: 28px; }
.bio-sec-h { display: flex; align-items: center; gap: 8px; margin-bottom: 14px; padding: 0 4px; }
.bio-sec-h h2 { font-size: 15px; font-weight: var(--fw-bold); }
.bio-sec-h .ic { color: var(--accent-300); display: grid; place-items: center; }
.bio-sec-h .count { margin-left: auto; font-size: 11px; color: var(--text-tertiary); }

/* Hero concierge */
.bio-ai { background: linear-gradient(135deg, var(--accent-600), var(--accent-800)); border-radius: var(--radius-lg); padding: 22px; position: relative; overflow: hidden; box-shadow: var(--accent-glow); }
.bio-ai::after { content: ''; position: absolute; right: -30px; top: -30px; width: 160px; height: 160px; background: radial-gradient(circle, rgba(255,255,255,.18), transparent 70%); }
.bio-ai .ai-badge { display: inline-flex; align-items: center; gap: 6px; background: rgba(255,255,255,.16); color: #fff; font-size: 11px; font-weight: var(--fw-bold); padding: 5px 11px; border-radius: 999px; text-transform: uppercase; letter-spacing: .04em; }
.bio-ai h3 { color: #fff; font-size: 20px; font-weight: var(--fw-extra); letter-spacing: var(--ls-tight); margin: 12px 0 6px; line-height: 1.2; position: relative; }
.bio-ai p { color: rgba(255,255,255,.85); font-size: 13.5px; line-height: 1.5; position: relative; }
.bio-ai .btn { margin-top: 16px; background: #fff; color: var(--accent-700); position: relative; }
.bio-ai .btn:hover { background: rgba(255,255,255,.9); }

/* Service cards */
.svc-grid { display: flex; flex-direction: column; gap: 12px; }
.svc-card { display: flex; gap: 13px; background: var(--surface-1); border: 1px solid var(--border-subtle); border-radius: var(--radius-md); padding: 14px; align-items: flex-start; cursor: pointer; transition: border-color var(--dur-base), transform var(--dur-base) var(--ease-out); text-align: left; width: 100%; color: var(--text-primary); }
.svc-info .n { color: var(--text-primary); }
.svc-card:hover { border-color: var(--accent-soft-border); transform: translateY(-2px); }
.svc-thumb { width: 54px; height: 54px; border-radius: 14px; flex-shrink: 0; display: grid; place-items: center; color: #fff; overflow: hidden; }
.svc-thumb svg { width: 24px; height: 24px; }
.svc-thumb img { width: 100%; height: 100%; object-fit: cover; }
.svc-info { flex: 1; min-width: 0; }
.svc-info .n { font-weight: var(--fw-semibold); font-size: 14px; line-height: 1.3; }
.svc-info .d { font-size: 12px; color: var(--text-tertiary); margin-top: 3px; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }
.svc-info .m { display: flex; flex-wrap: wrap; gap: 5px 10px; margin-top: 8px; }
.svc-info .m span { font-size: 11px; color: var(--text-secondary); display: inline-flex; align-items: center; gap: 3px; white-space: nowrap; flex-shrink: 0; }
.svc-go { color: var(--text-tertiary); flex-shrink: 0; align-self: center; }
/* Servico com foto de capa */
.svc-card.cover { flex-direction: column; align-items: stretch; gap: 0; padding: 0; overflow: hidden; }
.svc-card.cover:hover { transform: translateY(-3px); border-color: var(--accent-soft-border); }
.svc-cover { display: block; width: 100%; height: 140px; background: var(--surface-2); }
.svc-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.svc-card.cover .svc-cover-info { padding: 14px 16px 16px; display: flex; flex-direction: column; min-width: 0; }
.svc-card.cover .svc-cover-info .n { font-weight: var(--fw-semibold); font-size: 15px; }
.svc-card.cover .svc-cover-info .d { font-size: 12.5px; color: var(--text-tertiary); margin-top: 3px; line-height: 1.4; }
.svc-card.cover .svc-cover-info .m { display: flex; gap: 10px; margin-top: 10px; flex-wrap: wrap; }
.svc-card.cover .svc-cover-info .m span { font-size: 11.5px; color: var(--text-secondary); display: inline-flex; align-items: center; gap: 3px; }

/* Instagram feed */
.ig-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.ig-post { position: relative; aspect-ratio: 1; border-radius: 12px; overflow: hidden; border: 0; cursor: pointer; display: grid; place-items: center; color: rgba(255,255,255,.9); transition: transform var(--dur-fast); }
.ig-post:hover { transform: scale(1.03); }
.ig-post img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ig-ic { opacity: .85; }
.ig-likes { position: absolute; left: 7px; bottom: 6px; display: inline-flex; align-items: center; gap: 3px; font-size: 10px; font-weight: 700; color: #fff; text-shadow: 0 1px 4px rgba(0,0,0,.5); }
.ig-likes svg { width: 11px; height: 11px; }

/* Link buttons */
.bio-link { display: flex; align-items: center; gap: 14px; width: 100%; text-align: left; background: var(--surface-1); border: 1px solid var(--border-subtle); border-radius: var(--radius-md); padding: 15px 16px; margin-bottom: 10px; transition: border-color var(--dur-base), transform var(--dur-base); cursor: pointer; color: var(--text-primary); }
.bio-link:hover { border-color: var(--accent-soft-border); transform: translateY(-2px); }
.bio-link .l-ic { color: var(--accent-300); flex-shrink: 0; display: grid; place-items: center; }
.bio-link .l-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.bio-link .l-label { font-weight: var(--fw-semibold); font-size: 14px; }
.bio-link .l-val { font-size: 11px; color: var(--text-tertiary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bio-link .l-go { flex-shrink: 0; color: var(--text-tertiary); }

/* Content cards */
.content-row { display: flex; gap: 12px; overflow-x: auto; padding-bottom: 6px; scrollbar-width: none; }
.content-row::-webkit-scrollbar { display: none; }
.content-card { flex: 0 0 200px; background: var(--surface-1); border: 1px solid var(--border-subtle); border-radius: var(--radius-md); overflow: hidden; cursor: pointer; transition: border-color var(--dur-base); }
.content-card:hover { border-color: var(--accent-soft-border); }
.content-thumb { height: 110px; display: grid; place-items: center; color: #fff; position: relative; }
.content-thumb .play { width: 40px; height: 40px; border-radius: 50%; background: rgba(0,0,0,.4); display: grid; place-items: center; backdrop-filter: blur(4px); }
.content-meta { padding: 12px; }
.content-meta .t { font-size: 13px; font-weight: var(--fw-semibold); line-height: 1.3; }
.content-meta .s { font-size: 11px; color: var(--text-tertiary); margin-top: 4px; }

/* Lead wall */
.leadwall { background: var(--surface-1); border: 1px solid var(--border-subtle); border-radius: var(--radius-lg); padding: 22px; text-align: center; }
.leadwall .lw-ic { width: 48px; height: 48px; border-radius: 14px; background: var(--accent-soft); color: var(--accent-300); display: grid; place-items: center; margin: 0 auto 12px; }
.leadwall h3 { font-size: 17px; font-weight: var(--fw-bold); }
.leadwall p { font-size: 13px; color: var(--text-secondary); margin-top: 6px; }

/* FAQ */
.faq-item { background: var(--surface-1); border: 1px solid var(--border-subtle); border-radius: var(--radius-md); margin-bottom: 10px; overflow: hidden; }
.faq-q { display: flex; align-items: center; gap: 12px; padding: 15px 16px; cursor: pointer; font-weight: var(--fw-semibold); font-size: 14px; }
.faq-q .q-ic { margin-left: auto; color: var(--text-tertiary); transition: transform var(--dur-base); flex-shrink: 0; }
.faq-item.open .faq-q .q-ic { transform: rotate(180deg); color: var(--accent-300); }
.faq-a { max-height: 0; overflow: hidden; transition: max-height var(--dur-base) var(--ease-out); }
.faq-a-inner { padding: 0 16px 16px; font-size: 13px; color: var(--text-secondary); line-height: 1.5; }

/* Compliance footer */
.bio-foot { margin-top: 36px; padding: 22px 16px; border-top: 1px solid var(--divider); text-align: center; }
.bio-foot .disc { font-size: 11px; color: var(--text-tertiary); line-height: 1.5; }
.bio-foot .councils { margin-top: 12px; display: flex; flex-direction: column; gap: 3px; }
.bio-foot .councils span { font-size: 10.5px; color: var(--text-tertiary); }
.bio-foot .powered { margin-top: 16px; font-size: 11px; color: var(--text-tertiary); }
.bio-foot .powered b { color: var(--accent-300); font-weight: var(--fw-bold); }

/* Fullscreen concierge overlay (within page) */
.cc-screen { position: fixed; inset: 0; z-index: var(--z-modal); background: var(--bg-canvas); display: flex; flex-direction: column; transform: translateY(100%); transition: transform var(--dur-slow) var(--ease-out); }
.cc-screen.open { transform: none; }
.cc-screen-head { display: flex; align-items: center; gap: 12px; padding: 16px 18px; border-bottom: 1px solid var(--divider); }
.cc-screen-head .av { width: 38px; height: 38px; border-radius: 50%; background: var(--accent-gradient); color: #fff; display: grid; place-items: center; box-shadow: var(--accent-glow); }
.cc-screen-head .who .n { font-weight: var(--fw-bold); font-size: 15px; }
.cc-screen-head .who .s { font-size: 11px; color: var(--success); display: flex; align-items: center; gap: 5px; }
.cc-screen-head .who .s::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--success); }
.cc-screen-body { flex: 1; overflow-y: auto; padding: 18px; max-width: 460px; width: 100%; margin: 0 auto; }

/* Scheduling wizard */
.sched-days { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 6px; scrollbar-width: none; }
.sched-days::-webkit-scrollbar { display: none; }
.sched-day { flex: 0 0 auto; min-width: 62px; text-align: center; background: var(--surface-2); border: 1px solid var(--border-subtle); border-radius: 14px; padding: 10px 4px; cursor: pointer; transition: all var(--dur-fast); }
.sched-day.active { background: var(--accent); border-color: transparent; box-shadow: var(--accent-glow); }
.sched-day .dw { font-size: 11px; color: var(--text-tertiary); text-transform: uppercase; }
.sched-day.active .dw { color: rgba(255,255,255,.8); }
.sched-day .dn { font-size: 18px; font-weight: var(--fw-bold); margin-top: 2px; }
.sched-slots { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 16px; }
.sched-slot { padding: 11px; text-align: center; background: var(--surface-2); border: 1px solid var(--border-subtle); border-radius: 12px; font-size: 13px; font-weight: var(--fw-semibold); cursor: pointer; transition: all var(--dur-fast); }
.sched-slot:hover { border-color: var(--accent-soft-border); }
.sched-slot.active { background: var(--accent); color: #fff; border-color: transparent; }
.sched-slot.taken { opacity: .3; pointer-events: none; text-decoration: line-through; }
.sched-success { text-align: center; padding: 20px 0; }
.sched-success .ok { width: 72px; height: 72px; border-radius: 50%; background: var(--success-soft); color: var(--success); display: grid; place-items: center; margin: 0 auto 16px; }
.sched-wa { background: var(--success-soft); border: 1px solid rgba(87,217,163,.25); border-radius: 12px; padding: 12px 14px; display: flex; align-items: center; gap: 10px; margin-top: 16px; text-align: left; }
.sched-wa .wa-ic { color: var(--success); }
.sched-wa .wa-t { font-size: 12px; color: var(--text-secondary); }
