/* ==========================================================================
   Patient portal - login, My Profile, consultations, video call, booking-form account fields.
   Loaded only on the account and checkout pages (inc/portal.php).
   ========================================================================== */

/* ---------- Buttons used by the portal ---------- */
.dm-btn-green,.dm-btn-gold{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700;border-radius:var(--dm-r-pill);padding:14px 26px;text-decoration:none;line-height:1.2;transition:transform .2s,background .2s,box-shadow .2s;cursor:pointer;border:0;font-family:var(--dm-body);font-size:1rem}
.dm-btn-green{background:var(--dm-green);color:#fff!important;box-shadow:0 10px 22px rgba(27,67,50,.22)}
.dm-btn-green:hover{background:var(--dm-green-2);transform:translateY(-2px);color:#fff!important}
a.dm-btn-gold{background:var(--dm-gold);color:var(--dm-ink)!important;box-shadow:0 10px 24px rgba(212,162,76,.4)}
a.dm-btn-gold:hover{background:var(--dm-gold-2);transform:translateY(-2px);color:var(--dm-ink)!important}

/* ---------- Login / lost password ---------- */
body.dm-portal-out .woocommerce{max-width:600px;margin:0 auto}
body.dm-portal-out .entry-title{text-align:center}
body.dm-portal-out .woocommerce>h2,body.dm-portal-out #customer_login>h2,body.dm-portal-out .u-column1>h2{display:none}
.dm-login-intro{position:relative;overflow:hidden;background:linear-gradient(135deg,var(--dm-green-dark) 0%,var(--dm-green) 55%,var(--dm-green-2) 100%);color:#fff;border-radius:26px;padding:28px 30px;margin:0 0 20px;box-shadow:var(--dm-shadow-lg)}
.dm-login-intro::after{content:"";position:absolute;right:-40px;top:-40px;width:170px;height:170px;border-radius:50%;background:radial-gradient(circle,rgba(230,190,114,.55) 0%,rgba(230,190,114,0) 70%)}
.dm-login-intro h2{color:#fff;margin:0 0 8px;font-size:clamp(1.5rem,3.4vw,1.9rem)}
.dm-login-intro p{margin:0;color:rgba(255,255,255,.88);position:relative;z-index:1}
body.dm-portal-out .woocommerce form.login,body.dm-portal-out .woocommerce form.lost_reset_password,body.dm-portal-out .woocommerce form.woocommerce-form-login{background:#fff;border:1px solid var(--dm-line);border-radius:24px;padding:26px 28px;margin:0 0 4px;box-shadow:var(--dm-shadow)}
.woocommerce form.login .woocommerce-form-login__submit,.woocommerce form.lost_reset_password button.button{width:100%;padding:16px 26px;font-size:1.05rem;margin-top:6px}
.woocommerce form.login .woocommerce-form-login__rememberme{display:flex;align-items:center;gap:8px;margin:6px 0 12px;font-weight:500}
.woocommerce form.login .lost_password,.woocommerce form.login .woocommerce-LostPassword{margin:14px 0 0;text-align:center}
.woocommerce form.login .lost_password a{font-weight:700}
.woocommerce .password-input{display:block;position:relative}
.dm-login-new{margin-top:20px;background:var(--dm-mint-2);border:1.5px dashed var(--dm-green-3);border-radius:22px;padding:22px 26px;text-align:center}
.dm-login-new h3{margin:0 0 6px;font-size:1.2rem}
.dm-login-new p{margin:0 0 14px;color:var(--dm-text)}

/* ---------- Logged-in account area ---------- */
body.dm-portal-in .woocommerce{max-width:none}
.dm-acct-hero{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;background:linear-gradient(120deg,var(--dm-green-dark) 0%,var(--dm-green) 55%,var(--dm-green-2) 100%);color:#fff;border-radius:28px;padding:30px 34px;margin:0 0 20px;box-shadow:var(--dm-shadow-lg)}
.dm-acct-hero::after{content:"";position:absolute;right:-50px;bottom:-60px;width:210px;height:210px;border-radius:50%;background:radial-gradient(circle,rgba(230,190,114,.5) 0%,rgba(230,190,114,0) 70%);pointer-events:none}
.dm-acct-hero>*{position:relative;z-index:1}
.dm-acct-hero h2{color:#fff;margin:0 0 6px;font-size:clamp(1.55rem,3.2vw,2.2rem)}
.dm-acct-hero p{margin:0;color:rgba(255,255,255,.88);max-width:520px}
.dm-acct-hero .dm-acct-kicker{font-size:.76rem;text-transform:uppercase;letter-spacing:.16em;color:var(--dm-gold-2);font-weight:700;margin:0 0 4px}
body.dm-lang-bn .dm-acct-hero .dm-acct-kicker{letter-spacing:0;text-transform:none}

.woocommerce-account .woocommerce-MyAccount-navigation{float:none!important;width:100%!important;margin:0 0 22px!important}
.woocommerce-account .woocommerce-MyAccount-navigation ul{list-style:none;margin:0;padding:6px;display:flex;gap:6px;flex-wrap:wrap;background:var(--dm-mint-2);border:1px solid var(--dm-line);border-radius:var(--dm-r-pill)}
.woocommerce-account .woocommerce-MyAccount-navigation li{margin:0;padding:0;border:0}
.woocommerce-account .woocommerce-MyAccount-navigation li a{display:block;padding:11px 22px;border-radius:var(--dm-r-pill);font-weight:700;color:var(--dm-ink);text-decoration:none;line-height:1.3}
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover{background:#fff}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a{background:var(--dm-green);color:#fff}
.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout{margin-left:auto}
.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a{color:#8a1c1c}
.woocommerce-account .woocommerce-MyAccount-content{float:none!important;width:100%!important}

/* ---------- Booking cards ---------- */
.dm-bk-wrap{display:grid;gap:18px}
.dm-bk-title{display:flex;align-items:center;gap:10px;font-size:1.35rem;margin:12px 0 0}
.dm-bk-title span{background:var(--dm-gold);color:var(--dm-ink);font:700 .85rem var(--dm-body);border-radius:999px;padding:2px 12px}
.dm-bk{position:relative;overflow:hidden;background:#fff;border:1px solid var(--dm-line);border-radius:24px;padding:22px 26px 22px 30px;box-shadow:var(--dm-shadow)}
.dm-bk::before{content:"";position:absolute;left:0;top:0;bottom:0;width:7px;background:linear-gradient(180deg,var(--dm-green-3),var(--dm-green-2))}
.dm-bk--chamber::before{background:linear-gradient(180deg,var(--dm-gold-2),var(--dm-gold))}
.dm-bk.is-new{border-color:var(--dm-gold);box-shadow:0 0 0 4px rgba(212,162,76,.28),var(--dm-shadow)}
.dm-bk-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}
.dm-bk-kind{display:inline-flex;align-items:center;gap:10px;font-weight:800;color:var(--dm-green);font-size:1.05rem}
.dm-bk-kind i{width:36px;height:36px;flex:0 0 36px;border-radius:50%;background:var(--dm-mint) center/19px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231B4332' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='6' width='13' height='12' rx='2'/%3E%3Cpath d='m22 8-7 4 7 4z'/%3E%3C/svg%3E")}
.dm-bk--chamber .dm-bk-kind{color:var(--dm-gold-dark)}
.dm-bk--chamber .dm-bk-kind i{background:#f8ecd0 center/19px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238F5E1D' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11a7 7 0 0 1 14 0c0 4.8-7 11-7 11z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E")}
.dm-bk-grid{display:grid;grid-template-columns:.8fr 1.6fr 1.3fr 1.2fr;gap:14px 18px;margin:0}
.dm-bk-grid>div{min-width:0}
.dm-bk-grid dt{font-size:.74rem;text-transform:uppercase;letter-spacing:.1em;color:var(--dm-muted);font-weight:700;margin:0 0 3px}
body.dm-lang-bn .dm-bk-grid dt{letter-spacing:0;text-transform:none;font-size:.85rem}
.dm-bk-grid dd{margin:0;font-weight:700;color:var(--dm-ink);line-height:1.35}
.dm-pay{display:inline-block;padding:4px 14px;border-radius:999px;font-size:.84rem;font-weight:800;background:#e8eef0;color:#32424a;white-space:nowrap}
.dm-pay--paid{background:#d6f1de;color:#14532d}
.dm-pay--pending,.dm-pay--hold{background:#fff1c9;color:#7a4b00}
.dm-pay--failed,.dm-pay--cancelled{background:#fbd8d8;color:#8a1c1c}

/* ---------- Join video consultation (time-locked) ---------- */
.dm-join{margin-top:18px;border-radius:20px;padding:18px 20px;display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;border:1.5px dashed #d4cdb6;background:var(--dm-cream)}
.dm-join-info{flex:1 1 280px;min-width:0}
.dm-join-text{margin:0;font-weight:600;color:var(--dm-ink);line-height:1.5}
.dm-join-count{margin:6px 0 0;font:800 1.2rem var(--dm-body);color:var(--dm-gold-dark);font-variant-numeric:tabular-nums}
.dm-join-count:empty{display:none}
.dm-join.is-open{background:linear-gradient(135deg,#e2f5ea,#f5fcf8);border:1.5px solid var(--dm-green-3)}
.dm-join.is-ended{background:#f3f4f2;border-style:solid;border-color:var(--dm-line)}
.dm-join.is-ended .dm-join-text{color:var(--dm-muted)}
.dm-join--wait,.dm-join--chamber{background:var(--dm-cream)}
.dm-join--wait p,.dm-join--chamber p{margin:0;font-weight:600;color:var(--dm-ink);flex:1 1 260px}
.dm-join-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:0;border-radius:var(--dm-r-pill);padding:17px 30px;font:800 1.05rem var(--dm-body);cursor:pointer;transition:transform .2s,background .2s;line-height:1.2}
.dm-join-btn i{width:22px;height:22px;flex:0 0 22px;background:center/contain no-repeat}
.dm-join-btn[disabled]{background:#d9ded9;color:#6a746d;cursor:not-allowed;box-shadow:none}
.dm-join-btn[disabled] i{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236a746d' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='11' width='16' height='10' rx='2'/%3E%3Cpath d='M8 11V7a4 4 0 0 1 8 0v4'/%3E%3C/svg%3E")}
.dm-join-btn:not([disabled]){background:var(--dm-gold);color:var(--dm-ink);box-shadow:0 12px 26px rgba(212,162,76,.45);animation:dm-pulse 2.2s infinite}
.dm-join-btn:not([disabled]):hover{background:var(--dm-gold-2);transform:translateY(-2px)}
.dm-join-btn:not([disabled]) i{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2314261C' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='6' width='13' height='12' rx='2'/%3E%3Cpath d='m22 8-7 4 7 4z'/%3E%3C/svg%3E")}
.dm-join-btn.is-loading{opacity:.75;pointer-events:none}
@keyframes dm-pulse{0%{box-shadow:0 0 0 0 rgba(212,162,76,.6)}70%{box-shadow:0 0 0 16px rgba(212,162,76,0)}100%{box-shadow:0 0 0 0 rgba(212,162,76,0)}}
@media (prefers-reduced-motion:reduce){.dm-join-btn{animation:none!important}html{scroll-behavior:auto}}
.dm-join-msg{flex:1 1 100%;margin:0;font-size:.92rem;color:#8a1c1c;font-weight:600}

/* ---------- Advice and diet chart ---------- */
.dm-advice{margin-top:18px;background:linear-gradient(135deg,#fffaf0,#fff);border:1px solid var(--dm-gold-2);border-radius:20px;padding:18px 22px}
.dm-advice h4{margin:0 0 10px;font-size:1.12rem;color:var(--dm-gold-dark)}
.dm-advice-text{color:var(--dm-ink);overflow-wrap:anywhere}
.dm-advice-text p{margin:0 0 .6em}
.dm-files{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:8px}
.dm-files li{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;background:#fff;border:1px solid var(--dm-line);border-radius:14px;padding:10px 14px;margin:0}
.dm-file-name{font-weight:700;display:flex;align-items:center;gap:10px;min-width:0;overflow-wrap:anywhere}
.dm-file-name i{width:30px;height:30px;flex:0 0 30px;border-radius:8px;background:#fbe5de center/16px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b4412e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 3v5h5'/%3E%3C/svg%3E")}
.dm-file-name i.is-img{background-color:#e0f0e8;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232D6A4F' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='16' rx='2'/%3E%3Ccircle cx='9' cy='10' r='1.6'/%3E%3Cpath d='m21 16-5-5-9 9'/%3E%3C/svg%3E")}
.dm-file-name small{color:var(--dm-muted);font-weight:500;margin-left:4px}
.dm-file-actions{display:flex;gap:8px}
.dm-file-actions a{display:inline-block;padding:8px 18px;border-radius:999px;font-weight:700;font-size:.92rem;text-decoration:none;background:var(--dm-mint);color:var(--dm-green)}
.dm-file-actions a.dm-file-dl{background:var(--dm-green);color:#fff}
.dm-file-actions a:hover{filter:brightness(.96)}
.dm-advice-time{margin:12px 0 0;font-size:.85rem;color:var(--dm-muted)}
.dm-advice-empty{margin:16px 0 0;font-size:.95rem;color:var(--dm-muted);font-style:italic}

/* ---------- Banners and empty state ---------- */
.dm-booked{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;background:linear-gradient(135deg,#e2f5ea,#fff);border:1.5px solid var(--dm-green-3);border-radius:22px;padding:20px 24px;margin:0 0 20px}
.dm-booked h3{margin:0 0 4px;font-size:1.25rem;color:var(--dm-green)}
.dm-booked p{margin:0;color:var(--dm-text)}
.dm-booked>div{flex:1 1 320px}
.dm-empty{text-align:center;background:var(--dm-mint-2);border:1.5px dashed var(--dm-green-3);border-radius:24px;padding:40px 24px}
.dm-empty h3{margin:0 0 8px}
.dm-empty p{margin:0 auto 18px;max-width:460px}

/* ---------- Profile form ---------- */
.woocommerce-EditAccountForm{background:#fff;border:1px solid var(--dm-line);border-radius:24px;padding:26px 28px;box-shadow:var(--dm-shadow)}
.woocommerce-EditAccountForm fieldset{border:0;padding:0;margin:22px 0 0}
.woocommerce-EditAccountForm legend{font:700 1.2rem var(--dm-head);color:var(--dm-ink);padding:0 0 10px}
.woocommerce-EditAccountForm .woocommerce-Button{margin-top:10px}
.woocommerce-EditAccountForm em{font-size:.88rem;color:var(--dm-muted)}

/* ---------- Booking form (checkout): login toggle + account fields ---------- */
.woocommerce-form-login-toggle .woocommerce-info{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-weight:600}
.woocommerce-form-login-toggle .woocommerce-info a.showlogin{display:inline-block;margin-left:6px;padding:6px 18px;border-radius:999px;background:var(--dm-green);color:#fff!important;font-weight:700;text-decoration:none}
.woocommerce-form-login-toggle .woocommerce-info a.showlogin:hover{background:var(--dm-green-2)}
.woocommerce form.woocommerce-form-login{background:#fff;border:1px solid var(--dm-line);border-radius:22px;padding:22px 24px;margin:0 0 24px}
.woocommerce form.woocommerce-form-login .form-row-first,.woocommerce form.woocommerce-form-login .form-row-last{width:100%;float:none}
.woocommerce-checkout .woocommerce-account-fields{margin-top:6px}
.woocommerce-checkout #account_password_field{background:var(--dm-mint-2);border:1.5px solid var(--dm-green-3);border-radius:18px;padding:16px 18px 14px;margin-top:8px}
.woocommerce-checkout #account_password_field label{color:var(--dm-green)}
.woocommerce-checkout #account_password_field .description{display:block;font-size:.88rem;color:var(--dm-muted);margin-top:8px;line-height:1.45}
.woocommerce-checkout .woocommerce-account-fields .create-account{margin-top:0}
.woocommerce-checkout .woocommerce-password-strength{font-size:.85rem;margin-top:6px;border-radius:8px}

/* ---------- Video call overlay ---------- */
body.dm-call-open{overflow:hidden}
.dm-call{position:fixed;inset:0;z-index:2147483000;display:flex;flex-direction:column;background:var(--dm-green-dark);color:#fff}
.dm-call-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;padding-top:calc(10px + env(safe-area-inset-top,0px));background:rgba(0,0,0,.28)}
.dm-call-bar strong{font-size:.98rem;font-weight:700;line-height:1.3;color:#fff}
.dm-call-leave{flex:0 0 auto;background:#c2412d;color:#fff;border:0;border-radius:999px;padding:10px 20px;font:700 .95rem var(--dm-body);cursor:pointer}
.dm-call-leave:hover{background:#a8341f}
.dm-call-stage{position:relative;flex:1 1 auto;min-height:0;background:#0b1712}
.dm-call-stage iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.dm-call-status{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:20px;text-align:center;font-weight:600;color:#fff;z-index:0}
.dm-call-foot{padding:8px 14px calc(8px + env(safe-area-inset-bottom,0px));font-size:.82rem;line-height:1.4;color:rgba(255,255,255,.82);background:rgba(0,0,0,.28)}
.dm-call-foot a{color:var(--dm-gold-2)}

/* the sticky "Book Appointment" bar is not needed inside the patient area (it would sit on top of the Join button) */
body.woocommerce-account .dm-bar{display:none!important}

/* ---------- Small screens ---------- */
@media (max-width:781px){
  .dm-acct-hero{padding:24px 22px;border-radius:24px}
  .dm-acct-hero .dm-btn-gold{width:100%}
  .woocommerce-account .woocommerce-MyAccount-navigation ul{border-radius:22px}
  .woocommerce-account .woocommerce-MyAccount-navigation li{flex:1 1 auto}
  .woocommerce-account .woocommerce-MyAccount-navigation li a{text-align:center;padding:11px 14px}
  .woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout{margin-left:0}
  .dm-bk{padding:20px 18px 20px 24px;border-radius:22px}
  .dm-bk-grid{grid-template-columns:1fr 1fr}
  .dm-join{padding:16px}
  .dm-join-btn{width:100%}
  .dm-file-actions{width:100%}
  .dm-file-actions a{flex:1;text-align:center}
  body.dm-portal-out .woocommerce form.login,body.dm-portal-out .woocommerce form.lost_reset_password{padding:22px 20px}
  .woocommerce-EditAccountForm{padding:22px 18px}
}
