/* ============================================================
   Portal do Paciente — reskin (design "Painel do Paciente")
   Escopo: #view-portal. Fonte Poppins (já carregada no portal) / Plus Jakarta fallback.
   ============================================================ */
#view-portal .panel-container { max-width: 100%; padding: 0; }
#view-portal { --pp-primary:#405221; --pp-primary2:#5f733b; --pp-ink:#1a2011; }
/* fonte removida: #view-portal ja e .aur e a tipografia sai do kit (Segoe UI).
   Este seletor (1,0,1) vencia o `.aur *` (0,1,1) do aurora-legacy-reset. */

#view-portal .pp-shell { display:flex; gap:16px; align-items:flex-start; }

/* ---- RAIL: removido — o skin Aurora (portal-aurora-skin em servidor.html) cobre .pp-rail* em vidro claro ---- */

/* ---- MAIN ---- */
#view-portal .pp-main { flex:1; min-width:0; display:flex; flex-direction:column; gap:16px; }

/* HEADER */
#view-portal .pp-header { background:#fff; border:1px solid #e6ecdb; border-radius:22px; padding:14px 20px; display:flex; align-items:center; justify-content:space-between; gap:16px; box-shadow:0 14px 34px rgba(53,66,30,.09); }
#view-portal .pp-header-left { display:flex; align-items:center; gap:14px; min-width:0; }
#view-portal .pp-header-badge { width:46px; height:46px; flex-shrink:0; border-radius:14px; background:linear-gradient(135deg,#405221,#5f733b); color:#fff; display:flex; align-items:center; justify-content:center; box-shadow:0 8px 18px rgba(64,82,33,.32); }
#view-portal .pp-header-kicker { font-size:9px; letter-spacing:1.8px; font-weight:800; color:#5f733b; text-transform:uppercase; }
#view-portal .pp-header-title { font-size:16.5px; font-weight:800; color:#1a2011; line-height:1.15; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
#view-portal .pp-header-right { display:flex; align-items:center; gap:9px; flex-shrink:0; }
#view-portal .pp-user-chip { display:flex; align-items:center; gap:9px; background:#f1f5ea; border:1px solid #e0e7d3; border-radius:13px; padding:6px 12px 6px 8px; cursor:pointer; }
#view-portal .pp-user-chip:hover { background:#e5edd9; }
#view-portal .pp-user-ini { width:30px; height:30px; border-radius:9px; background:linear-gradient(135deg,#586c35,#7f9854); color:#fff; display:flex; align-items:center; justify-content:center; font-size:10px; font-weight:700; }
#view-portal .pp-user-role { font-size:8px; letter-spacing:.9px; color:#8a9a6f; font-weight:700; }
#view-portal .pp-user-name { font-size:12px; font-weight:700; color:#2b3121; }
#view-portal .pp-clock-chip { display:flex; align-items:center; gap:8px; background:#f1f5ea; border:1px solid #e0e7d3; border-radius:13px; padding:8px 13px; font-size:12.5px; font-weight:700; color:#2b3121; font-variant-numeric:tabular-nums; }
#view-portal .pp-clock-dot { width:8px; height:8px; flex-shrink:0; border-radius:50%; background:#128a5a; animation:ppPulse 1.6s ease-in-out infinite; }
@keyframes ppPulse { 0%,100%{opacity:1;} 50%{opacity:.3;} }
#view-portal .pp-btn-primary { display:inline-flex; align-items:center; gap:7px; background:linear-gradient(135deg,#405221,#5f733b); border:none; color:#fff; font-weight:700; font-size:12.5px; padding:9px 15px; border-radius:13px; cursor:pointer; box-shadow:0 8px 18px rgba(64,82,33,.28); }
#view-portal .pp-btn-primary:hover { filter:brightness(1.07); }
#view-portal .pp-btn-primary.pp-btn-lg { font-size:13.5px; padding:12px 24px; }
#view-portal .pp-btn-ghost { display:inline-flex; align-items:center; gap:7px; background:#f1f5ea; border:1px solid #e0e7d3; color:#3b4922; font-weight:700; font-size:12.5px; padding:9px 15px; border-radius:13px; cursor:pointer; }
#view-portal .pp-btn-ghost:hover { background:#e5edd9; }
#view-portal .pp-btn-ghost.pp-btn-lg { padding:10px 18px; }

/* SECTIONS */
#view-portal .pp-sections { display:flex; flex-direction:column; }
#view-portal .pp-view { animation: ppIn .34s cubic-bezier(.22,.7,.3,1) both; }
@keyframes ppIn { from{opacity:0;transform:translateY(10px);} to{opacity:1;transform:none;} }

/* generic card */
#view-portal .pp-card { background:#fff; border:1px solid #e6ecdb; border-radius:20px; padding:18px 20px; box-shadow:0 10px 26px rgba(53,66,30,.07); }
#view-portal .pp-eyebrow { font-size:11px; letter-spacing:1px; font-weight:800; color:#707b5d; }
#view-portal .pp-card-head-row { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
#view-portal .pp-link { font-size:12px; font-weight:700; color:#405221; cursor:pointer; }
#view-portal .pp-muted { color:#7a816e; font-size:12.5px; }

/* INÍCIO */
#view-portal .pp-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
#view-portal .pp-stat { background:#fff; border:1px solid #e6ecdb; border-radius:20px; padding:17px 18px; box-shadow:0 10px 26px rgba(53,66,30,.07); }
#view-portal .pp-stat-ic { width:36px; height:36px; border-radius:11px; display:flex; align-items:center; justify-content:center; }
#view-portal .pp-stat-num { font-size:26px; font-weight:800; color:#1a2011; margin-top:11px; line-height:1; }
#view-portal .pp-stat-lbl { font-size:12px; color:#7a816e; margin-top:5px; font-weight:600; }
#view-portal .pp-inicio-grid { display:grid; grid-template-columns:1.5fr 1fr; gap:16px; align-items:start; margin-top:16px; }
#view-portal .pp-quick { display:flex; flex-direction:column; gap:8px; }
#view-portal .pp-quick-item { display:flex; align-items:center; gap:11px; padding:9px 10px; border-radius:12px; cursor:pointer; font-size:13px; font-weight:600; color:#2b3121; }
#view-portal .pp-quick-item:hover { background:#f1f5ea; }
#view-portal .pp-quick-ic { width:32px; height:32px; border-radius:10px; background:#e8f0db; color:#405221; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
/* próximo agendamento (preenchido pelo JS) */
#view-portal .pp-next-card { display:flex; align-items:center; gap:16px; border:1px solid #e7ecdd; border-radius:16px; padding:15px 16px; background:#f6f9f0; }
#view-portal .pp-next-date { width:52px; height:52px; flex-shrink:0; border-radius:14px; background:#fff; border:1px solid #e0e7d3; color:#405221; display:flex; flex-direction:column; align-items:center; justify-content:center; line-height:1; }
#view-portal .pp-next-date b { font-size:19px; font-weight:800; } #view-portal .pp-next-date small { font-size:9px; font-weight:700; letter-spacing:.5px; }
#view-portal .pp-next-note { display:flex; align-items:center; gap:8px; font-size:11.5px; color:#7a816e; margin-top:11px; line-height:1.45; }

/* PANELS (agendar/agendamentos/historico/transporte/ouvidoria/perfil) */
#view-portal .pp-panel { background:#fff; border:1px solid #e6ecdb; border-radius:22px; box-shadow:0 12px 30px rgba(53,66,30,.07); overflow:hidden; }
#view-portal .pp-panel-head { display:flex; align-items:center; gap:14px; padding:18px 22px; background:linear-gradient(110deg,#202811,#405221 62%,#5f733b); color:#fff; }
#view-portal .pp-panel-ic { width:46px; height:46px; flex-shrink:0; border-radius:14px; background:rgba(255,255,255,.15); border:1px solid rgba(255,255,255,.22); display:flex; align-items:center; justify-content:center; color:#fff; }
#view-portal .pp-panel-title { font-size:18px; font-weight:800; }
#view-portal .pp-panel-sub { font-size:12px; color:#dde4d2; opacity:.94; margin-top:2px; }
#view-portal .pp-panel-btn { display:flex; align-items:center; gap:7px; background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.28); color:#fff; font-weight:700; font-size:12.5px; padding:9px 16px; border-radius:12px; cursor:pointer; }
#view-portal .pp-panel-btn:hover { background:rgba(255,255,255,.26); }
#view-portal .pp-panel-body { padding:22px; display:flex; flex-direction:column; gap:11px; }

/* AGENDAR */
#view-portal .pp-agendar-grid { padding:22px; display:grid; grid-template-columns:1fr 340px; gap:22px; align-items:start; }
#view-portal .pp-cal-topbar { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
#view-portal .pp-cal-title { font-size:16px; font-weight:800; color:#1a2011; text-transform:capitalize; }
#view-portal .pp-cal-nav { display:flex; gap:8px; }
#view-portal .pp-cal-arrow { width:34px; height:34px; border-radius:11px; border:1px solid #e0e7d3; background:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; }
#view-portal .pp-cal-arrow:hover { background:#f1f5ea; }
#view-portal .pp-cal-week { display:grid; grid-template-columns:repeat(7,1fr); gap:8px; margin-bottom:8px; }
#view-portal .pp-cal-week div { text-align:center; font-size:10.5px; font-weight:800; color:#8a9a6f; letter-spacing:.5px; }
#view-portal #portal-calendar.pp-cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:8px; padding:0; }
#view-portal .pp-day { position:relative; height:46px; border-radius:11px; display:flex; align-items:center; justify-content:center; font-size:13.5px; font-weight:700; }
#view-portal .pp-day.is-empty { background:#f7f9f4; color:#bdc6ae; }
#view-portal .pp-day.is-past { background:#f7f9f4; color:#bdc6ae; }
#view-portal .pp-day.is-avail { background:#f6f9f0; border:1px solid #e0e7d3; color:#1a2011; cursor:pointer; }
#view-portal .pp-day.is-avail:hover { border-color:#93ac68; background:#e8f0db; }
#view-portal .pp-day.is-selected { background:linear-gradient(135deg,#405221,#5f733b); color:#fff; box-shadow:0 6px 14px rgba(64,82,33,.28); }
#view-portal .pp-day.is-mine { background:#e8f0db; color:#405221; border:1.5px solid #aac280; }
#view-portal .pp-day .dot { position:absolute; bottom:6px; left:50%; transform:translateX(-50%); width:5px; height:5px; border-radius:50%; }
#view-portal .pp-cal-legend { display:flex; flex-wrap:wrap; gap:14px; margin-top:16px; font-size:11px; color:#7a816e; font-weight:600; }
#view-portal .pp-cal-legend span { display:flex; align-items:center; gap:6px; }
#view-portal .pp-cal-legend .d { width:9px; height:9px; border-radius:50%; }
#view-portal .pp-slots-panel { border:1px solid #e7ecdd; border-radius:18px; padding:18px; background:#f6f9f0; min-height:340px; }
#view-portal .pp-slots-title { font-size:13px; font-weight:800; color:#1a2011; }
#view-portal .pp-slots-empty { text-align:center; padding:40px 10px; color:#8c977a; }
#view-portal .pp-slots-empty-ic { width:56px; height:56px; border-radius:17px; background:#e8f0db; color:#85a252; display:inline-flex; align-items:center; justify-content:center; }
#view-portal .pp-slots-empty div { font-size:12.5px; margin-top:12px; line-height:1.5; }
#view-portal .pp-slot-sub { font-size:12px; color:#7a816e; margin-top:2px; }
#view-portal .pp-slots-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:16px; }
#view-portal .pp-slot { text-align:center; border-radius:12px; padding:11px 4px; background:#fff; border:1.5px solid #e0e7d3; color:#1a2011; cursor:pointer; }
#view-portal .pp-slot:hover { border-color:#93ac68; }
#view-portal .pp-slot.is-full { background:#eef1e8; border:1px solid #e6ecdb; color:#b2bba2; cursor:not-allowed; }
#view-portal .pp-slot b { font-size:13.5px; font-weight:800; } #view-portal .pp-slot small { font-size:10px; font-weight:600; display:block; margin-top:1px; }
#view-portal .pp-inline-alert { display:flex; align-items:flex-start; gap:9px; background:#fce7ea; border:1px solid #f6ccd4; border-radius:13px; padding:13px 14px; margin-top:16px; font-size:12px; color:#c22f49; line-height:1.5; font-weight:600; }
#view-portal .pp-inline-warn { background:#fdf6ec; border:1px solid #f3e2c6; color:#9a6a10; }

/* rows (appts / vac / exam / atend / transporte) */
#view-portal .pp-row { display:flex; align-items:center; gap:15px; border:1px solid #e7ecdd; border-radius:16px; padding:15px 17px; }
#view-portal .pp-row.is-off { opacity:.92; }
#view-portal .pp-datebox { width:52px; height:52px; flex-shrink:0; border-radius:14px; background:#e8f0db; color:#405221; display:flex; flex-direction:column; align-items:center; justify-content:center; line-height:1; }
#view-portal .pp-datebox.is-off { background:#ecefe6; color:#8c977a; }
#view-portal .pp-datebox b { font-size:19px; font-weight:800; } #view-portal .pp-datebox small { font-size:9px; font-weight:700; letter-spacing:.5px; }
#view-portal .pp-row-main { flex:1; min-width:0; }
#view-portal .pp-row-title { font-size:14.5px; font-weight:800; color:#1a2011; }
#view-portal .pp-row-sub { font-size:12.5px; color:#7a816e; margin-top:3px; }
#view-portal .pp-row-right { display:flex; flex-direction:column; align-items:flex-end; gap:9px; flex-shrink:0; }
#view-portal .pp-badge { font-size:10.5px; font-weight:700; padding:4px 12px; border-radius:11px; }
#view-portal .pp-badge.b-blue { color:#2f6fd0; background:#e8f0fc; }
#view-portal .pp-badge.b-green { color:#128a5a; background:#e7f6ee; }
#view-portal .pp-badge.b-red { color:#d23a55; background:#fce7ea; }
#view-portal .pp-badge.b-amber { color:#c07d10; background:#fbf1d8; }
#view-portal .pp-badge.b-gray { color:#707b5d; background:#e6ecdb; }
#view-portal .pp-mini-cancel { display:flex; align-items:center; gap:6px; background:#fff; border:1px solid #f6ccd4; color:#c22f49; font-weight:700; font-size:11.5px; padding:6px 12px; border-radius:10px; cursor:pointer; }
#view-portal .pp-mini-cancel:hover { background:#fdf0f2; }
#view-portal .pp-mini-qr { display:flex; align-items:center; gap:6px; background:linear-gradient(135deg,#405221,#5f733b); border:none; color:#fff; font-weight:700; font-size:11.5px; padding:7px 13px; border-radius:10px; cursor:pointer; box-shadow:0 6px 14px rgba(64,82,33,.24); }
#view-portal .pp-mini-dl { display:flex; align-items:center; gap:6px; background:#f1f5ea; border:1px solid #e0e7d3; color:#3b4922; font-weight:700; font-size:11.5px; padding:7px 13px; border-radius:10px; cursor:pointer; }
#view-portal .pp-just { display:flex; align-items:flex-start; gap:8px; background:#fdf6ec; border:1px solid #f3e2c6; border-radius:12px; padding:10px 12px; margin-top:12px; font-size:11.5px; color:#9a6a10; line-height:1.5; }
#view-portal .pp-ic-round { width:40px; height:40px; flex-shrink:0; border-radius:12px; display:flex; align-items:center; justify-content:center; }
#view-portal .pp-empty { text-align:center; padding:30px 16px; color:#7a816e; font-size:12.5px; }

/* TABS (histórico) */
#view-portal .pp-tabs { padding:6px 22px 0; border-bottom:1px solid #e7ecdd; display:flex; gap:6px; }
#view-portal .pp-perf-summary { display:flex; align-items:center; gap:13px; padding-bottom:18px; margin-bottom:20px; border-bottom:1px solid #e7ecdd; }
#view-portal .pp-perf-ava { width:48px; height:48px; flex-shrink:0; border-radius:14px; background:linear-gradient(135deg,#405221,#5f733b); color:#fff; display:flex; align-items:center; justify-content:center; font-size:15px; font-weight:800; }
#view-portal .pp-wa-btn { display:inline-flex; align-items:center; justify-content:center; gap:9px; align-self:flex-start; background:#25d366; color:#fff; font-weight:800; font-size:13.5px; padding:12px 20px; border-radius:13px; text-decoration:none; box-shadow:0 8px 18px rgba(37,211,102,.28); }
#view-portal .pp-wa-btn:hover { filter:brightness(1.05); color:#fff; }
.pp-wa-fab { position:fixed; right:26px; bottom:26px; z-index:70; width:56px; height:56px; border-radius:50%; background:#25d366; display:flex; align-items:center; justify-content:center; box-shadow:0 10px 26px rgba(37,211,102,.5); text-decoration:none; }
.pp-wa-fab:hover { filter:brightness(1.05); }
#view-portal .pp-tab { padding:13px 16px; font-size:13px; font-weight:700; color:#707b5d; cursor:pointer; border-bottom:2px solid transparent; margin-bottom:-1px; }
#view-portal .pp-tab.is-active { color:#405221; border-bottom-color:#405221; }

/* FORM fields (ouvidoria/perfil) */
#view-portal .pp-field-grid2 { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
#view-portal .pp-field-grid3 { display:grid; grid-template-columns:1fr 1fr 1fr; gap:14px; }
#view-portal .pp-flabel { font-size:10px; letter-spacing:.5px; color:#8a9a6f; font-weight:700; margin-bottom:5px; }
#view-portal .pp-readonly { background:#ecefe6; border:1px dashed #cbd5ba; border-radius:11px; padding:11px 13px; font-size:13px; color:#6c7262; font-weight:600; }
#view-portal .pp-chips { display:flex; flex-wrap:wrap; gap:8px; }
#view-portal .pp-chip { font-size:12px; font-weight:700; padding:8px 15px; border-radius:11px; cursor:pointer; background:#f1f5ea; color:#6c7262; border:1px solid #e0e7d3; }
#view-portal .pp-chip.is-active { background:linear-gradient(135deg,#405221,#5f733b); color:#fff; border-color:#405221; }
#view-portal .pp-textarea { width:100%; box-sizing:border-box; background:#f6f9f0; border:1px solid #e0e7d3; border-radius:12px; padding:13px; font-size:13px; color:#1a2011; min-height:120px; resize:vertical; outline:none; }
#view-portal .pp-textarea:focus { border-color:#93ac68; }
#view-portal .pp-input { width:100%; box-sizing:border-box; background:#f6f9f0; border:1px solid #e0e7d3; border-radius:11px; padding:11px 13px; font-size:13px; color:#1a2011; outline:none; }
#view-portal .pp-input:focus { border-color:#93ac68; }
#view-portal .pp-input-focus { background:#fff; border:1.5px solid #93ac68; font-weight:600; }
#view-portal .pp-sec-title { font-size:15px; font-weight:800; color:#1a2011; }
#view-portal .pp-sec-sub { font-size:11.5px; color:#8c977a; margin-top:2px; }
#view-portal .pp-divider { height:1px; background:#e7ecdd; margin:22px 0; }
#view-portal .pp-err { font-size:11.5px; color:#c22f49; font-weight:600; margin-top:9px; }

/* responsivo */
@media (max-width: 900px) {
  #view-portal .pp-stats { grid-template-columns:1fr; }
  #view-portal .pp-inicio-grid { grid-template-columns:1fr; }
  #view-portal .pp-agendar-grid { grid-template-columns:1fr; }
  #view-portal .pp-rail { display:none; }
}
