@charset "UTF-8";
/* =============================================================================
   hydro-apple —— 视觉质感覆盖层 (v2)
   -----------------------------------------------------------------------------
   设计立场：保留 Hydro 的信息架构、信息密度与交互方式，只替换"设计语言"
   中确实不该由 OJ 自己决定的部分。优先级：信息架构 > 可读性 > 性能 > 装饰。

   本文件的核心原则是 **尽可能小的改动面**：
   分析后判定"原版更好"的部分，这里一条规则都不写，让原版样式原样生效 ——
     · 标题体系 (h1-h6 字重 300、#3d3d3d；.section__title #646464)
     · 行高体系 (body line-height:1 + 各组件的 px 行高；.typo p 1.75)
     · 信息密度 (.section__header/.section__body 的原版 padding)
     · 卡片深度 (原版阴影 0 6px 22px #afc2c980，无边框)
     · 表格 (13px / 26px 行高 / #f4f4f4 斑马纹 / #e4e4e4 分隔线)
     · 按钮底色 (#eee + #ddd 边，一眼可点) 与输入框聚焦环 (outline 机制)
     · Markdown 与代码块的全部排版
     · 题目正文、评测结果的容器语义 (不加卡片、不加玻璃)
   因此本文件比 v1 短得多 —— 这是刻意的。

   只做四件事：
     1  单一强调色收敛 (原版散成 8 种色相、126 处声明)
     2  整幅柔和多色渐变背景 (radial-gradient 铺满，零 filter 开销)
     3  顶部导航毛玻璃 + 恢复被 v1 删掉的活动项指示条
     4  圆角分层 (页面级 20 / 卡片 16 / 控件 10 / 标签 8 / 表格内 0)

   回滚：从 /root/.hydro/addon.json 删掉本包路径，pm2 restart hydrooj。
   ============================================================================= */


/* ============================ 1. 设计令牌 ============================ */
:root:root{
  /* 唯一强调色。原版 UI 里同时存在 #5f9fd6(蓝) #ed5f82(粉) #00b4cc(青)
     #d11845(深红) #4690d0 #9ae3f3 #df6589 #35a2ff —— 这里全部收敛到一处。 */
  --ap-accent:       #0071e3;
  --ap-accent-hover: #0077ed;
  --ap-accent-soft:  rgba(0, 113, 227, .10);
  --ap-accent-ring:  rgba(0, 113, 227, .22);

  --ap-bg: #fbfbfd;
  /* 正文与次要文字。v2 重写令牌块时漏掉了这两个，但下面仍在使用 —— 
     undefined 的 var 会让整条声明失效，所以补回定义。 */
  --ap-text:   #1d1d1f;
  --ap-text-2: #6e6e73;

  /* 圆角分层：不是一个数值套全站 */
  --ap-radius-page: 20px;   /* 页面级容器 / 模态框 */
  --ap-radius-card: 16px;   /* 主要卡片 */
  --ap-radius-ctl:  10px;   /* 输入框 / 按钮 */
  --ap-radius-tag:  8px;    /* 标签 */
  /* 表格内部：0，不设规则 */

  --ap-rainbow: linear-gradient(90deg, #ff3b30, #ff9500, #ffcc00, #34c759, #007aff, #af52de);
}

/* 字体不在这里改。字体栈在 templates/layout/html5.html 里改：
   把 Consolas / SF Mono / Menlo 前置到原版字体栈之前，这样英文与数字命中
   Consolas，中文因 Consolas 无 CJK 字形而自动落回原版栈的苹方/雅黑。 */


/* ============================ 2. 背景 ============================ */
/* 设计取自用户 PPT 的封面：**整块画布是一层柔和的多色渐变**，白卡浮在上面。
     左上 暖橙 → 右上/右侧 薄荷绿 → 左下 浅蓝，四角各自带色、中间自然过渡。
   要按"铺满、边缘有色"来调：半径过大会把颜色摊薄到看不见（试过 115%，整页发白），
   左右两条主色带各占 ~34% 宽、颜色很浅（左侧 #FFF9E4 一档的奶油黄），
   沿整条边连续（角上小圆会在边距中段断色，实测过）。

   实现用一组大半径 radial-gradient 叠出来（每个都从视口外侧 120% 量级打进来），
   刻意**不用 `filter: blur()`**：多段 rgba 渐变本身就是连续的，观感一致；
   110px 量级的大模糊核是滚动掉帧的元凶（v1 就是因此撤掉的）。 */
:root:root body { background-color: var(--ap-bg); }

:root:root body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    /* 左侧整条边：极浅的奶油黄（#FFF9E4 方向），带宽适中 */
    radial-gradient(34% 104% at -10% 42%, rgba(255, 246, 214, .95), rgba(255, 246, 214, 0) 78%),
    /* 左上角一点点的橙意（比主带更淡） */
    radial-gradient(26% 36% at -2% -2%, rgba(255, 222, 186, .48), rgba(255, 222, 186, 0) 72%),
    /* 右侧整条边：薄荷绿 */
    radial-gradient(32% 100% at 110% 46%, rgba(202, 240, 209, .82), rgba(202, 240, 209, 0) 78%),
    /* 左下角：浅蓝 */
    radial-gradient(26% 38% at 0% 102%, rgba(196, 229, 247, .52), rgba(196, 229, 247, 0) 74%),
    /* 右下角：浅绿 */
    radial-gradient(26% 34% at 100% 102%, rgba(202, 238, 214, .50), rgba(203, 238, 214, 0) 76%)
}

/* 页面外壳恢复原版骨架：不再是 v1 那张内缩 10px、圆角 20px 的毛玻璃浮层。
   （v1 的全屏 backdrop-filter 是最贵的一处特效，这里取消。） */
:root:root:not(.layout--immersive) #panel { background: transparent; }
/* 沉浸式布局（登录页）刻意保留原版的全屏照片背景与"白字浮在照片上"的设计，
   所以上面的透明化必须排除它 —— 否则照片被抹掉，白字会落在浅色底上看不见。 */


/* ============================ 3. 顶部导航 ============================ */
/* 毛玻璃只保留这一处（用户允许的三处之一：导航 / 模态 / 极少量页面级容器）。
   导航只有 45px 高的一条，成本远低于 v1 覆盖整个视口的做法。 */
:root:root .nav {
  background: rgba(255, 255, 255, .80) !important;
  -webkit-backdrop-filter: blur(20px) saturate(160%);
  backdrop-filter: blur(20px) saturate(160%);
}
/* 不支持 backdrop-filter 时退回原版的近乎不透明白 */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  :root:root .nav { background: #fffffffa !important; }}

/* 移动端抽屉要能看清文字，单独给近不透明底。
   必须写在同样的媒体查询里 —— 上游只在 ≤600px 才把 .nav 当抽屉处理，
   不限定范围会反噬桌面端导航（v1 踩过这个坑）。 */
@media only screen and (max-width: 600px) {
  :root:root .nav.slideout-menu { background: rgba(255, 255, 255, .96) !important; }
  /* 抽屉改成浅色后，上游给"已访问/按下"导航项的白字会变成白底白字。
     上游那条规则只在 ≤600px 生效，所以这个修复也只在同一范围内做，
     桌面端（那里的已访问项是 #000）保持原样不动。 */
  :root:root .nav .nav__item:visited,
  :root:root .nav .nav__item:active,
  :root:root .nav .dropdown-target.menu .menu__link:visited,
  :root:root .nav .dropdown-target.menu .menu__link:active { color: var(--ap-text-2); }}

/* 彩虹只保留这一处：导航底部 2px 细线。
   v1 还在每个 .section__title 下面放了一条，一页重复四五次，已删除。 */
:root:root .nav::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  background: var(--ap-rainbow);
  opacity: .5;
  pointer-events: none;
}

/* 活动项指示条：原版是 .nav__item 的顶部 3px 边框，v1 把它删掉了。
   这里恢复原机制，只把颜色换成强调色（见第 5 节）。 */

:root:root .typo-a, :root:root .link { color: var(--ap-accent); }


/* ============================ 4. 圆角分层 ============================ */
/* 卡片：只加圆角，深度仍然交给原版阴影，不加边框（边框+圆角是官网卡片语言，
   会把 OJ 的信息块变成一个个"礼盒"）。 */
:root:root .section {
  border-radius: var(--ap-radius-card);
  /* 让内部表格的方角被卡片圆角裁掉。用 clip 而非 hidden：clip 不创建滚动
     容器，不会破坏 sticky 表头。 */
  overflow: clip;
}

/* 控件 */
:root:root .button:not(.codicon) { border-radius: var(--ap-radius-ctl); }
/* 上游把 .rounded 写成 1.09375rem 的胶囊形，按分层要求收回来 */
:root:root .button:not(.codicon).rounded { border-radius: var(--ap-radius-ctl); }
:root:root input.textbox,
:root:root textarea.textbox,
:root:root span.textbox,
:root:root .select { border-radius: var(--ap-radius-ctl); }
/* 上游 .search>input 是"无缝长条"设计：border-right:none、直角无圆角，搜索按钮与
   排序下拉都接在长条里。给它任何一侧圆角，都会让那条缺了右边框的灰线看起来像
   "被截断的一块" —— 所以这里彻底恢复原版直角，本就不该套用圆角阶梯（它不是普通输入框，
   而是长条的一段）。
   聚焦指示也一并交还原版：本文件全局的 :focus-visible 环只包住输入框那一段，会和右侧
   搜索按钮对不齐；而把环画到整条 .search 上会被外层 .section 的 overflow:clip 裁掉
   （实测不可见）。原版这里就是 outline:none，光标闪烁即是反馈，故一并恢复。 */
:root:root .search > input,
:root:root .search > button { border-radius: 0; }
:root:root .search input:focus-visible { outline: none; }

/* 标签 */
:root:root .problem__tag-link { border-radius: var(--ap-radius-tag); }

/* 模态框：页面级容器 */
:root:root .dialog__content,
:root:root .dialog.withBg .dialog__content { border-radius: var(--ap-radius-page); }
/* 登录弹窗的结构特殊（深色带 + 白色表单面板），圆角要加在真正可见的两层上，
   否则深色带的方角会从圆角容器里露出来。颜色一律不动 —— 原版深底浅字是对的。 */
:root:root .dialog--signin__bg,
:root:root .dialog--signin__main { border-radius: var(--ap-radius-page); }


/* ============================ 5. 单一强调色收敛 ============================ */
/* 下面每条都照抄上游选择器的"形状"来取得同等优先级，再靠本文件加载顺序在后取胜。
   凡是上游带 !important 的，这里也必须带。 */

/* --- 正文内链接：上游用一整组 :not(...) 把 12 个状态全部钉死 --- */
:root:root .typo a:not(.user-profile-name):not(.media-link),
:root:root .typo .link:not(.user-profile-name):not(.media-link),
:root:root .typo-a:not(.user-profile-name):not(.media-link),
:root:root .typo a:visited:not(.user-profile-name):not(.media-link),
:root:root .typo .link:visited:not(.user-profile-name):not(.media-link),
:root:root .typo-a:visited:not(.user-profile-name):not(.media-link),
:root:root .typo a:active:not(.user-profile-name):not(.media-link),
:root:root .typo .link:active:not(.user-profile-name):not(.media-link),
:root:root .typo-a:active:not(.user-profile-name):not(.media-link),
:root:root .typo a:hover:not(.user-profile-name):not(.media-link),
:root:root .typo .link:hover:not(.user-profile-name):not(.media-link),
:root:root .typo-a:hover:not(.user-profile-name):not(.media-link),
:root:root .collapsible-content .collapsible-toggle__link,
:root:root .dczcomments__operations a:hover { color: var(--ap-accent); }

/* --- 顶部导航 --- */
:root:root .nav__item.nav--active { border-color: var(--ap-accent); }
:root:root .nav .nav__item:hover { border-color: var(--ap-accent); }
:root:root .nav .nav__item.nav--active { border-color: var(--ap-accent); }
:root:root .nav .nav__item--round,
:root:root .nav .nav__item--round:visited,
:root:root .nav .nav__item--round:active { color: var(--ap-accent); border-color: var(--ap-accent); }
:root:root .nav .nav__item--round:hover { background-color: var(--ap-accent); }
:root:root .nav .dropdown-target.menu .menu__link.nav--active { border-color: var(--ap-accent); }
:root:root .nav .dropdown-target.menu .menu__link:hover { border-color: var(--ap-accent); }

/* --- 侧边菜单 --- */
:root:root a.menu__link.active,
:root:root button.menu__link.active,
:root:root a.menu__link.active:hover,
:root:root button.menu__link.active:hover { background: var(--ap-accent); border-color: var(--ap-accent); }
:root:root a.menu__link:not(.disabled):hover,
:root:root button.menu__link:not(.disabled):hover { border-color: var(--ap-accent); }
:root:root .menu__link.highlight { background: var(--ap-accent-soft); }

/* --- 分页 --- */
:root:root .pager__item.current { color: var(--ap-accent) !important; border-color: var(--ap-accent) !important; }
:root:root .pager__item.link:hover { border-color: var(--ap-accent); }

/* --- 标签页（题目详情 / 比赛 / 作业） --- */
:root:root .page--problem_detail .section__tab-header-item:hover,
:root:root .page--contest_detail_problem .section__tab-header-item:hover,
:root:root .page--homework_detail_problem .section__tab-header-item:hover { border-color: var(--ap-accent); }
:root:root .page--problem_detail .section__tab-header-item.tab--active,
:root:root .page--contest_detail_problem .section__tab-header-item.tab--active,
:root:root .page--homework_detail_problem .section__tab-header-item.tab--active { border-color: var(--ap-accent); }
:root:root .section__tab-container:not(.immersive) .section__tab-header-item:hover { border-color: var(--ap-accent); }
:root:root .section__tab-container:not(.immersive) .section__tab-header-item.tab--active,
:root:root .section__tab-container:not(.immersive) .section__tab-header-item.selected { border-color: var(--ap-accent); }
:root:root .section__tab-container.immersive .section__tab-header-item.selected::after { background: var(--ap-accent); }

/* --- 表单：去掉聚焦外框（原版是 2px 浅蓝 outline，只换色仍然是"蓝框"），
   焦点提示改由 border-color 变色承担（配合 material 标签的 .focus 变色）。 --- */
:root:root input.textbox:focus,
:root:root textarea.textbox:focus,
:root:root span.textbox:focus,
:root:root .select:focus,
:root:root .autocomplete-wrapper:focus,
:root:root .autocomplete-wrapper.focused {
  border-color: var(--ap-accent);
  outline: none;
}
/* 用 :not(.inverse) 把沉浸式登录页排除在外：那一页是"白字浮在照片上"的原始设计，
   聚焦色是淡黄 #ffef87。不排除的话，标签文字会被改成强调色而边框仍是淡黄，半新半旧。 */
:root:root label.textbox.material:not(.inverse) input:enabled:read-write:focus { border-color: var(--ap-accent); }
:root:root label.textbox.material:not(.inverse) input:enabled:-moz-read-write:focus { border-color: var(--ap-accent); }
:root:root label.textbox.material:not(.inverse).focus { color: var(--ap-accent); }
:root:root .checkbox input:checked { background: var(--ap-accent); border-color: var(--ap-accent); }
:root:root .checkbox input:enabled:hover { border-color: var(--ap-accent-ring); }
:root:root .radiobox.with-image .radiobox__image-container:hover { border-color: var(--ap-accent); }
:root:root .radiobox.with-image input:checked + .radiobox__image-container { border: 2px solid var(--ap-accent); }
:root:root .radiobox.with-image .radiobox__image-container::after { background: var(--ap-accent); }

/* --- 按钮：底色仍用原版的 #eee（白底按钮在白卡片上会失去可点性），只换强调色 --- */
:root:root .button:not(.codicon).primary { background-color: var(--ap-accent); border-color: var(--ap-accent); }
:root:root .button:not(.codicon).primary:not(.disabled):hover {
  background-color: var(--ap-accent-hover);
  border-color: var(--ap-accent-hover);
  box-shadow: none;
}
:root:root .button:not(.codicon):not(.disabled):focus { border-color: var(--ap-accent-ring); }

/* --- 其余零散用法 --- */
:root:root #nprogress .bar { background: var(--ap-accent); }
:root:root blockquote.note { border-color: var(--ap-accent); }
:root:root blockquote.note::before { color: var(--ap-accent); }
:root:root .search > button { background: var(--ap-accent); border-color: var(--ap-accent); }
:root:root .dialog--signin__title { color: var(--ap-accent); }
:root:root .problem__tag-link:hover { background: var(--ap-accent); }
:root:root .reactions .reaction.active,
:root:root .reactions .reaction:hover { border-color: var(--ap-accent); }
:root:root .search-tag__item.selected { background: var(--ap-accent) !important; }
:root:root .contest-tag:hover,
:root:root .discussion-node-tag:hover { background: var(--ap-accent); border-color: var(--ap-accent); }
:root:root .messagepad__list-item.active { background: var(--ap-accent-soft); border-color: var(--ap-accent); }
:root:root .side--other .messagepad__message__body { background: var(--ap-accent); }
:root:root .messagepad__input button:enabled { background-color: var(--ap-accent); }
:root:root .scratchpad__toolbar__button.activated { background: var(--ap-accent) !important; }
:root:root .page--discussion_main .discussion__item.highlight,
:root:root .page--discussion_node .discussion__item.highlight,
:root:root .page--blog_main .discussion__item.highlight,
:root:root .page--user_detail .discussion__item.highlight { border-left-color: var(--ap-accent); }

/* 以下五处是"正向覆盖校验"（.verify-accent-coverage.js）抓出来的漏网 ——
   它们藏在伪元素、简写属性或低频页面里，肉眼很容易漏掉。 */
/* 导航活动项除了顶部 3px 边框，上游还用 :before 做了一层发光 */
:root:root .nav .nav__item.nav--active::before {
  box-shadow: 0 0 30px var(--ap-accent), 0 0 30px var(--ap-accent);
}
/* 加载动画的高亮段 */
:root:root .loader { border-color: var(--ap-accent-soft); border-left-color: var(--ap-accent); }
/* nprogress 旋转图标（进度条已在上方改过） */
:root:root #nprogress .spinner-icon { border-top-color: var(--ap-accent); border-left-color: var(--ap-accent); }
/* 私信气泡的小箭头，改底色不同步会变成蓝箭头配蓝气泡 */
:root:root .side--other .messagepad__message__body::after { border-top-color: var(--ap-accent); }
/* 域权限页表头 */
:root:root .page--domain_permission .col--family { border-top-color: var(--ap-accent); }


/* ============================ 6. 保留项 ============================ */
/* 空状态：内联 SVG，不依赖外部图片 */
:root:root .nothing-icon {
  height: 116px;
  margin-bottom: 1rem;
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='120'%20height='120'%20viewBox='0%200%20120%20120'%20fill='none'%3E%3Crect%20x='16'%20y='32'%20width='88'%20height='62'%20rx='14'%20stroke='%23d2d2d7'%20stroke-width='4'/%3E%3Cpath%20d='M16%2050h88'%20stroke='%23d2d2d7'%20stroke-width='4'/%3E%3Ccircle%20cx='29'%20cy='41'%20r='3'%20fill='%23e8e8ed'/%3E%3Ccircle%20cx='41'%20cy='41'%20r='3'%20fill='%23e8e8ed'/%3E%3Ccircle%20cx='53'%20cy='41'%20r='3'%20fill='%23e8e8ed'/%3E%3Cpath%20d='M40%2070h40M40%2082h24'%20stroke='%23e8e8ed'%20stroke-width='4'%20stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: contain;
  filter: none;
}

/* 键盘可达性：原版把按钮/输入的默认 outline 关掉了，这里补回可见焦点环。
   不是装饰，是无障碍，故保留。 */
:root:root :focus-visible { outline: 2px solid var(--ap-accent); outline-offset: 2px; }

/* 输入类控件例外：Chrome 对文本框（即使用鼠标点击）也会匹配 :focus-visible，
   于是注册/登录页那个 autofocus 的邮箱框一进页面就顶着一个 2px 蓝框。
   输入框的焦点提示已由上面第 5 节的 border-color 承担，这里把外框关掉；
   按钮、链接、复选框等其余可聚焦元素仍保留键盘焦点环。 */
:root:root input:not([type]):focus-visible,
:root:root input[type="text"]:focus-visible,
:root:root input[type="password"]:focus-visible,
:root:root input[type="email"]:focus-visible,
:root:root input[type="number"]:focus-visible,
:root:root input[type="search"]:focus-visible,
:root:root input[type="url"]:focus-visible,
:root:root input[type="tel"]:focus-visible,
:root:root textarea:focus-visible,
:root:root select:focus-visible,
:root:root .textbox:focus-visible { outline: none; }

/* ============================================================================
   手机适配（≤600px）
   ----------------------------------------------------------------------------
   上游在 ≤600px 会切到一套独立的移动端布局：顶栏换成 .header--mobile、
   卡片改成满宽且去掉阴影、表格隐藏次要列，同时把根字号降到 13px。
   下面是 v2 在这套移动布局下暴露出的问题，全部只作用于 ≤600px，桌面端不动。
   ============================================================================ */
@media only screen and (max-width: 600px) {

  /* 1) 背景光晕在窄屏下铺满整屏。
        v2 的光晕尺寸写的是 rem：桌面端 34rem=544px；手机上根字号降到 13px，
        rem 跟着缩到 442px —— 但视口宽只有 375px，光晕直径仍大于视口宽，
        于是整屏被均匀染色。规范明确要求"不要铺满、只在两角"，所以窄屏改用视口
        宽度取比例：光晕约占 2/3 屏宽，中心保持干净。 */
  :root:root body::before {
    background:
      /* 窄屏同样是"铺满的多色渐变"，但半径按 vw 收窄，
         颜色集中在四条边，屏幕中央仍是干净的白卡。 */
      radial-gradient(120vw 90vw at 0% 0%, rgba(255, 203, 158, .58), rgba(255, 203, 158, 0) 58%),
      radial-gradient(115vw 85vw at 100% 3%, rgba(198, 239, 206, .55), rgba(198, 239, 206, 0) 60%),
      radial-gradient(115vw 90vw at 0% 100%, rgba(193, 227, 247, .48), rgba(193, 227, 247, 0) 60%),
      radial-gradient(110vw 85vw at 100% 100%, rgba(203, 238, 214, .46), rgba(203, 238, 214, 0) 62%);
  }

  /* 2) 卡片满宽后圆角贴到屏幕边缘。
        上游在 ≤600px 把 .section 改成满宽（负 margin 抵消列内边距）并去掉阴影，
        即原版移动端是"与屏幕齐平的方角块"。v2 保留的 16px 圆角会让圆角正好落在
        屏幕边缘，像是被裁掉一角。移动端恢复方角。 */
  :root:root .section { border-radius: 0; }

  /* 3) 移动端顶栏与桌面端导航不是一套皮肤。
        桌面端 .nav 已被 v2 做成磨砂白，而移动端顶栏 .header--mobile 仍是原版的
        纯色板岩蓝 #56758f —— 全站唯一的整块彩色条，与"白底 + 唯一强调色"冲突。
        这里让它和桌面端导航共用同一套毛玻璃（仍是同一处毛玻璃，不新增预算）。
        汉堡按钮的线条被上游写死成白色，必须同时改成深色，否则在白底上看不见。 */
  :root:root .header--mobile {
    background: rgba(255, 255, 255, .80);
    -webkit-backdrop-filter: blur(20px) saturate(160%);
    backdrop-filter: blur(20px) saturate(160%);
    color: var(--ap-text);
  }
  @supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
    :root:root .header--mobile { background: #fffffffa; }}
  :root:root .header--mobile a,
  :root:root .header--mobile a:visited,
  :root:root .header--mobile a:hover { color: inherit; }
  :root:root .hamburger-inner,
  :root:root .hamburger-inner:before,
  :root:root .hamburger-inner:after { background-color: var(--ap-text); }

  /* 4) 抽屉改成浅色后，上游给"已访问/按下/悬停"导航项的白字会变成白底白字。
        上游这几条只在 ≤600px 生效，所以修正也只在同一范围内做。 */
  :root:root .nav .nav__item:visited,
  :root:root .nav .nav__item:active,
  :root:root .nav .nav__item:hover,
  :root:root .nav .dropdown-target.menu .menu__link:visited,
  :root:root .nav .dropdown-target.menu .menu__link:active,
  :root:root .nav .dropdown-target.menu .menu__link:hover { color: var(--ap-text-2); }}