/* =====================================================================
 * MelodicSpeed 统一身份认证平台 —— CAS 主题样式
 *
 * 【设计目标】
 *   1) 一套字号/间距/圆角变量统一全站，杜绝"标题巨大、说明极小、按钮字又不一样"；
 *   2) 登录页左右分栏（左侧品牌、右侧表单卡），其它页面（登出/错误/MFA/同意）统一
 *      居中卡片，视觉语言一致；
 *   3) 只靠 CSS 兜住 CAS 自带模板，模板覆盖越少，升级 CAS 时要改的东西越少。
 *
 * 【两个必须保留的"手术刀"规则】（删了会坏功能，不是样式问题）
 *   - `.sr-only`：CAS 7.3 的密码显隐按钮用 sr-only 包住 "SHOW PASSWORD" 文本，
 *     没有这条规则，密码框右侧会直接露出英文；
 *   - `.mdc-text-field` 的宽度与 helper-line 隐藏：MDC 默认宽度会撑破卡片。
 * ===================================================================== */

/* ---------- 1. 设计令牌 ---------- */
:root {
    --ms-font: "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", "Noto Sans SC",
               -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    /* 字号阶梯：只用这 6 档，页面里不再出现 15.5/17/19 这种野值 */
    --ms-fs-xs: 12px;
    --ms-fs-sm: 13px;
    --ms-fs-base: 14px;
    --ms-fs-md: 16px;
    --ms-fs-lg: 20px;
    --ms-fs-xl: 26px;
    --ms-fs-2xl: 34px;

    --ms-c-brand: #2b59ff;
    --ms-c-brand-dark: #1e40d8;
    --ms-c-brand-soft: #eef2ff;
    --ms-c-text: #0f172a;
    --ms-c-text-2: #475569;
    --ms-c-text-3: #94a3b8;
    --ms-c-line: #e2e8f0;
    --ms-c-line-soft: #eef2f7;
    --ms-c-bg: #f4f6fb;
    --ms-c-danger: #d92d20;
    --ms-c-danger-soft: #fef3f2;
    --ms-c-danger-line: #fecdca;
    --ms-c-warn: #b54708;
    --ms-c-warn-soft: #fffaeb;
    --ms-c-ok: #067647;

    --ms-r-sm: 8px;
    --ms-r-md: 12px;
    --ms-r-lg: 18px;
    --ms-shadow-card: 0 18px 48px rgba(15, 23, 42, .08);
    --ms-shadow-btn: 0 8px 20px rgba(43, 89, 255, .24);
}

/* ---------- 2. 全局字体与基础排版 ---------- */
html { -webkit-text-size-adjust: 100%; }

/* 【必须】自定义主题替换掉了 CAS 自带的 cas.css，那条 box-sizing:border-box 也随之消失。
   没有它，width:100% + padding 的元素（尤其输入框）会撑出容器 —— 实测密码框比容器宽 78px，
   白色输入框右侧露在卡片外、显隐按钮也被挤到错误位置。这里补回全局 border-box。 */
*,
*::before,
*::after { box-sizing: border-box; }

body,
body.login,
.mdc-typography,
.mdc-typography--body1,
.mdc-typography--body2,
.mdc-typography--headline5,
.mdc-typography--headline6,
.mdc-typography--subtitle1,
.mdc-typography--subtitle2,
.mdc-button,
.mdc-text-field__input,
.mdc-floating-label,
input, select, textarea, button {
    font-family: var(--ms-font) !important;
    -webkit-font-smoothing: antialiased;
}

body {
    font-size: var(--ms-fs-base);
    color: var(--ms-c-text);
    background: var(--ms-c-bg);
    line-height: 1.65;
}

/* 标题层级：只保留三档，避免 CAS 各模板里 h1~h4 各写一套 */
h1 { font-size: var(--ms-fs-xl); font-weight: 700; line-height: 1.35; margin: 0 0 8px; }
h2 { font-size: var(--ms-fs-lg); font-weight: 600; line-height: 1.4; margin: 0 0 8px; }
h3 { font-size: var(--ms-fs-md); font-weight: 600; line-height: 1.5; margin: 0 0 6px; }
h4, h5, h6 { font-size: var(--ms-fs-base); font-weight: 600; margin: 0 0 6px; }
p { font-size: var(--ms-fs-base); margin: 0 0 10px; }
small, .small { font-size: var(--ms-fs-xs) !important; }
.text-muted, .muted { color: var(--ms-c-text-3) !important; font-size: var(--ms-fs-sm) !important; }
code { font-size: var(--ms-fs-xs); background: #f1f5f9; padding: 1px 5px; border-radius: 4px; }

/* 图标字体（mdi / font-awesome）在本构建里没有随包分发，留着只会渲染成"豆腐块"。
   页面里所有语义都由文字承担，因此统一隐藏，等以后真的引入图标字体再放开。 */
i.mdi, i.fa, i.fas, i.far, span.mdi, span.fa, span.fas { display: none !important; }

/* 无障碍隐藏（CAS 密码显隐按钮依赖，别删） */
.sr-only, .visually-hidden, .not-sr-only-none {
    position: absolute !important;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

a { color: var(--ms-c-brand); text-decoration: none; }
a:hover { color: var(--ms-c-brand-dark); text-decoration: underline; }

/* =====================================================================
 * 3. 登录页：左右分栏
 * ===================================================================== */
body.login {
    background: var(--ms-c-bg) !important;
    margin: 0;
}
body.login header#app-bar,
body.login .mdc-top-app-bar,
body.login footer.cas-footer { display: none !important; }
body.login .mdc-drawer-app-content { padding-top: 0 !important; }
body.login #main-content {
    max-width: 100% !important;
    padding: 0 !important;
    display: block !important;
}

.isso-auth {
    display: flex;
    min-height: 100vh;
    width: 100%;
}

/* --- 左侧品牌面板 --- */
.isso-auth__brand {
    position: relative;
    flex: 0 0 46%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0;
    padding: 72px 64px;
    color: #fff;
    overflow: hidden;
    background:
        radial-gradient(circle at 78% 18%, rgba(120, 168, 255, .38), transparent 42%),
        radial-gradient(circle at 12% 88%, rgba(88, 128, 255, .30), transparent 46%),
        linear-gradient(158deg, #0a1c46 0%, #16337f 48%, #2b59ff 100%);
}
.isso-brand {
    display: flex;
    align-items: center;
    gap: 14px;
}
.isso-brand__mark {
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    border-radius: 13px;
    background: rgba(255, 255, 255, .16);
    border: 1px solid rgba(255, 255, 255, .28);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    font-weight: 800;
    letter-spacing: .5px;
}
.isso-brand__text { display: flex; flex-direction: column; }
.isso-brand__logo {
    font-size: 25px;
    font-weight: 800;
    letter-spacing: .6px;
    line-height: 1.2;
}
.isso-brand__product {
    font-size: var(--ms-fs-sm);
    font-weight: 400;
    opacity: .8;
    letter-spacing: 1.4px;
    margin-top: 2px;
}
.isso-brand__tagline {
    margin-top: 30px;
    font-size: var(--ms-fs-base);
    line-height: 2;
    opacity: .84;
    max-width: 360px;
}
.isso-brand__points {
    margin: 26px 0 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.isso-brand__points li {
    font-size: var(--ms-fs-xs);
    padding: 6px 12px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .12);
    border: 1px solid rgba(255, 255, 255, .18);
    opacity: .92;
}
.isso-brand__company {
    margin-top: 44px;
    font-size: var(--ms-fs-xs);
    letter-spacing: .6px;
    opacity: .72;
}
.isso-brand__deco {
    position: absolute;
    border-radius: 50%;
    background: rgba(255, 255, 255, .05);
    width: 340px;
    height: 340px;
    right: -120px;
    bottom: -130px;
    pointer-events: none;
}
.isso-brand__deco--2 {
    width: 180px;
    height: 180px;
    right: 60px;
    top: -70px;
    background: rgba(255, 255, 255, .04);
}

/* --- 右侧表单面板 --- */
.isso-auth__panel {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 48px 32px;
    background: var(--ms-c-bg);
}
.isso-auth__formcard {
    width: 100%;
    max-width: 424px;
    background: #fff;
    border: 1px solid var(--ms-c-line-soft);
    border-radius: var(--ms-r-lg);
    padding: 40px 38px 32px;
    box-shadow: var(--ms-shadow-card);
}
.isso-form__head { margin-bottom: 22px; }
.isso-form__title {
    margin: 0;
    font-size: var(--ms-fs-xl);
    font-weight: 700;
    color: var(--ms-c-text);
    letter-spacing: .2px;
}
.isso-form__subtitle {
    margin: 8px 0 0;
    font-size: var(--ms-fs-sm);
    color: var(--ms-c-text-2);
    line-height: 1.7;
}

/* 服务来源：登录的是哪个应用 —— 做成一行轻量提示，不做成大标题 */
.isso-auth .service-ui,
.isso-auth #serviceui {
    margin: 0 0 18px;
    padding: 10px 12px;
    border-radius: var(--ms-r-sm);
    background: var(--ms-c-brand-soft);
    border: 1px solid #dfe6ff;
    color: #2c3f8f;
}
.isso-svc {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    font-size: var(--ms-fs-sm);
}
.isso-svc::before {
    content: "正在登录";
    font-size: var(--ms-fs-xs);
    color: var(--ms-c-text-3);
    margin-right: 2px;
}
.isso-svc__logo { width: 20px; height: 20px; border-radius: 4px; object-fit: contain; }
.isso-svc__name { font-weight: 600; font-size: var(--ms-fs-sm); }
.isso-svc__desc {
    flex-basis: 100%;
    margin: 2px 0 0 !important;
    font-size: var(--ms-fs-xs) !important;
    color: var(--ms-c-text-2) !important;
}

/* CAS 自带的说明 h2（带图标那行）—— 降级为副标题，不再抢戏 */
.isso-auth #loginForm h2 {
    display: none !important;
}
.isso-auth .login-section h3 { display: none !important; }
.isso-auth #sidebar { display: none !important; }
.isso-auth .form-wrapper hr { display: none !important; }
.isso-auth #fieldsLegend,
.isso-auth #termsOfUse { display: none !important; }

.isso-auth #loginForm { padding: 0 !important; margin: 0 !important; }
.isso-auth #loginForm > div {
    margin: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    justify-content: flex-start !important;
}
.isso-auth .form-wrapper { width: 100%; }

/* ---------- 4. 表单控件 ---------- */
/* 用「静态标签 + 输入框」代替 MDC 浮动标签：浮动标签在中文短标签上极易压线、错位，
   而且焦点态会跳动；静态标签更稳、更符合中文表单习惯。 */
.isso-auth .cas-field,
.isso-auth .form-group { margin: 0 0 16px !important; }

.isso-auth .mdc-text-field,
.isso-auth label.mdc-text-field {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    padding: 0 !important;
    background: transparent !important;
}
/* 隐藏 MDC 的描边与浮动标签包装（我们改用自己的 label） */
.isso-auth .mdc-notched-outline { display: none !important; }

.isso-auth .mdc-text-field__input,
.isso-auth .isso-input {
    width: 100% !important;
    height: 46px !important;
    padding: 0 14px !important;
    font-size: var(--ms-fs-base) !important;
    color: var(--ms-c-text) !important;
    background: #fff !important;
    border: 1px solid var(--ms-c-line) !important;
    border-radius: var(--ms-r-sm) !important;
    box-shadow: none !important;
    transition: border-color .16s ease, box-shadow .16s ease;
}
.isso-auth .mdc-text-field__input::placeholder,
.isso-auth .isso-input::placeholder { color: var(--ms-c-text-3); }
.isso-auth .mdc-text-field__input:focus,
.isso-auth .isso-input:focus {
    border-color: var(--ms-c-brand) !important;
    box-shadow: 0 0 0 3px rgba(43, 89, 255, .12) !important;
    outline: none !important;
}
.isso-auth input.isso-input[readonly] { background: #f8fafc !important; color: var(--ms-c-text-2) !important; }

/* 静态字段标签 */
.isso-field { margin-bottom: 16px; }
.isso-field__label {
    display: block;
    font-size: var(--ms-fs-sm);
    font-weight: 500;
    color: var(--ms-c-text-2);
    margin-bottom: 6px;
}
.isso-field__label .req { color: var(--ms-c-danger); margin-left: 2px; }
.isso-field__hint {
    font-size: var(--ms-fs-xs);
    color: var(--ms-c-text-3);
    margin-top: 6px;
    line-height: 1.6;
}

/* 密码显隐按钮：用两段文字 + aria-pressed 切换，不依赖缺失的图标字体 */
.isso-field__control { position: relative; }
.isso-auth .reveal-password {
    position: absolute !important;
    right: 6px;
    top: 50%;
    transform: translateY(-50%);
    width: auto !important;
    min-width: 46px !important;
    height: 32px !important;
    padding: 0 10px !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    color: var(--ms-c-text-3) !important;
    border-radius: 6px !important;
    font-size: var(--ms-fs-xs) !important;
}
.isso-auth .reveal-password:hover { background: #f1f5f9 !important; color: var(--ms-c-text-2) !important; }
.isso-reveal__hide { display: none; }
.isso-auth .reveal-password[aria-pressed="true"] .isso-reveal__show { display: none; }
.isso-auth .reveal-password[aria-pressed="true"] .isso-reveal__hide { display: inline; }
.isso-auth #password { padding-right: 62px !important; }

/* 隐藏校验辅助行与 CapsLock 提示的默认样式，错误统一走横幅 */
.isso-auth .mdc-text-field-helper-line { display: none !important; }
.isso-auth .caps-warn { display: none !important; }

/* 记住我 / 公共工作站等开关行 */
.isso-auth .form-check,
.isso-auth .mdc-form-field { font-size: var(--ms-fs-sm); color: var(--ms-c-text-2); }
.isso-auth .form-check { margin-bottom: 14px !important; }
.isso-auth .form-check label { font-size: var(--ms-fs-sm) !important; color: var(--ms-c-text-2) !important; }

/* 选项行（记住我 / 警告 / 公共工作站）与辅助链接：统一 13px、行高一致 */
.isso-options {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 4px 0 16px;
}
.isso-options__item { display: flex; align-items: center; }
.isso-options .mdc-form-field { display: flex; align-items: center; gap: 8px; }
.isso-options label { font-size: var(--ms-fs-sm) !important; color: var(--ms-c-text-2) !important; margin: 0; }
.isso-options .form-check-input { margin: 0; }

.isso-links {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin-top: 14px;
    justify-content: center;
}
.isso-links form { margin: 0; }
.isso-links a { font-size: var(--ms-fs-sm); color: var(--ms-c-text-2); }
.isso-links a:hover { color: var(--ms-c-brand); }

/* ---------- 5. 按钮 ---------- */
.mdc-button,
.btn {
    font-size: var(--ms-fs-base) !important;
    font-weight: 500;
    border-radius: var(--ms-r-sm) !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    padding: 0 18px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    box-shadow: none;
}

.isso-auth button[type="submit"],
.isso-auth .isso-submit {
    width: 100%;
    height: 46px !important;
    margin-top: 6px;
    background: var(--ms-c-brand) !important;
    color: #fff !important;
    border: none !important;
    border-radius: var(--ms-r-sm) !important;
    font-size: var(--ms-fs-md) !important;
    font-weight: 600 !important;
    letter-spacing: 3px !important;
    box-shadow: var(--ms-shadow-btn) !important;
    transition: background .18s ease, box-shadow .18s ease, transform .06s ease;
}
/* 内页的主按钮：不撑满整行，和文字并排更自然 */
body:not(.login) .mdc-button--raised.btn-primary {
    width: auto;
    height: 40px !important;
    padding: 0 20px !important;
    background: var(--ms-c-brand) !important;
    color: #fff !important;
    border: none !important;
    border-radius: var(--ms-r-sm) !important;
    font-size: var(--ms-fs-base) !important;
    font-weight: 500 !important;
    letter-spacing: 0 !important;
    box-shadow: 0 6px 16px rgba(43, 89, 255, .22) !important;
}
body:not(.login) .mdc-button--raised.btn-primary:hover { background: var(--ms-c-brand-dark) !important; }
.isso-auth button[type="submit"]:hover {
    background: var(--ms-c-brand-dark) !important;
    box-shadow: 0 10px 24px rgba(43, 89, 255, .30) !important;
}
.isso-auth button[type="submit"]:active { transform: translateY(1px); }
.isso-auth button[type="submit"]:disabled { opacity: .7; cursor: not-allowed; }
body:not(.login) .mdc-button--raised.btn-primary:disabled { opacity: .7; cursor: not-allowed; }
/* 提交按钮里那个没有字体支撑的图标，隐藏后只剩文字 */
.isso-auth button[type="submit"] i,
.mdc-button--raised.btn-primary i { display: none !important; }

/* ---------- 6. 提示 / 横幅 ---------- */
.banner {
    border-radius: var(--ms-r-sm);
    padding: 12px 14px;
    font-size: var(--ms-fs-sm);
    line-height: 1.7;
    margin-bottom: 16px;
}
.banner h2, .banner h3, .banner .banner-heading {
    font-size: var(--ms-fs-base) !important;
    font-weight: 600 !important;
    margin: 0 0 4px !important;
}
.banner p { margin: 0 0 4px; font-size: var(--ms-fs-sm); }
.banner p:last-child { margin-bottom: 0; }

.banner-danger, .alert-danger {
    background: var(--ms-c-danger-soft) !important;
    border: 1px solid var(--ms-c-danger-line) !important;
    color: var(--ms-c-danger) !important;
}
.banner-danger a, .alert-danger a { color: var(--ms-c-danger); text-decoration: underline; }
.banner-info, .alert-info {
    background: var(--ms-c-brand-soft) !important;
    border: 1px solid #dfe6ff !important;
    color: #2c3f8f !important;
}
.banner-warning, .alert-warning {
    background: var(--ms-c-warn-soft) !important;
    border: 1px solid #fedf89 !important;
    color: var(--ms-c-warn) !important;
}
.banner-success, .alert-success {
    background: #ecfdf3 !important;
    border: 1px solid #abefc6 !important;
    color: var(--ms-c-ok) !important;
}

.isso-auth .banner { margin-bottom: 16px; }

/* ---------- 7. 内页（登出 / 错误 / MFA / 同意 / 成功） ---------- */
/* 这些页面走 layout.html：顶栏 + 居中卡片 + 页脚，和登录页保持同一套语言 */
body:not(.login) {
    background: var(--ms-c-bg);
}
body:not(.login) #main-content,
body:not(.login) main.container,
body:not(.login) main.container-lg {
    width: 100%;
    max-width: 720px !important;
    margin: 0 auto;
    padding: 40px 20px 56px !important;
}
/* CAS 各视图最外层普遍是 .mdc-card.card —— 统一成一张白卡 */
.card.mdc-card,
.mdc-card.card {
    background: #fff !important;
    border: 1px solid var(--ms-c-line-soft) !important;
    border-radius: var(--ms-r-lg) !important;
    box-shadow: var(--ms-shadow-card) !important;
    padding: 32px !important;
    color: var(--ms-c-text);
}
.card.mdc-card h2,
.mdc-card.card h2 { font-size: var(--ms-fs-lg); font-weight: 600; }
.card.mdc-card p,
.mdc-card.card p { font-size: var(--ms-fs-base); color: var(--ms-c-text-2); }
.card.mdc-card .card-body { padding: 0 !important; }

/* 错误页的 pre 代码块 */
pre {
    background: #0f172a;
    color: #e2e8f0;
    border-radius: var(--ms-r-sm);
    padding: 14px 16px;
    font-size: var(--ms-fs-xs);
    line-height: 1.7;
    overflow: auto;
    max-height: 320px;
    border: none;
}

/* 内页里的表单控件 */
input.form-control:not(.mdc-text-field__input),
select.form-control,
textarea.form-control {
    height: 42px;
    border: 1px solid var(--ms-c-line) !important;
    border-radius: var(--ms-r-sm) !important;
    font-size: var(--ms-fs-base) !important;
    padding: 0 12px;
    box-shadow: none !important;
}
input.form-control:focus,
select.form-control:focus,
textarea.form-control:focus {
    border-color: var(--ms-c-brand) !important;
    box-shadow: 0 0 0 3px rgba(43, 89, 255, .12) !important;
}

/* 列表 / 表格（MFA 选择、同意页、属性列表等） */
.list-group-item {
    border-color: var(--ms-c-line-soft);
    font-size: var(--ms-fs-base);
    padding: 12px 14px;
}
.table { font-size: var(--ms-fs-sm); }
.table th { font-weight: 600; color: var(--ms-c-text-2); border-color: var(--ms-c-line); }
.table td { border-color: var(--ms-c-line-soft); vertical-align: middle; }

/* ---------- 8. 顶栏与页脚（内页可见，登录页隐藏） ---------- */
body:not(.login) .ms-topbar {
    background: #fff;
    box-shadow: 0 1px 0 var(--ms-c-line-soft);
    position: sticky;
    top: 0;
    z-index: 20;
}
.ms-topbar__inner {
    max-width: 1080px;
    margin: 0 auto;
    padding: 12px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.ms-topbar-brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: var(--ms-fs-md);
    font-weight: 700;
    color: var(--ms-c-text);
    letter-spacing: .3px;
}
.ms-topbar-brand:hover { color: var(--ms-c-text); text-decoration: none; }
.ms-topbar-brand__mark {
    width: 30px;
    height: 30px;
    border-radius: 9px;
    background: linear-gradient(150deg, #16337f, #2b59ff);
    color: #fff;
    font-size: var(--ms-fs-xs);
    font-weight: 800;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    letter-spacing: .5px;
}
.ms-topbar-brand__sub {
    font-size: var(--ms-fs-xs);
    font-weight: 400;
    color: var(--ms-c-text-3);
    margin-left: 2px;
    padding-left: 10px;
    border-left: 1px solid var(--ms-c-line);
}

body:not(.login) footer.cas-footer {
    background: transparent !important;
    border: none !important;
    padding: 0 0 28px !important;
    font-size: var(--ms-fs-xs) !important;
    color: var(--ms-c-text-3) !important;
    text-align: center;
}
body:not(.login) footer.cas-footer a { color: var(--ms-c-text-3); }

/* ---------- 9. 登录页页脚 ---------- */
.isso-auth__footer {
    margin-top: 26px;
    font-size: var(--ms-fs-xs);
    color: var(--ms-c-text-3);
    text-align: center;
    line-height: 1.8;
}

/* MFA 页面的验证码输入框（6 位数字） */
input[name="token"], #token, .mfa-token {
    letter-spacing: 6px;
    font-size: var(--ms-fs-lg) !important;
    text-align: center;
    font-variant-numeric: tabular-nums;
}

/* ---------- 10. 响应式 ---------- */
@media (max-width: 900px) {
    .isso-auth { flex-direction: column; }
    .isso-auth__brand {
        flex: 0 0 auto;
        flex-direction: row;
        align-items: center;
        gap: 12px;
        padding: 18px 20px;
    }
    .isso-brand__mark { width: 34px; height: 34px; flex: 0 0 34px; border-radius: 10px; font-size: 15px; }
    .isso-brand__logo { font-size: 17px; }
    .isso-brand__product { font-size: 11px; letter-spacing: 1px; }
    .isso-brand__tagline,
    .isso-brand__company,
    .isso-brand__points,
    .isso-brand__deco { display: none !important; }
    .isso-auth__panel { padding: 24px 16px 32px; }
    .isso-auth__formcard { padding: 26px 20px; border-radius: var(--ms-r-md); }
    .isso-form__title { font-size: var(--ms-fs-lg); }
    body:not(.login) #main-content { padding: 24px 14px 40px !important; }
    .card.mdc-card, .mdc-card.card { padding: 22px !important; }
}

@media (max-width: 480px) {
    .isso-brand__product { display: none; }
    .isso-auth__formcard { padding: 22px 16px; }
}

/* ---------- 11. 结果页（锁定 / 停用 / 成功 / 登出） ---------- */
.isso-result { text-align: left; }
.isso-result__badge {
    display: inline-block;
    font-size: var(--ms-fs-xs);
    font-weight: 600;
    padding: 3px 10px;
    border-radius: 999px;
    margin-bottom: 12px;
    letter-spacing: .5px;
}
.isso-result__badge--warn { background: var(--ms-c-warn-soft); color: var(--ms-c-warn); }
.isso-result__badge--danger { background: var(--ms-c-danger-soft); color: var(--ms-c-danger); }
.isso-result__badge--ok { background: #ecfdf3; color: var(--ms-c-ok); }
.isso-result .isso-form__title { font-size: var(--ms-fs-lg); }
.isso-result__body {
    margin: 16px 0 4px;
    padding: 14px 16px;
    border-radius: var(--ms-r-sm);
    background: #f8fafc;
    border: 1px solid var(--ms-c-line-soft);
}
.isso-result__body p {
    margin: 0 0 8px;
    font-size: var(--ms-fs-sm);
    color: var(--ms-c-text-2);
    line-height: 1.8;
}
.isso-result__body p:last-child { margin-bottom: 0; }

.isso-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 44px;
    margin-top: 18px;
    border-radius: var(--ms-r-sm);
    background: var(--ms-c-brand);
    color: #fff;
    font-size: var(--ms-fs-base);
    font-weight: 600;
    letter-spacing: 2px;
    box-shadow: var(--ms-shadow-btn);
}
.isso-btn:hover { background: var(--ms-c-brand-dark); color: #fff; text-decoration: none; }

/* ---------- 12. 内页里的 MDC 输入域（MFA 验证码等） ---------- */
body:not(.login) .mdc-text-field { width: 100% !important; }
body:not(.login) .mdc-text-field__input { font-size: var(--ms-fs-md) !important; }
body:not(.login) .mdc-floating-label { font-size: var(--ms-fs-sm) !important; }
body:not(.login) .mdc-text-field-helper-line { display: none !important; }
/* 内页的密码显隐按钮同样只留文字 */
body:not(.login) .reveal-password .visually-hidden,
body:not(.login) .reveal-password .sr-only { display: none !important; }

/* 内页卡片标题与正文的间距统一 */
body:not(.login) .card > *:last-child,
body:not(.login) .mdc-card > *:last-child { margin-bottom: 0 !important; }

/* 内页结果卡（登出 / 错误 / 通用成功）：在 layout 的白色背景上居中一张卡 */
.isso-result--page {
    background: #fff;
    border: 1px solid var(--ms-c-line-soft);
    border-radius: var(--ms-r-lg);
    box-shadow: var(--ms-shadow-card);
    padding: 34px 32px 30px;
}
.isso-result__title {
    margin: 0 0 8px;
    font-size: var(--ms-fs-lg);
    font-weight: 700;
    color: var(--ms-c-text);
    line-height: 1.5;
}
.isso-result__lead {
    margin: 0 0 16px;
    font-size: var(--ms-fs-base);
    color: var(--ms-c-text-2);
    line-height: 1.8;
}
.isso-result__note {
    margin: 0;
    font-size: var(--ms-fs-sm);
    color: var(--ms-c-text-2);
    word-break: break-all;
}
.isso-result--error .isso-result__body { background: #fffbfa; border-color: var(--ms-c-danger-line); }
.isso-result--error .isso-result__note { color: var(--ms-c-danger); }

/* ---------- 13. 结果页里的按钮组 / 列表 / 表格 ---------- */
.isso-result__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin-top: 22px;
}
.isso-result__actions form { margin: 0; }
.isso-result__actions .isso-btn,
.isso-result__actions .isso-submit {
    width: auto;
    min-width: 108px;
    margin-top: 0;
    padding: 0 22px;
    letter-spacing: 1px;
}
/* 次要按钮：白底描边，和主按钮并排时层级清楚 */
.isso-btn--ghost {
    background: #fff !important;
    color: var(--ms-c-text-2) !important;
    border: 1px solid var(--ms-c-line) !important;
    box-shadow: none !important;
    font-weight: 500 !important;
}
.isso-btn--ghost:hover {
    border-color: var(--ms-c-brand) !important;
    color: var(--ms-c-brand) !important;
    background: #f7f9ff !important;
}
/* fragments/submitbutton 渲染出来的按钮统一成主按钮外观 */
.isso-submit,
button.isso-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 44px;
    padding: 0 22px;
    border: none;
    border-radius: var(--ms-r-sm);
    background: var(--ms-c-brand);
    color: #fff;
    font-size: var(--ms-fs-base);
    font-weight: 600;
    letter-spacing: 1px;
    box-shadow: var(--ms-shadow-btn);
    cursor: pointer;
}
.isso-submit:hover { background: var(--ms-c-brand-dark); color: #fff; }
.isso-submit:disabled { opacity: .7; cursor: not-allowed; }

.isso-result__list {
    margin: 0;
    padding-left: 20px;
    font-size: var(--ms-fs-sm);
    color: var(--ms-c-text-2);
    line-height: 1.9;
}
.isso-result__list--plain { list-style: none; padding-left: 0; }
.isso-result__list li { margin-bottom: 6px; }
.isso-svc-line { display: inline-flex; align-items: center; gap: 8px; flex-wrap: wrap; }

/* 表格：内页统一一套（同意页属性、登出关联应用、中断页附加信息） */
.isso-table-wrap {
    margin: 14px 0 4px;
    border: 1px solid var(--ms-c-line-soft);
    border-radius: var(--ms-r-sm);
    overflow-x: auto;
}
.isso-table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--ms-fs-sm);
}
.isso-table th {
    text-align: left;
    font-weight: 600;
    color: var(--ms-c-text-2);
    background: #f8fafc;
    padding: 10px 14px;
    border-bottom: 1px solid var(--ms-c-line-soft);
    white-space: nowrap;
}
.isso-table td {
    padding: 10px 14px;
    border-bottom: 1px solid var(--ms-c-line-soft);
    color: var(--ms-c-text-2);
    vertical-align: middle;
    word-break: break-all;
}
.isso-table tbody tr:last-child td { border-bottom: none; }
.isso-table code {
    font-size: var(--ms-fs-xs);
    color: var(--ms-c-text);
    background: #f1f5f9;
    padding: 2px 6px;
    border-radius: 5px;
}

/* ---------- 14. 内页表单（MFA / 改密 / 同意页） ---------- */
body:not(.login) .isso-field { margin-bottom: 16px; }
body:not(.login) .isso-field__control { position: relative; }
body:not(.login) .isso-input {
    display: block;
    width: 100%;
    height: 46px;
    padding: 0 14px;
    font-size: var(--ms-fs-base);
    color: var(--ms-c-text);
    background: #fff;
    border: 1px solid var(--ms-c-line);
    border-radius: var(--ms-r-sm);
    box-shadow: none;
    transition: border-color .16s ease, box-shadow .16s ease;
}
body:not(.login) .isso-input:focus {
    border-color: var(--ms-c-brand);
    box-shadow: 0 0 0 3px rgba(43, 89, 255, .12);
    outline: none;
}
select.isso-input {
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='%2364748b' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    background-size: 12px 8px;
    padding-right: 36px;
}
body:not(.login) .isso-field__control .isso-input { padding-right: 62px; }

/* 内页的密码/验证码显隐按钮：和登录页同一套「显示/隐藏」文字 */
body:not(.login) .reveal-password {
    position: absolute;
    right: 6px;
    top: 50%;
    transform: translateY(-50%);
    width: auto;
    min-width: 46px;
    height: 32px;
    padding: 0 10px;
    background: transparent;
    border: none;
    box-shadow: none;
    color: var(--ms-c-text-3);
    border-radius: 6px;
    font-size: var(--ms-fs-xs);
    cursor: pointer;
}
body:not(.login) .reveal-password:hover { background: #f1f5f9; color: var(--ms-c-text-2); }
body:not(.login) .reveal-password[aria-pressed="true"] .isso-reveal__show { display: none; }
body:not(.login) .reveal-password[aria-pressed="true"] .isso-reveal__hide { display: inline; }

body:not(.login) .isso-mfa-form { margin-top: 6px; }
body:not(.login) .isso-mfa-extra {
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid var(--ms-c-line-soft);
}
body:not(.login) .isso-mfa-extra .isso-btn { margin-top: 10px; }
body:not(.login) .banner { margin-bottom: 14px; }
body:not(.login) .banner h2 { font-size: var(--ms-fs-base); margin: 0 0 4px; }

/* 密码强度条（passwordMeter.js 会写 #progress-strength-indicator 的 width 与文案） */
.isso-strength { margin: 4px 0 14px; }
.isso-strength__head {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: var(--ms-fs-sm);
    color: var(--ms-c-text-2);
    margin-bottom: 8px;
}
.isso-strength__bar {
    height: 20px;
    background: #eef2f7;
    border-radius: 999px;
    overflow: hidden;
}
.isso-strength__fill {
    height: 100%;
    width: 0;
    background: var(--ms-c-danger);
    border-radius: 999px;
    transition: width .18s ease, background .18s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--ms-fs-xs);
    color: #fff;
    white-space: nowrap;
    overflow: hidden;
}
/* passwordMeter.js 切换的进度条配色类名 */
.isso-strength__bar.progress-bar-danger .isso-strength__fill { background: var(--ms-c-danger); }
.isso-strength__bar.progress-bar-warning .isso-strength__fill { background: var(--ms-c-warn); }
.isso-strength__bar.progress-bar-success .isso-strength__fill { background: var(--ms-c-ok); }

/* ---------- 15. 同意页 / 选择页 ---------- */
/* 同意页内容多，卡片比结果页宽一些 */
body:not(.login) main.container:has(.isso-result--wide) { max-width: 820px !important; }
.isso-section-title {
    margin: 24px 0 10px;
    font-size: var(--ms-fs-md);
    font-weight: 600;
    color: var(--ms-c-text);
}
.isso-choice-list { display: flex; flex-direction: column; gap: 12px; margin: 12px 0 4px; }
.isso-choice-list--compact { gap: 10px; }
.isso-choice {
    display: block;
    padding: 14px 16px;
    border: 1px solid var(--ms-c-line-soft);
    border-radius: var(--ms-r-sm);
    background: #fff;
    transition: border-color .16s ease, background .16s ease;
}
.isso-choice:hover { border-color: var(--ms-c-brand); background: #f7f9ff; }
.isso-choice__title {
    display: block;
    font-size: var(--ms-fs-base);
    font-weight: 600;
    color: var(--ms-c-text);
}
.isso-choice__desc {
    display: block;
    margin-top: 4px;
    font-size: var(--ms-fs-sm);
    color: var(--ms-c-text-2);
    line-height: 1.75;
}
.isso-choice__desc ul { margin: 6px 0 0; padding-left: 18px; }
.isso-choice--radio { display: flex; gap: 12px; align-items: flex-start; cursor: pointer; }
.isso-choice--radio .isso-choice__body { display: block; }
.isso-radio { margin: 3px 0 0; width: 16px; height: 16px; accent-color: var(--ms-c-brand); flex: none; }

.isso-reminder {
    margin-top: 8px;
    padding: 16px;
    background: #f8fafc;
    border: 1px solid var(--ms-c-line-soft);
    border-radius: var(--ms-r-sm);
}
.isso-reminder .isso-section-title { margin-top: 0; }
.isso-reminder__row { display: flex; gap: 12px; flex-wrap: wrap; }
.isso-reminder__row .isso-field { flex: 1 1 160px; margin-bottom: 0; }

.isso-deflist { margin: 0 0 8px; }
.isso-deflist__item {
    padding: 10px 0;
    border-bottom: 1px dashed var(--ms-c-line-soft);
}
.isso-deflist__item:last-child { border-bottom: none; }
.isso-deflist__item dt { margin: 0 0 4px; }
.isso-deflist__item dt code {
    font-size: var(--ms-fs-xs);
    color: var(--ms-c-brand);
    background: rgba(43, 89, 255, .08);
    padding: 2px 8px;
    border-radius: 5px;
}
.isso-deflist__item dd {
    margin: 0;
    font-size: var(--ms-fs-sm);
    color: var(--ms-c-text-2);
    line-height: 1.8;
}

.isso-app { display: flex; align-items: center; gap: 12px; margin: 4px 0 16px; }
.isso-app__logo { width: 40px; height: 40px; border-radius: 10px; object-fit: contain; }
.isso-app__desc { margin: 0; font-size: var(--ms-fs-sm); color: var(--ms-c-text-2); }

/* ---------- 16. 结果页里的页签（成功页：用户属性 / 认证信息 / 已授权应用） ---------- */
/* 不用 MDC 的 TabBar：material.js 初始化依赖 MDC 的 CSS，而本主题替换掉了 cas.css，
   mdc-tab 没有样式就会露出浏览器默认的按钮外观和一条来路不明的下划线。自己实现更可控。 */
.isso-tabs {
    display: flex;
    gap: 4px;
    margin: 18px 0 14px;
    border-bottom: 1px solid var(--ms-c-line-soft);
}
.isso-tab {
    appearance: none;
    border: none;
    background: transparent;
    padding: 10px 14px;
    font-size: var(--ms-fs-sm);
    font-weight: 500;
    color: var(--ms-c-text-2);
    cursor: pointer;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
}
.isso-tab:hover { color: var(--ms-c-brand); }
.isso-tab.is-active {
    color: var(--ms-c-brand);
    border-bottom-color: var(--ms-c-brand);
    font-weight: 600;
}
.isso-pane[hidden] { display: none !important; }
/* 结果页里的表格与说明文字统一走一套字号 */
.isso-result--page .isso-table-wrap { margin-top: 0; }
.isso-result--page > p { font-size: var(--ms-fs-sm); color: var(--ms-c-text-2); }

/* ---------- 17. 验证器绑定页（二维码 + 密钥 + 备用码） ---------- */
.isso-gauth {
    display: flex;
    gap: 24px;
    align-items: flex-start;
    flex-wrap: wrap;
    margin-top: 18px;
}
.isso-gauth__qr { flex: 0 0 auto; }
.isso-gauth__qr img {
    width: 180px;
    height: 180px;
    border-radius: var(--ms-r-sm);
    border: 1px solid var(--ms-c-line-soft);
    background: #fff;
}
.isso-gauth__info { flex: 1 1 260px; min-width: 240px; }
.isso-gauth__info .isso-result__body { margin-top: 0; }
.isso-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0 4px; }
.isso-chip {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: var(--ms-fs-xs);
    letter-spacing: 1px;
    color: var(--ms-c-text);
    background: #f1f5f9;
    border: 1px solid var(--ms-c-line-soft);
    border-radius: 6px;
    padding: 4px 10px;
}
