/**
 * 账户 / 登录「核心」样式（B16.8 批 / 1.20.8）—— **全站前台**加载。
 *
 * 只放主题 header 登录下拉、竖向抽屉登录块、页内登录块（短代码）需要的规则：
 *   §B6 / §B7   —— 登录菜单短代码 + Google 容器三种形态
 *   §B11.4      —— header 未读角标 / 下拉里那一行内联数字
 *   §B16.4–16.7 —— 抽屉登录块 / 页内 Google / 页内登录块 / 抽屉修正
 *
 * 账户壳、报价、预约、收藏、健康档案、表单等只在患者中心 / 账户短代码页加载，
 * 仍在 account.css。拆包的动机：这十几 KB 以前跟着 48.9 KB 的整份 account.css
 * 全站阻塞渲染；现在首页只付 core 的成本。
 */

/* ==========================================================================
   §B6：登录菜单短代码（B6 批，2026-10-08）—— 放在主题 header，游客 / 已登录通用
   - 服务对象 = 短代码 `[unithmemd_patient_login_menu]` 输出的那一块 DOM
     （`.unithmemd-patient__login-menu`，见 `includes/class-patient-login-menu.php`）；
   - **与账户壳的 §A 分开写**：账户壳那块 DOM 住在 `<main class="unithmemd-patient">` 里，
     吃得到 §1 的 token 与盒模型重置；本菜单住在主题 header 里，**不在**那个容器内
     ⇒ 本段一律用字面色值、自带 `box-sizing: border-box`，不依赖任何祖先容器或 CSS 变量
     （否则一放到 header 上就会「没颜色 / 尺寸溢出」）；
   - 开合只切 DOM 属性（`assets/js/account-header.js`）：面板默认 `hidden`，本段给出
     `[hidden] { display: none }`（自家写了 `display` 的块要显式再声明一条），
     `aria-expanded` / `aria-hidden` 由脚本同步；
   - 命名空间纪律（[E1] 红线）：选择器**一律以 `.unithmemd-patient` 打头**；本段零 `!important`、
     零 `max-width` 媒体查询（本段一条媒体查询都没有 —— 菜单跟着主题 header 自己的排版走）；
   - 追加于 §J 之后（本文件既有规则一条都未动）。
   ========================================================================== */

/* 容器 */
.unithmemd-patient__login-menu {
    position: relative;
    display: inline-block;
}

/*
 * 触发按钮 —— B16.2 批（1.20.2）：**去外框 / 纯图标**，整体贴着图标收窄。
 *
 * 为什么改：真机截图上「人像图标 + ▾」套在圆角胶囊里，占位比图标本身宽一倍，
 * 主题 header 上像一块按钮补丁。现在没有描边、没有底色、没有左右内边距 ⇒
 * 按钮宽度 = 图标 24px + gap 4px + ▾，与旁边的 header 元素同一条基线、不再撑宽。
 * `padding: 2px 0` 只留上下 2px（左右仍为 0）：高度跟着内容走 —— 游客态 24 + 4 = 28px、
 * 已登录态 28px 头像 + 4 = 32px，两种状态都比原来「胶囊」矮，登录前后 header 不会被顶开。
 * 焦点轮廓挪到 `:focus-visible` 那条（键盘无障碍不能丢 —— 没有边框就更需要它）。
 */
.unithmemd-patient__login-toggle {
    /* B11.4 批：气泡绝对定位的基准（就地补一行 —— 同名选择器全表只允许一条，见 §B11.4 段头） */
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 0;
    background: transparent;
    border: 0;
    color: #111;
    font-size: 14px;
    font-family: inherit;
    cursor: pointer;
    transition: opacity 150ms ease;
}

/* hover：没有胶囊可填 ⇒ 只压一点透明度（图标 + ▾ 一起变淡，反馈仍在） */
.unithmemd-patient__login-toggle:hover {
    opacity: 0.7;
}

/* 键盘焦点：2px 实线轮廓 + 2px 外扩（无边框按钮的唯一可见焦点信号） */
.unithmemd-patient__login-toggle:focus-visible {
    outline: 2px solid #111;
    outline-offset: 2px;
}

/* 图标放大到 24px：多出来的 4px 由去掉的左右内边距（24px）抵掉，净占位反而更小 */
.unithmemd-patient__login-toggle svg {
    width: 24px;
    height: 24px;
    color: #111;
}

/* 下拉面板 */
.unithmemd-patient__login-panel {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    min-width: 200px;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
    padding: 6px;
    z-index: 9999;
}

.unithmemd-patient__login-panel[hidden] {
    display: none;
}

.unithmemd-patient__login-panel a,
.unithmemd-patient__login-panel button {
    display: block;
    width: 100%;
    text-align: left;
    padding: 10px 14px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #111;
    font-size: 14px;
    font-family: inherit;
    line-height: 1.4;
    text-decoration: none;
    cursor: pointer;
    min-height: 40px;
    box-sizing: border-box;
}

.unithmemd-patient__login-panel a:hover,
.unithmemd-patient__login-panel button:hover {
    background: #f3f4f6;
}

/* 分隔线 */
.unithmemd-patient__login-sep {
    height: 1px;
    background: #f3f4f6;
    margin: 6px 8px;
    border: 0;
}

/* Google 登录容器（B6 批的占位外观：GIS 画出官方按钮之前的样子，之后由 JS 补 `--gis`/`--msg`，见 §B7） */
.unithmemd-patient__login-google {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    background: #fff;
    color: #111;
    font-size: 14px;
    text-decoration: none;
    margin: 4px 0;
    cursor: pointer;
    min-height: 40px;
    box-sizing: border-box;
}

.unithmemd-patient__login-google:hover {
    background: #f9fafb;
}

.unithmemd-patient__login-google svg {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}

/* 已登录时的头像圆 */
.unithmemd-patient__login-avatar {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #f3f4f6;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #111;
    flex-shrink: 0;
}

.unithmemd-patient__login-avatar svg {
    width: 18px;
    height: 18px;
}

/*
 * ── §B7（B7 批，2026-10-09）：Google 登录容器的另外两种样子 ───────────────────────────────────
 *
 * §B6 那段 `__login-google` 是容器**最开始**的样子（B6 批的占位：一行「G 图标 + Continue with
 * Google」）。B7 批把真按钮交给 GIS（`assets/js/account-google.js` 在面板打开时 `renderButton()`）
 * ⇒ 容器一共三种状态，本节补后两种：
 *   ① 无修饰  = 占位（上面 §B6 那条）：面板已开、按钮还没画出来 —— 位置先占住，开合时高度不跳；
 *   ② `--gis` = GIS 画好了：容器里只剩 Google 的 iframe ⇒ 把 §B6 那层框**退掉**
 *               （不退就是「框里套框」：Google 的按钮自己带边框）；
 *   ③ `--msg` = 画不出来 / 登录被拒：一行红字。整块替换（按钮还没画）时连框一起退；
 *               挂在已画好的按钮下面（子节点）时，只是按钮下方多一行说明。
 *
 * 为什么容器正好 200 宽：GIS 不传 `width` 时**按容器宽度**画，而 `.unithmemd-patient__login-panel`
 * 的 `min-width: 200px` 落在**内容盒**上 —— 那段 DOM 住在主题 header 里、不在 `.unithmemd-patient`
 * 容器内，吃不到 §1 的 `box-sizing: border-box` 重置 ⇒ 面板内容盒 = 200px，容器（块级、宽度
 * 自适应）也是 200px ⇒ iframe 正好铺满。传 `width` 反而不好：GIS 的下限是 200，面板更窄时会溢出。
 *
 * 色值用字面量（`#dc2626` = §1 的 `--unithmemd-patient-danger`）：本菜单在 `.unithmemd-patient`
 * 之外，拿不到那边定义的 token —— 与 §B6 同一条纪律。
 */

/* ② GIS 把按钮画进来了 ⇒ 退掉 §B6 的链接外观（`display:flex` + 内边距 + 边框一起走） */
.unithmemd-patient__login-google--gis {
    display: block;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: none;
    min-height: 0;
    cursor: default;
}

/* ③ 明说失败（`--gis` 之后才可能被加上，两条本来就是二选一） */
.unithmemd-patient__login-google--msg {
    display: block;
    padding: 0;
    border: 0;
    background: none;
    min-height: 0;
    margin: 6px 0 0;
    color: #dc2626;
    font-size: 13px;
    line-height: 1.5;
    cursor: default;
}


/* ==========================================================================
   §B11.4 主题 header 未读铃：椭圆按钮右上角的橘黄气泡 + 下拉里那一行内联数字
   （B11.4 批，2026-10-12；**追加于既有 2435 行（§B11.3 段尾）之后**）
   --------------------------------------------------------------------------
   服务对象 = 短代码 `[unithmemd_patient_login_menu]` 的**已登录态**（见
   `includes/class-patient-login-menu.php` 的 `member_toggle()` / `member_panel()`）：
   按钮右上角一颗橘黄数字气泡、下拉里一行 `Unread replies N`；
   两者**只在有未读（> 0）时渲染** ⇒ 本段命中时页面上一定真有数字（不是空壳）。

   本段三条规则，逐条说明：

   ① `.unithmemd-patient__login-badge`（按钮上那颗）：`position: absolute` + `top: -6px` /
      `right: -4px` ⇒ 压出椭圆**外面**（椭圆高约 36px、圆角 24px；气泡 20px 挂在右上角外侧，
      不把 ▾ 挤走、也不撑宽按钮）；`min-width` + `padding` 让它随数字变宽（`99+` 也不会溢出），
      `border-radius: 10px` = 高度的一半 ⇒ 胶囊形；`border: 2px solid #fff` 是**白描边** ——
      气泡压在主题 header 的底色上，白边把它与按钮轮廓分开；`box-sizing: border-box` 是**必须**
      的（§B6 同一条纪律：这块 DOM 不在 `.unithmemd-patient` 容器内，吃不到我的盒模型重置）——
      少了它 `height: 20px` + 2px 边框会渲染成 24px，10px 圆角就不是「半高」了；
      `z-index: 2` 只在本段内部有意义（它要盖过按钮自己的底色），`box-shadow` 是同色浅影。

   ② `.unithmemd-patient__login-badge-inline`（下拉里那个）：同一个橘黄、同一个尺寸，只是
      **不绝对定位**（`display: inline-block`）；`margin-left: auto` 把它推到那一行的右端 ——
      这一条**靠 ③ 才生效**（块级行内盒里的 `margin-left: auto` 会算成 0，气泡会贴着文字）。

    ③ `.unithmemd-patient__login-panel a.unithmemd-patient__login-badge-link`（未读那一行的
      `<a>`）：把 §B6 那条 `.unithmemd-patient__login-panel a`（`display: block`）就地升成
      `display: flex` + `align-items: center` —— 选择器权重 (0-2-1) 高于那条的 (0-1-1)、本段又在
      文件更后面 ⇒ 后写胜出（那条规则本身一字未动，`My account` / 登出按钮仍按它的 `block` 排布）；
      `__login-badge-link` 只挂在**未读那一行**的 `<a>` 上 ⇒ 这条 flex 只对它生效。

   为什么按钮上那颗要绝对定位（而不是排在 ▾ 后面）：它必须压出椭圆外沿（原型口径）；静态盒会
   把按钮撑宽、把 ▾ 挤到不自然的位置。绝对定位不参与按钮的 `inline-flex` 布局；气泡不是第二个
   入口（`pointer-events` 不用动：它是 `<button>` 的子节点，点它照样触发按钮自己那个监听器，
   `account-header.js` 的「点菜单里不收起」判定也把整块 `__login-menu` 算在里面）。

   为什么 `position: relative` 加在 §B6 那条 `.unithmemd-patient__login-toggle` **里面**
   （不在本段另写一条）：同名选择器全表只允许一条（判据 95 逐条钉着）—— 再写一条 `position:
   relative` 会当场把那批判据弄红，就地补一行是唯一合规的加法（那条规则其余十三条取值一字未动）。

   本段零 `!important`、零 `max-width` 媒体查询、选择器一律以 `.unithmemd-patient` 打头（[E1] 红线）；
   零 `transition`（静态角标，没有动效 —— 与 §B11.3 那条同一条纪律）。
   ========================================================================== */
.unithmemd-patient__login-badge {
    position: absolute;
    top: -6px;
    right: -4px;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    box-sizing: border-box;
    background: #f59e0b;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    line-height: 20px;
    text-align: center;
    border-radius: 10px;
    border: 2px solid #fff;
    z-index: 2;
    box-shadow: 0 1px 3px rgba(245, 158, 11, 0.4);
}

.unithmemd-patient__login-badge-inline {
    display: inline-block;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    box-sizing: border-box;
    background: #f59e0b;
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    line-height: 20px;
    text-align: center;
    border-radius: 10px;
    margin-left: auto;
}

.unithmemd-patient__login-panel a.unithmemd-patient__login-badge-link {
    display: flex;
    align-items: center;
}


/* ==========================================================================
   §B16.4：竖向抽屉菜单底部的登录块（B16.4 批，2026-10-30）
   - 服务对象 = `Login_Menu::append_nav_item()` 追加到**竖排菜单**末尾的那一个 `<li>`
     （`.unithmemd-patient__nav-login`，见 `includes/class-patient-login-menu.php`）；
   - 这块 DOM 住在**主题 header 的抽屉**里（不在 `.unithmemd-patient` 容器内）⇒ 与 §B6 同一条
     纪律：字面色值、自带需要的盒属性，不依赖任何祖先容器或 CSS 变量；
   - **不跟主题抢排版**：抽屉里那些菜单项的 16px 22px 内边距 / 19px 字号 / 一条淡分隔线，是
     医院插件 `public/assets/css/site-chrome.css` ⑥ 那条 `#main-menu li > a:not(.button)` 用
     `!important` 钉出来的（本插件零 `!important`，抢不过也不该抢）⇒ 本段**只补**那条规则管不到
     的三样东西：`<li>` 自身的重置（主题只画 `a`）、圆盘与文字的**中线对齐**、以及登出那颗
     `<button>`（它不是 `a`，主题那套一行样式不会落到它身上）；
   - 登出按钮的几何（`16px 22px` / `19px` / `1px solid rgba(15,15,15,.07)`）**逐字与那条
     `li > a` 同档**：抽屉里一行是链接、一行是按钮，看上去必须一样高、同一基线；
   - [E1] 三条红线：选择器一律以 `.unithmemd-patient` 打头、零 `!important`、零 `max-width`
     媒体查询（这块跟着主题抽屉自己的排版走，没有自己的断点）；
   - 追加于 §B15 段 ⑰（文件末尾）之后，既有规则一条未动。
   ========================================================================== */

/* ① 那块 `<li>` 本体：主题只给 `a` 画线，`li` 自己什么都不用（清掉列表符号与任何继承边框） */
.unithmemd-patient__nav-login {
    list-style: none;
    margin: 0;
    padding: 0;
    border: 0;
}

/* ② 头像 / 人像圆：§B6 那颗是 28px（header 按钮里的尺寸），抽屉里一行 19px 字 ⇒ 放到 36px；
      `vertical-align: middle` 让圆与旁边那行文字共用一条中线（抽屉里的 `a` 是 `display: block`，
      这里按**行内**布局算，不跟主题抢 `display`） */
.unithmemd-patient__nav-login .unithmemd-patient__login-avatar {
    width: 36px;
    height: 36px;
    margin-right: 10px;
    vertical-align: middle;
    border-radius: 50%;
    background: #f3f4f6;
    color: #111;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    flex-shrink: 0;
}

/* ③ 圆里那颗线条人像：比 §B6 的 18px 大一档（与 36px 圆同一个比例） */
.unithmemd-patient__nav-login .unithmemd-patient__login-avatar svg {
    width: 20px;
    height: 20px;
}

/* ④ 真头像那张 `<img>`（`get_avatar()` 给的）：铺满外层圆 + 方图裁圆 */
.unithmemd-patient__login-avatar-img {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
}

/* ⑤ 首字母（没有真头像时的第二级兜底）：**中性灰**底 + 深灰字（B16.5 批把品牌绿换掉了 ——
      全屏抽屉是黑白面板，一颗绿圆太跳；字重仍压到 700 才在小圆里站得住） */
.unithmemd-patient__login-avatar-initial {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    color: #6b6b6b;
    background: #e9e9e9;
    font-size: 15px;
    font-weight: 700;
    line-height: 1;
}

/* ⑥ 名字 / `Log in` 那半行：同一条中线（`a` 是块级、这两段是行内 ⇒ 只给对齐，不改排版） */
.unithmemd-patient__nav-login-label {
    vertical-align: middle;
}

/* ⑦ 登出表单：外壳不占额外盒（行高 / 内边距全交给下面那颗按钮） */
.unithmemd-patient__nav-login-logout {
    margin: 0;
    padding: 0;
    border: 0;
}

/* ⑧ 登出按钮：几何逐字照抄抽屉里那行 `li > a`（见段头「登出按钮的几何」），
      于是「头像 + 名字」与「Log out」两行看上去一样高、同一基线、同一条分隔线 */
.unithmemd-patient__nav-login-logout button {
    display: block;
    width: 100%;
    margin: 0;
    padding: 16px 22px;
    border: 0;
    border-bottom: 1px solid rgba(15, 15, 15, 0.07);
    background: transparent;
    color: #0f0f0f;
    font-size: 19px;
    font-family: inherit;
    font-weight: 500;
    line-height: 1.3;
    text-align: left;
    cursor: pointer;
    box-sizing: border-box;
}


/* ==========================================================================
   §B16.5：登录页 / 注册页表单上方的 Google 登录（B16.5 批，2026-10-30）
   - 服务对象 = `Login_Menu::oauth_block()` 返回的那一块（`templates/login.php` /
     `templates/register.php` 各调用一次，插在表单**上方**）：
       `.unithmemd-patient__oauth`（外层，只管与表单的间距）
         ├ `.unithmemd-patient__login-google`（与 header 面板里**同一个**容器；GIS 往里面画按钮）
         └ `.unithmemd-patient__login-sep--or`（一条 1px 细线 + 中间那句提示）
   - 面板里那份**一个字都不动**：本节选择器要么以 `__oauth` 打头（只命中页内），要么是
     `__login-sep--or` 这个**新修饰类**（面板里那条分隔线是 `<hr class="…__login-sep">`，没有修饰类）
     —— 抽屉 / 页眉 / 页脚里既有的观感不吃本节的任何一条；
   - GIS 的按钮尺寸由 JS 参数决定（`account-google.js` 的 `draw()` 不传 `width`，GIS 按容器宽度画）⇒
     CSS 只**兜容器**：宽度铺满、高度至少 46px（占位态正好 46px，也满足触屏目标的 44px 下限）；
   - [E1] 三红线：选择器一律以 `.unithmemd-patient` 打头、零 `!important`、零 `max-width` 媒体查询；
     本节也零 `transition`、零自定义属性（同 §B16.4：这块 DOM 住在主题外框里，拿不到 §1 的 token）；
   - **零品牌绿**：灰字 `#6b6b6b` + 细线 `rgba(15, 15, 15, 0.08)`，与抽屉面板的黑白口径一致；
   - 追加于 §B16.4 段 ⑧（文件末尾）之后，既有规则一条未动。
   ========================================================================== */

/* ① 外层：与下面那张表单之间留 18px（表单自己的上外边距归 §1 / §E 管，本节不伸手） */
.unithmemd-patient__oauth {
    margin: 0 0 18px;
}

/* ② Google 容器在**页内**的形状：整行宽 + 46px 高 + 胶囊圆角（占位态；GIS 画完由 ③ 接管高度） */
.unithmemd-patient__oauth .unithmemd-patient__login-google {
    width: 100%;
    min-height: 46px;
    margin: 0;
    border-radius: 999px;
    box-sizing: border-box;
    justify-content: center;
}

/* ③ GIS 画好之后（`--gis`）：容器里只剩那颗 iframe ⇒ 高度交回 Google（它自己 40px），
      居中摆放；这里显式重写一遍，是因为 ② 的两类选择器权重比 §B7 那条 `--gis` 高 */
.unithmemd-patient__oauth .unithmemd-patient__login-google--gis {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 0;
    padding: 0;
    border: 0;
    background: none;
}

/* ④ 分隔行本体：`--or` 修饰类把 §B6 那条 `<hr>` 的细线外观（1px 实底 / 6px 8px 外边距）整体换掉，
      改成「左右两条 1px 线 + 中间一句 13px 灰字」的 flex 行（见 ⑤ 的两个伪元素） */
.unithmemd-patient__login-sep--or {
    display: flex;
    align-items: center;
    gap: 12px;
    height: auto;
    margin: 14px 0 0;
    border: 0;
    background: none;
    color: #6b6b6b;
    font-size: 13px;
    line-height: 1.4;
}

/* ⑤ 两条线：`flex: 1 1 auto` 各占一半剩余宽度 ⇒ 中间的字永远居中，两侧等长 */
.unithmemd-patient__login-sep--or::before,
.unithmemd-patient__login-sep--or::after {
    content: "";
    flex: 1 1 auto;
    height: 0;
    border-top: 1px solid rgba(15, 15, 15, 0.08);
}

/* ⑥ 中间那句提示（登录页 `or` / 注册页 `or sign up with email`）：不换行、不吃 flex 的伸缩 */
.unithmemd-patient__login-sep--or span {
    flex: 0 0 auto;
    color: #6b6b6b;
    font-size: 13px;
    white-space: nowrap;
}


/* ==========================================================================
   §B16.6：页内可放置的登录块（短代码 `[unithmemd_patient_login_block]`，B16.6 批，2026-10-30）
   - 服务对象 = `Login_Menu::login_block( 'page' )` 返回的那块：
       `.unithmemd-patient__login-block`（自包含外壳）
         ├ `.unithmemd-patient__oauth` + `.unithmemd-patient__login-google` + `__login-sep--or`
         │    ← 直接复用 `oauth_block()`（B16.5 批那份），**本节零新规则**：Google 按钮的
         │      100% / 46px / 999 圆角与分隔线那两条 `1px solid rgba(15, 15, 15, 0.08)` 全在 §B16.5；
         ├ `.unithmemd-patient__nav-login-link` ×2（`Log in` / `Create account`，游客）
         └ `.unithmemd-patient__nav-login-logout` + `button`（已登录）
   - 为什么要自带盒属性：短代码会被贴进**任何**主题页面 / 区块 / 小工具，祖先容器是谁完全不可知
     ⇒ 这一节不依赖任何祖先、不引用任何 CSS 变量，内边距 / 边框 / 圆角 / 底色 / 字号全在 ① 里；
   - 里面那些行**与抽屉同一个方法产出**（`guest_rows()` / `member_rows()`）⇒ 类名仍是
     `__nav-login-*`；本节用「祖先 = `__login-block`」把它们从「抽屉里的整行」改写成「100% 宽 +
     999 圆角 + 46px 高的胶囊按钮」，抽屉那一份（§B16.4）一条未动（权重多一层 ⇒ 只在这里生效）；
   - 桌面与手机**同一套几何**（宽度 100%、按钮 100%、无断点）：这块在多宽的容器里都自适应，
     46px 也满足触屏目标的 44px 下限；
   - [E1] 三红线同上：选择器一律以 `.unithmemd-patient` 打头、零 `!important`、零 `max-width`
     媒体查询；本节也零 `transition`、零自定义属性（同 §B16.4 / §B16.5 的理由：DOM 住在主题外框里）；
   - **零品牌绿**：`#6b6b6b` 灰阶 + `rgba(15, 15, 15, 0.08 / 0.12)` 细线，与抽屉 / 页内 Google
     那两块同一口径；
   - 追加于 §B16.5 段 ⑥（文件末尾）之后，既有规则一条未动。
   ========================================================================== */

/* ① 外壳：自包含卡片（无祖先可依赖 ⇒ 盒子自己给）。`flex` 竖排 + `gap` 让「Google → 分隔行 →
      两行按钮」的间距只有一个来源（不用给每个孩子写外边距） */
.unithmemd-patient__login-block {
    display: flex;
    flex-direction: column;
    gap: 10px;
    box-sizing: border-box;
    width: 100%;
    margin: 0;
    padding: 22px;
    border: 1px solid rgba(15, 15, 15, 0.08);
    border-radius: 14px;
    background: #fff;
    color: #0f0f0f;
    font-size: 15px;
    line-height: 1.5;
}

/* ② 复用进来的 `__oauth` 在页内只管「与下面那张表单留 18px」；进了卡片之后间距归 ① 的 `gap`，
      这里把它归零（权重多一层 ⇒ 只命中卡片里的那一份，登录页 / 注册页那份不受影响） */
.unithmemd-patient__login-block .unithmemd-patient__oauth {
    margin: 0;
}

/* ③ 邮箱那两行：抽屉里是「整行」，页内是「胶囊按钮」—— 100% 宽 + 999 圆角 + 46px 高
      （与 Google 那颗同一档）；`justify-content: center` 让「图标 + 文字」居中，长名字也不换行地
      挤成一团（`white-space` 不动，交给浏览器在词边界折行） */
.unithmemd-patient__login-block .unithmemd-patient__nav-login-link {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    min-height: 46px;
    margin: 0;
    padding: 0 18px;
    border: 1px solid rgba(15, 15, 15, 0.12);
    border-radius: 999px;
    background: #fff;
    color: #0f0f0f;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.3;
    text-align: center;
    text-decoration: none;
    box-sizing: border-box;
}

/* ④ 悬停：两行按钮与登出按钮同一档反馈（只换底色；本节零 `transition`） */
.unithmemd-patient__login-block .unithmemd-patient__nav-login-link:hover,
.unithmemd-patient__login-block .unithmemd-patient__nav-login-logout button:hover {
    background: #f5f5f5;
}

/* ⑤ 登出表单：外壳不占额外盒（间距归 ① 的 `gap`，行高 / 内边距全交给下面那颗按钮） */
.unithmemd-patient__login-block .unithmemd-patient__nav-login-logout {
    margin: 0;
    padding: 0;
    border: 0;
}

/* ⑥ 登出按钮：与 ③ 那两行**同一套几何**（抽屉里是 16px 22px / 19px 的整行，页内是胶囊 ——
      一行是链接、一行是按钮，看上去必须一样高、同一基线） */
.unithmemd-patient__login-block .unithmemd-patient__nav-login-logout button {
    display: block;
    width: 100%;
    min-height: 46px;
    margin: 0;
    padding: 0 18px;
    border: 1px solid rgba(15, 15, 15, 0.12);
    border-radius: 999px;
    background: #fff;
    color: #0f0f0f;
    font-size: 15px;
    font-family: inherit;
    font-weight: 600;
    line-height: 1.3;
    text-align: center;
    cursor: pointer;
    box-sizing: border-box;
}


/* ==========================================================================
   §B16.7：抽屉登录块的三处修正（B16.7 批，2026-10-30）
   - 服务对象 = 主题抽屉（Flatsome `#main-menu` 那种竖排菜单）里由
     `Login_Menu::login_block( 'drawer' )` 追加进去的
     `<li class="unithmemd-patient__nav-login">`：
       ① 两行链接 `.unithmemd-patient__nav-login-link`（Log in / Create account）；
       ② Google 容器 `.unithmemd-patient__login-google`（GIS 往里面画 iframe）；
       ③ GIS 画不出来时那行灰字（`--msg` + `--unavailable`）。
   - 为什么需要 ①：§B16.2 把旧规则的选择器改成 `.unithmemd-patient__nav-login-link`，
     但抽屉的外壳类名是 **`__nav-login`**（§B16.4 那个 `<li>`）⇒ 旧规则一条都命中不了，
     两行链接退回主题的绿色行内链接（下划线 + 品牌绿）。本节按 §B16.6 ③ 的胶囊几何补回，
     只多一层祖先 `__nav-login`，页内登录块（§B16.6）那份不受影响；
   - 为什么需要 ②：抽屉开局 `display: none`，GIS 在那一刻量到 0 宽 ⇒ 画出来的 iframe
     只有 0 宽。CSS 是最后一道保险：容器与 iframe / GIS 自己的 `div[role="button"]`
     一律铺满行宽（GIS 的内联 `width` 属性被 CSS 覆盖）；
   - ③ 兜底文案用灰色（`#6b6b6b`）而不是 §B7 的红：这一行是「本页暂时没有 Google」，
     不是一次失败的登录；
   - [E1] 三红线同上：选择器一律以 `.unithmemd-patient` 打头、零 `!important`、
     零 `max-width` 媒体查询；本节零 `transition`、零自定义属性、零品牌绿
     （`#009E5F` / `#1a9d5e` / `#1A9D5E` 都不出现）；
   - 追加于 §B16.6 段 ⑥（文件末尾）之后，既有规则一条未动。
   ========================================================================== */

/* ① 抽屉里那两行：与 §B16.6 ③ 同一套胶囊几何（100% 宽 / 46px 高 / 999 圆角） */
.unithmemd-patient__nav-login .unithmemd-patient__nav-login-link {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    min-height: 46px;
    margin: 0;
    padding: 0 18px;
    border: 1px solid rgba(15, 15, 15, 0.12);
    border-radius: 999px;
    background: #fff;
    color: #0f0f0f;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.3;
    text-align: center;
    text-decoration: none;
    box-sizing: border-box;
}

/* ② 悬停只换底色（本节零 `transition`） */
.unithmemd-patient__nav-login .unithmemd-patient__nav-login-link:hover {
    background: #f5f5f5;
}

/* ③ Google 容器铺满行宽：容器 + GIS 的 iframe + 它自己的按钮层，三者一起（少了任何一层，
      抽屉里都会出现「容器 100%、按钮 200px」的错位） */
.unithmemd-patient__nav-login .unithmemd-patient__login-google,
.unithmemd-patient__nav-login .unithmemd-patient__login-google iframe,
.unithmemd-patient__nav-login .unithmemd-patient__login-google div[role="button"] {
    width: 100%;
    box-sizing: border-box;
}

/* ④ 画不出来：一行灰字（不是登录失败那行红字，见段头 ③） */
.unithmemd-patient__login-google--unavailable {
    color: #6b6b6b;
}



