.pza-portal { --pza-dark:#24302b; --pza-sage:#647b66; --pza-bg:#f7f3ec; --pza-card:#fff; --pza-text:#4e514c; color:var(--pza-text); max-width:1180px; margin:0 auto; padding:32px 18px; }
.pza-portal * { box-sizing:border-box; }
.pza-portal-hero { background:linear-gradient(135deg,#24302b,#647b66); color:#fff; border-radius:28px; padding:36px; margin-bottom:26px; box-shadow:0 20px 50px rgba(36,48,43,.14); }
.pza-portal-hero span { display:inline-flex; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.22); padding:8px 13px; border-radius:999px; font-size:13px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.pza-portal-hero h2 { color:#fff; font-size:clamp(32px,4vw,52px); margin:16px 0 10px; line-height:1.05; }
.pza-portal-hero p { max-width:760px; margin:0; color:rgba(255,255,255,.86); font-size:18px; line-height:1.7; }
.pza-portal-client { background:var(--pza-bg); border-radius:28px; padding:26px; margin:28px 0; border:1px solid #e8dfd0; }
.pza-portal-client-head { display:flex; justify-content:space-between; gap:20px; align-items:center; margin-bottom:18px; }
.pza-portal-client-head span { color:var(--pza-sage); font-weight:900; text-transform:uppercase; letter-spacing:.06em; font-size:13px; }
.pza-portal-client-head h3 { color:var(--pza-dark); margin:6px 0 0; font-size:32px; line-height:1.1; }
.pza-portal-badge, .pza-portal-tag { display:inline-flex; border-radius:999px; padding:8px 12px; background:#647b66; color:#fff; font-size:13px; font-weight:800; }
.pza-portal-meta { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-bottom:24px; }
.pza-portal-meta > div { background:#fff; border-radius:16px; padding:16px; border:1px solid #eadfce; }
.pza-portal-section { margin-top:28px; }
.pza-portal-section h4 { color:var(--pza-dark); font-size:24px; margin:0 0 14px; }
.pza-portal-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.pza-portal-card { background:#fff; border:1px solid #eadfce; border-radius:20px; padding:22px; box-shadow:0 12px 30px rgba(36,48,43,.06); }
.pza-portal-card h3, .pza-portal-card h5 { color:var(--pza-dark); margin:12px 0 10px; font-size:21px; }
.pza-portal-card p { line-height:1.75; white-space:pre-line; }
.pza-portal-timeline { display:grid; gap:14px; }
.pza-portal-timeline article { background:#fff; border:1px solid #eadfce; border-radius:18px; padding:20px; position:relative; }
.pza-portal-timeline time { color:var(--pza-sage); font-weight:800; font-size:13px; }
.pza-portal-timeline h5 { color:var(--pza-dark); font-size:20px; margin:8px 0; }
.pza-portal-timeline p { margin:0; line-height:1.75; white-space:pre-line; }
.pza-portal-docs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.pza-portal-docs a { display:block; background:#fff; border:1px solid #eadfce; border-radius:18px; padding:18px; text-decoration:none !important; color:var(--pza-dark); transition:.2s ease; }
.pza-portal-docs a:hover { transform:translateY(-2px); box-shadow:0 12px 30px rgba(36,48,43,.08); }
.pza-portal-docs span { display:block; color:#74786f; font-size:13px; margin-top:6px; word-break:break-word; }
.pza-portal .login-username input, .pza-portal .login-password input { width:100%; max-width:420px; min-height:44px; border-radius:10px; border:1px solid #ccc; padding:8px 12px; }
.pza-portal .button, .pza-portal .login-submit input { background:#647b66; color:#fff; border:0; border-radius:999px; padding:12px 22px; font-weight:800; cursor:pointer; }
@media (max-width:760px) {
  .pza-portal-client-head, .pza-portal-meta, .pza-portal-grid, .pza-portal-docs { grid-template-columns:1fr; display:grid; }
  .pza-portal-client { padding:18px; }
  .pza-portal-hero { padding:26px; }
}

/* Standalone ouderportaal route: /ouderportaal/ */
.pza-standalone-portal { background:#f7f3ec; min-height:70vh; padding:42px 0; }
body.pza-ouderportaal-page { background:#f7f3ec; }
body.pza-ouderportaal-page .pza-portal { width:min(1180px, calc(100% - 36px)); max-width:1180px; }
@media (max-width:760px) {
  .pza-standalone-portal { padding:24px 0; }
  body.pza-ouderportaal-page .pza-portal { width:min(100% - 24px, 1180px); padding-left:0; padding-right:0; }
}

/* Standalone zorgdashboard route: /zorgdashboard/ */
.pza-standalone-manager { background:#f7f3ec; min-height:70vh; padding:42px 0; }
body.pza-zorgdashboard-page { background:#f7f3ec; }
.pza-manager-portal { --pza-dark:#24302b; --pza-sage:#647b66; --pza-bg:#f7f3ec; --pza-border:#e8dfd0; --pza-card:#fff; --pza-text:#4e514c; color:var(--pza-text); width:min(1280px, calc(100% - 36px)); margin:0 auto; padding:0; }
.pza-manager-portal * { box-sizing:border-box; }
.pza-manager-hero { background:linear-gradient(135deg,#24302b,#647b66); color:#fff; border-radius:28px; padding:36px; margin-bottom:24px; box-shadow:0 20px 50px rgba(36,48,43,.14); }
.pza-manager-hero span { display:inline-flex; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.22); padding:8px 13px; border-radius:999px; font-size:13px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.pza-manager-hero h2 { color:#fff; font-size:clamp(32px,4vw,52px); margin:16px 0 10px; line-height:1.05; }
.pza-manager-hero p { max-width:780px; margin:0; color:rgba(255,255,255,.86); font-size:18px; line-height:1.7; }
.pza-manager-login-card, .pza-manager-password, .pza-manager-topbar, .pza-manager-alert { background:#fff; border:1px solid var(--pza-border); border-radius:20px; padding:22px; margin:18px 0; box-shadow:0 12px 30px rgba(36,48,43,.06); }
.pza-manager-login-card { max-width:520px; }
.pza-manager-login-card h3 { margin-top:0; color:var(--pza-dark); font-size:24px; }
.pza-manager-login-card input[type="text"], .pza-manager-login-card input[type="password"], .pza-manager-password input[type="password"] { width:100%; max-width:460px; min-height:44px; border-radius:10px; border:1px solid #cfc8ba; padding:8px 12px; }
.pza-manager-topbar { display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; }
.pza-manager-password summary { cursor:pointer; font-weight:900; color:var(--pza-dark); }
.pza-manager-alert.success { border-color:#b9c8b8; background:#edf5ed; color:#36543a; }
.pza-manager-alert.error { border-color:#e2b5ae; background:#fff0ee; color:#8a2f27; }
.pza-manager-portal .wrap { max-width:1280px; margin:0; }
.pza-manager-portal .notice { background:#fff; border-left:4px solid var(--pza-sage); padding:12px 16px; border-radius:10px; margin:16px 0; }
.pza-manager-portal .button, .pza-manager-portal button.button, .pza-manager-portal input.button { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:38px; padding:8px 15px; border:0; border-radius:999px; background:#647b66; color:#fff !important; text-decoration:none !important; font-weight:800; cursor:pointer; line-height:1.2; }
.pza-manager-portal .button-primary { background:#24302b !important; color:#fff !important; }
.pza-manager-portal .button-small { min-height:30px; padding:6px 10px; font-size:12px; }
.pza-manager-portal table.widefat { width:100%; border-collapse:separate; border-spacing:0; overflow:hidden; border:1px solid var(--pza-border); border-radius:16px; background:#fff; }
.pza-manager-portal table.widefat th, .pza-manager-portal table.widefat td { padding:12px 14px; border-bottom:1px solid var(--pza-border); text-align:left; vertical-align:top; }
.pza-manager-portal table.widefat th { background:#f1eadf; color:var(--pza-dark); font-weight:900; }
.pza-manager-portal table.widefat tr:last-child td { border-bottom:0; }
.pza-manager-portal input.regular-text, .pza-manager-portal input.large-text, .pza-manager-portal textarea.large-text, .pza-manager-portal select { width:100%; max-width:100%; min-height:42px; border-radius:10px; border:1px solid #cfc8ba; padding:8px 10px; }
.pza-manager-portal textarea.large-text { min-height:130px; }
.pza-manager-portal .pza-admin-form, .pza-manager-portal .pza-admin-panel, .pza-manager-portal .pza-admin-card { border-color:var(--pza-border); box-shadow:0 12px 30px rgba(36,48,43,.06); }
.pza-manager-portal .pza-admin-intro { font-size:16px; line-height:1.7; }
@media (max-width:760px) {
  .pza-standalone-manager { padding:24px 0; }
  .pza-manager-portal { width:min(100% - 24px, 1280px); }
  .pza-manager-hero { padding:26px; }
  .pza-manager-portal table.widefat { display:block; overflow-x:auto; }
  .pza-manager-topbar { align-items:flex-start; }
}

/* Ouderportaal 1.4: eigen frontend-login, foto-overzicht, geen WP-dashboard uitstraling */
.pza-portal-alert { border-radius:18px; padding:16px 18px; margin:18px 0; font-weight:800; }
.pza-portal-alert.error { background:#fff0ee; border:1px solid #e2b5ae; color:#8a2f27; }
.pza-portal-topbar { display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; background:#fff; border:1px solid #eadfce; border-radius:18px; padding:16px 18px; margin:18px 0 24px; box-shadow:0 12px 30px rgba(36,48,43,.06); }
.pza-portal-button { display:inline-flex; align-items:center; justify-content:center; min-height:42px; padding:10px 18px; border-radius:999px; border:0; background:#647b66; color:#fff !important; text-decoration:none !important; font-weight:900; cursor:pointer; }
.pza-portal-button.secondary { background:#24302b; }
.pza-portal-login-card { max-width:560px; }
.pza-portal-login-card input[type="text"], .pza-portal-login-card input[type="password"] { width:100%; max-width:460px; min-height:46px; border-radius:12px; border:1px solid #cfc8ba; padding:9px 12px; background:#fff; }
.pza-portal-photos { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.pza-portal-photo-card { overflow:hidden; background:#fff; border:1px solid #eadfce; border-radius:20px; box-shadow:0 12px 30px rgba(36,48,43,.06); }
.pza-portal-photo-card a { display:block; text-decoration:none !important; }
.pza-portal-photo-card img { width:100%; aspect-ratio:4/3; object-fit:cover; object-position:center; display:block; background:#e8dfd0; }
.pza-portal-photo-card div { padding:16px; }
.pza-portal-photo-card h5 { color:#24302b; margin:0 0 8px; font-size:19px; }
.pza-portal-photo-card p { margin:0 0 10px; line-height:1.65; white-space:pre-line; }
.pza-portal-photo-card small { color:#74786f; font-weight:800; }
@media (max-width:900px) { .pza-portal-photos { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:620px) { .pza-portal-photos { grid-template-columns:1fr; } }
