/* Phase 6.3 base —— 全站字体 / 色板 / 基础排版；主题 CSS 在此之后叠加 */

@import url('/apps/shared/css/reset.css');

/* Phase 8.3.16: Vue v-cloak 防 FOUC.
   Vue 初始化前 [v-cloak] 属性还在, 元素隐藏; mount 完成 Vue 自动移除属性, 元素显示.
   适用所有主题 + 所有 Vue 挂载点 (contact / progress / apply 等).
   要求挂载点根元素加 v-cloak directive, 见 themes/*/contact.blade.php 等. */
[v-cloak]{
    display: none !important;
}

:root {
    /* 色板 */
    --color-primary: #2563eb;
    --color-primary-hover: #1d4ed8;
    --color-text: #1f2937;
    --color-text-muted: #6b7280;
    --color-bg: #ffffff;
    --color-bg-soft: #f9fafb;
    --color-border: #e5e7eb;
    --color-danger: #dc2626;
    --color-success: #16a34a;

    /* 字体 */
    --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC",
        "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;
    --font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;

    /* 尺寸 */
    --radius-sm: 4px;
    --radius-md: 8px;
    --radius-lg: 12px;
    --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
    --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
}

html {
    font-family: var(--font-sans);
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body {
    color: var(--color-text);
    background-color: var(--color-bg);
    min-height: 100vh;
}

/* a 链接样式由各主题自管 (theme.css). base 不设默认色 / hover, 避免:
   1) base --color-primary (蓝) 覆盖主题的导航 / 链接品牌色;
   2) a:hover 特异度 (0,1,1) 盖过 .btn-primary (0,1,0), 把按钮文字变蓝 + 下划线.
   reset.css 已让 a 默认 color: inherit / text-decoration: none, 主题不写也不会出
   浏览器默认蓝色下划线. */

/* 可达性：focus-visible 保留键盘导航轮廓 */
:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
}

/* Phase 8.5.4 续 (2026-05-13): .hidden 通用隐藏类.
   paymentFlow.start 用 classList.add('hidden') / remove('hidden') 切 4 态 DOM
   (loading-state / iframe-wrapper / success-state / failed-state / pending-state).
   之前 fox + shared CSS 未定义此类导致 4 态同时显示 — 视觉 bug. */
.hidden {
    display: none !important;
}
