/**
 * 灵休 · 液态玻璃 —— 学生端页面适配（欢迎卡、登录页、日历、个人中心等）
 * 只放“某个页面特有”的样式；通用组件请改 components.css / extras.css。
 */

/* ============================================================
   首页欢迎卡：着色玻璃 + 光斑
   ============================================================ */
body.lg .welcome-card {
    position: relative;
    overflow: hidden;
    border-radius: var(--lg-r-xl);
    border: 1px solid rgba(255, 255, 255, 0.40);
    background:
        radial-gradient(240px 180px at 8% 0%, rgba(255, 255, 255, 0.46), rgba(255, 255, 255, 0) 70%),
        radial-gradient(260px 220px at 100% 100%, rgba(167, 243, 208, 0.34), rgba(167, 243, 208, 0) 70%),
        linear-gradient(150deg, #34d399 0%, #10b981 46%, #059669 100%);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.60),
        inset 0 -1px 0 rgba(0, 0, 0, 0.10),
        0 14px 36px rgba(16, 185, 129, 0.34);
}

[data-theme="dark"] body.lg .welcome-card {
    background:
        radial-gradient(240px 180px at 8% 0%, rgba(255, 255, 255, 0.28), rgba(255, 255, 255, 0) 70%),
        radial-gradient(260px 220px at 100% 100%, rgba(52, 211, 153, 0.30), rgba(52, 211, 153, 0) 70%),
        linear-gradient(150deg, #0f9d74 0%, #0b7f5e 52%, #07614a 100%);
    border-color: rgba(255, 255, 255, 0.20);
}

body.lg .welcome-avatar {
    background: rgba(255, 255, 255, 0.26);
    border: 1px solid rgba(255, 255, 255, 0.40);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5);
}

body.lg .welcome-info h2 {
    font-size: 21px;
    font-weight: 700;
    letter-spacing: 0.2px;
}

body.lg .welcome-stat {
    background: rgba(255, 255, 255, 0.20);
    border: 1px solid rgba(255, 255, 255, 0.32);
    border-radius: var(--lg-r-md);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.40);
}

body.lg .welcome-stat-value {
    letter-spacing: -0.5px;
    text-shadow: 0 1px 6px rgba(4, 80, 56, 0.25);
}

/* 移动端：进度环 + 两个数字 */
body.lg .welcome-ring-row {
    display: flex;
    align-items: center;
    gap: 18px;
}

body.lg .welcome-ring-row .lg-ring__track {
    stroke: rgba(255, 255, 255, 0.28);
}

body.lg .welcome-ring-row .lg-ring__bar {
    stroke: #fff;
    filter: drop-shadow(0 2px 6px rgba(4, 80, 56, 0.35));
}

body.lg .welcome-ring-row .lg-ring__label {
    color: #fff;
}

body.lg .welcome-ring-row .lg-ring__label b {
    font-size: 30px;
    text-shadow: 0 1px 6px rgba(4, 80, 56, 0.25);
}

body.lg .welcome-ring-side {
    flex: 1 1 auto;
    min-width: 0;
    display: grid;
    gap: 10px;
}

body.lg .welcome-ring-side .welcome-stat {
    display: flex;
    flex-direction: row-reverse;
    align-items: center;
    justify-content: space-between;
    padding: 10px 16px;
    text-align: left;
}

body.lg .welcome-ring-side .welcome-stat-value {
    font-size: 22px;
}

body.lg .welcome-ring-side .welcome-stat-label {
    margin-top: 0;
    font-size: 12.5px;
}

body.lg .welcome-stat--debt {
    background: rgba(254, 202, 202, 0.30);
}

/* 欢迎卡里被页面内联写成品牌色/警示色的数字，在绿色底上换成可读的亮色 */
body.lg .welcome-stat-value[style*="--primary"] { color: #fff !important; }

@media (max-width: 991.98px) {
    body.lg .welcome-card {
        border-radius: var(--lg-r-xl);
        padding: 22px 20px;
        margin-bottom: 18px;
    }
}

/* ============================================================
   登录 / 找回密码页
   ============================================================ */
body.lg.login-page {
    background: var(--lg-canvas);
}

[data-theme="dark"] body.lg.login-page {
    background: var(--lg-canvas);
}

body.lg .theme-toggle-fixed {
    background: var(--lg-fill);
    color: var(--lg-text-2);
    box-shadow: var(--lg-edge-soft);
    transition: transform var(--lg-dur-1) var(--lg-spring);
}

body.lg .theme-toggle-fixed:active {
    transform: scale(0.9);
}

body.lg .login-container {
    position: relative;
}

@media (min-width: 992px) {
    body.lg .login-container {
        background: var(--lg-glass-solid);
        border: 1px solid var(--lg-rim);
        border-radius: 36px;
        box-shadow: var(--lg-edge), var(--lg-shadow-2);
    }

    body.lg .login-banner {
        background:
            radial-gradient(260px 200px at 0% 0%, rgba(255, 255, 255, 0.40), rgba(255, 255, 255, 0) 70%),
            linear-gradient(150deg, #34d399 0%, #10b981 46%, #059669 100%);
        box-shadow: inset -1px 0 0 rgba(255, 255, 255, 0.28);
    }

    body.lg .login-banner-icon {
        background: rgba(255, 255, 255, 0.26);
        border: 1px solid rgba(255, 255, 255, 0.40);
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5);
    }
}

@supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
    @media (min-width: 992px) {
        body.lg .login-container {
            background: var(--lg-glass);
            -webkit-backdrop-filter: var(--lg-blur);
            backdrop-filter: var(--lg-blur);
        }
    }
}

@media (max-width: 991.98px) {
    body.lg .login-container {
        max-width: 460px;
        margin: 0 auto;
    }

    body.lg .login-logo-icon {
        background: var(--lg-surface) !important;
        border: 1px solid var(--lg-rim);
        border-radius: 26px;
        box-shadow: var(--lg-edge), var(--lg-shadow-2) !important;
    }

    body.lg .login-logo h1 {
        color: var(--lg-text);
        letter-spacing: 1px;
    }

    body.lg .login-logo p {
        color: var(--lg-text-3);
    }
}

body.lg .login-form .input-with-icon input,
body.lg .login-form .input-with-icon select {
    background: var(--lg-fill);
    border: 1px solid var(--lg-hairline);
    border-radius: var(--lg-r-pill);
    color: var(--lg-text);
    box-shadow: inset 0 1px 2px rgba(12, 50, 36, 0.07);
    font-size: 16px;
    transition: border-color var(--lg-dur-2) var(--lg-ease), background var(--lg-dur-2) var(--lg-ease), box-shadow var(--lg-dur-2) var(--lg-ease);
}

body.lg .login-form .input-with-icon input:focus,
body.lg .login-form .input-with-icon select:focus {
    background: var(--lg-surface-hi);
    border-color: var(--lg-brand);
    box-shadow: 0 0 0 4px var(--lg-brand-soft);
}

body.lg .login-form .input-with-icon i {
    left: 20px;
    color: var(--lg-text-3);
}

body.lg .login-form .input-with-icon input {
    padding-left: 50px;
}

body.lg .login-btn {
    position: relative;
    overflow: hidden;
    padding: 15px;
    border: 1px solid rgba(255, 255, 255, 0.34);
    border-radius: var(--lg-r-pill);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.34), rgba(255, 255, 255, 0) 52%),
        linear-gradient(150deg, var(--lg-brand-hi), var(--lg-brand-lo));
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.55),
        inset 0 -1px 0 rgba(0, 0, 0, 0.10),
        var(--lg-shadow-tint);
    transition: transform var(--lg-dur-1) var(--lg-spring), filter var(--lg-dur-2);
    -webkit-tap-highlight-color: transparent;
}

body.lg .login-btn:hover {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.34), rgba(255, 255, 255, 0) 52%),
        linear-gradient(150deg, var(--lg-brand-hi), var(--lg-brand-lo));
    filter: brightness(1.05);
}

body.lg .login-btn:active {
    transform: scale(0.97);
}

body.lg .forgot-password-link a,
body.lg .password-reset-actions a,
body.lg .password-reset-resend {
    color: var(--lg-brand-ink);
}

body.lg .portal-links {
    border-top-color: var(--lg-hairline);
}

body.lg .portal-link {
    color: var(--lg-text-2);
}

body.lg .portal-link:hover {
    color: var(--lg-brand-ink);
}

body.lg .password-reset-complete {
    color: var(--lg-text);
}

/* ============================================================
   排假日历（FullCalendar）
   旧样式大量使用 !important，这里覆盖时同样需要；这是唯一允许用 !important 的地方。
   ============================================================ */
body.lg .fc {
    --fc-border-color: var(--lg-hairline);
    --fc-page-bg-color: transparent;
    --fc-neutral-bg-color: var(--lg-fill);
    --fc-neutral-text-color: var(--lg-text-3);
    --fc-list-event-hover-bg-color: var(--lg-fill);
    --fc-today-bg-color: var(--lg-brand-soft);
    color: var(--lg-text);
}

body.lg .fc .fc-scrollgrid {
    border: 0;
}

body.lg .fc .fc-view-harness {
    border: 1px solid var(--lg-hairline);
    border-radius: var(--lg-r-lg);
    overflow: hidden;
    background: transparent;
}

body.lg .fc .fc-col-header-cell {
    background: var(--lg-fill);
}

body.lg .fc .fc-col-header-cell-cushion {
    color: var(--lg-text-2);
    font-weight: 600;
}

body.lg .fc .fc-daygrid-day:hover {
    background: var(--lg-fill);
}

body.lg .fc .fc-daygrid-day-number {
    color: var(--lg-text);
}

body.lg .fc .fc-day-today {
    background: var(--lg-brand-soft) !important;
}

body.lg .fc .fc-day-today .fc-daygrid-day-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 26px;
    height: 26px;
    margin: 3px;
    padding: 0 4px;
    border-radius: var(--lg-r-pill);
    background: linear-gradient(150deg, var(--lg-brand-hi), var(--lg-brand-lo));
    color: var(--lg-text-on-tint) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5), var(--lg-shadow-tint);
}

body.lg .fc .fc-toolbar-title {
    color: var(--lg-text);
    font-weight: 700;
}

body.lg .fc .fc-button {
    background: var(--lg-surface) !important;
    border: 1px solid var(--lg-rim) !important;
    border-radius: var(--lg-r-pill) !important;
    color: var(--lg-text) !important;
    box-shadow: var(--lg-edge-soft) !important;
    transition: transform var(--lg-dur-1) var(--lg-spring);
}

body.lg .fc .fc-button:active {
    transform: scale(0.92);
}

body.lg .fc .fc-button:hover {
    background: var(--lg-surface-hi) !important;
}

body.lg .fc .fc-button-primary:not(:disabled).fc-button-active,
body.lg .fc .fc-button-primary:not(:disabled):active {
    background: linear-gradient(150deg, var(--lg-brand-hi), var(--lg-brand-lo)) !important;
    border-color: rgba(255, 255, 255, 0.34) !important;
    color: var(--lg-text-on-tint) !important;
}

body.lg .fc .fc-event,
body.lg .fc .fc-daygrid-block-event,
body.lg .fc .fc-h-event {
    border-radius: 8px !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35);
}

@media (max-width: 991.98px) {
    /* 旧样式把工具栏改成纵向堆叠，玻璃版改回一行：上月 ‹ 标题 › 下月 */
    body.lg .fc .fc-toolbar {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        gap: 8px;
    }

    body.lg .fc .fc-toolbar-title {
        font-size: 17px !important;
    }

    body.lg .fc .fc-prev-button,
    body.lg .fc .fc-next-button {
        width: 38px;
        height: 38px;
        padding: 0 !important;
    }
}

/* ---------- 日历页的统计、分段控件、图例 ---------- */
@media (max-width: 991.98px) {
    body.lg .mobile-leave-stat,
    body.lg .mobile-legend {
        background: var(--lg-surface);
        border: 1px solid var(--lg-rim);
        border-radius: var(--lg-r-lg);
        box-shadow: var(--lg-edge-soft), var(--lg-shadow-1);
    }

    body.lg .mobile-leave-stat-value {
        color: var(--lg-brand-ink);
        letter-spacing: -0.3px;
    }

    body.lg .mobile-view-tabs {
        background: var(--lg-fill);
        border-radius: var(--lg-r-pill);
        box-shadow: inset 0 1px 2px rgba(12, 50, 36, 0.08);
    }

    body.lg .mobile-view-tab {
        border-radius: var(--lg-r-pill);
        font-weight: 600;
        transition: background var(--lg-dur-2) var(--lg-ease), color var(--lg-dur-2) var(--lg-ease), box-shadow var(--lg-dur-2) var(--lg-ease);
    }

    body.lg .mobile-view-tab.active {
        background: var(--lg-lens);
        color: var(--lg-brand-ink);
        box-shadow: var(--lg-edge), 0 3px 10px rgba(12, 50, 36, 0.14);
    }

    body.lg .mobile-legend-dot {
        border-radius: 5px;
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4);
    }
}

/* ---------- 日期选择弹窗（calendar.js 生成） ---------- */
body.lg .date-selection-modal {
    background: var(--lg-scrim);
}

body.lg .date-selection-content {
    background: var(--lg-glass-solid);
    border: 1px solid var(--lg-rim);
    border-radius: var(--lg-r-xl);
    box-shadow: var(--lg-edge), var(--lg-shadow-2);
}

@supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
    body.lg .date-selection-content {
        background: var(--lg-glass);
        background-color: var(--lg-surface-hi);
        -webkit-backdrop-filter: var(--lg-blur);
        backdrop-filter: var(--lg-blur);
    }
}

body.lg .date-selection-header {
    border-bottom-color: var(--lg-hairline);
    color: var(--lg-text);
}

body.lg .date-selection-item {
    color: var(--lg-text);
    border-bottom-color: var(--lg-hairline);
}

body.lg .date-selection-item:hover { background: var(--lg-fill); }
body.lg .date-selection-item:active { background: var(--lg-brand-soft); }

body.lg .date-selection-cancel {
    background: var(--lg-fill);
    color: var(--lg-text-2);
    font-weight: 600;
}

/* ---------- 假期详情列表 ---------- */
body.lg .leave-detail-section,
body.lg .leave-detail-item {
    border-bottom-color: var(--lg-hairline);
}

body.lg .leave-detail-section-header {
    background: var(--lg-fill);
    color: var(--lg-text);
    border-bottom-color: var(--lg-hairline);
}

body.lg .leave-detail-items.past-items,
body.lg .leave-detail-item.past {
    background: var(--lg-fill);
}

body.lg .leave-detail-item:hover {
    background: var(--lg-brand-soft);
}

body.lg .leave-detail-date {
    background: var(--lg-fill);
    border-radius: var(--lg-r-sm);
    box-shadow: var(--lg-edge-soft);
}

body.lg .leave-detail-date-diff {
    background: var(--lg-fill-2);
    border-radius: var(--lg-r-pill);
}

body.lg .leave-detail-date-diff.today {
    background: var(--lg-brand);
    color: var(--lg-text-on-tint);
}

body.lg .leave-detail-date-diff.tomorrow {
    background: var(--lg-brand-soft);
    color: var(--lg-brand-ink);
}

body.lg .leave-detail-group {
    background: var(--lg-fill-2);
    border-radius: var(--lg-r-pill);
}

body.lg .leave-detail-tag,
body.lg .leave-detail-backup-info,
body.lg .leave-detail-mandatory-name {
    border-radius: var(--lg-r-pill);
}

body.lg .leave-detail-tag.normal { background: var(--lg-info-soft); color: var(--lg-info-ink); }
body.lg .leave-detail-tag.backup,
body.lg .leave-detail-backup-info { background: var(--lg-warn-soft); color: var(--lg-warn-ink); }
body.lg .leave-detail-tag.mandatory,
body.lg .leave-detail-mandatory-name { background: var(--lg-violet-soft); color: var(--lg-violet-ink); }

body.lg .email-loading-overlay {
    background: var(--lg-glass-solid);
}

/* 独立教师 / 管理登录：与安装、协议共用材质，不改变表单行为。 */
body.lg.lg-entry { min-height:100vh; margin:0; padding:80px 32px 40px; }
body.lg.lg-entry .login-container { width:100%; max-width:1080px; min-height:0; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,440px); gap:64px; align-items:center; background:transparent; border:0; border-radius:0; box-shadow:none; -webkit-backdrop-filter:none; backdrop-filter:none; overflow:visible; }
body.lg.lg-entry .login-banner { padding:32px 0; background:transparent; color:var(--lg-text); box-shadow:none; text-align:left; }
body.lg.lg-entry .login-banner h1 { font-size:42px; letter-spacing:-1px; margin:24px 0 16px; color:var(--lg-text); }
body.lg.lg-entry .login-banner p { color:var(--lg-text-2); font-size:17px; line-height:1.9; max-width:380px; }
body.lg.lg-entry .login-banner-icon { width:76px; height:76px; background:var(--lg-surface); border-radius:var(--lg-r-lg); border:1px solid var(--lg-rim); box-shadow:var(--lg-edge-soft),var(--lg-shadow-1); margin:0; }
body.lg.lg-entry .site-logo { width:54px; height:54px; object-fit:contain; }
body.lg.lg-entry .login-banner-features { margin-top:32px; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:20px 16px; list-style:none; }
body.lg.lg-entry .login-banner-features li { margin:0; font-size:14px; color:var(--lg-text-2); }
body.lg.lg-entry .login-banner-features i { color:var(--lg-brand-ink); }
body.lg.lg-entry .login-form-section { width:100%; padding:36px; border-radius:var(--lg-r-xl); box-shadow:var(--lg-edge),var(--lg-shadow-2); }
body.lg.lg-entry .login-form-header h2 { color:var(--lg-text); font-size:28px; }
body.lg.lg-entry .login-form-header p { color:var(--lg-text-2); line-height:1.7; }
body.lg.lg-entry .login-form .form-label { color:var(--lg-text-2); }
body.lg.lg-entry .login-form .input-with-icon input { min-height:50px; border-radius:var(--lg-r-md); }
body.lg.lg-entry .login-btn { min-height:50px; }
body.lg.lg-entry .portal-links { display:flex; flex-wrap:wrap; justify-content:center; gap:20px; margin-top:24px; padding-top:20px; }
body.lg.lg-entry .portal-link { min-height:44px; display:inline-flex; align-items:center; }
body.lg.lg-entry .theme-toggle-fixed { position:absolute; top:24px; right:24px; min-width:44px; height:44px; border-radius:var(--lg-r-pill); border:1px solid var(--lg-rim); z-index:var(--lg-z-header); }
body.lg.lg-entry .theme-toggle-fixed:focus-visible { outline:3px solid var(--lg-brand-ink); outline-offset:4px; }
@media(max-width:991.98px) {
 body.lg.lg-entry { padding:80px 16px 32px; align-items:flex-start; }
 body.lg.lg-entry .login-container { display:block; max-width:460px; }
 body.lg.lg-entry .login-banner { display:none; }
 body.lg.lg-entry .login-logo { margin-bottom:24px; }
 body.lg.lg-entry .login-logo-icon { width:68px; height:68px; margin-bottom:16px; }
 body.lg.lg-entry .login-form-section { padding:28px 24px; }
 body.lg.lg-entry .login-logo h1 { font-size:28px; letter-spacing:-.5px; }
}

/* 默认维护展示：内容安静，操作层使用统一玻璃。 */
body.lg.lg-status-page { margin:0; min-height:100vh; display:grid; place-items:center; padding:40px 20px; box-sizing:border-box; }
.lg-status-shell { width:100%; max-width:640px; }
.lg-status-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px 18px; border-radius:var(--lg-r-pill); margin-bottom:28px; }
.lg-status-toolbar strong { display:flex; align-items:center; gap:10px; font-size:16px; }
.lg-status-toolbar button { font:inherit; min-height:44px; padding:8px 14px; border:1px solid var(--lg-hairline); border-radius:var(--lg-r-pill); background:var(--lg-fill); color:var(--lg-text); cursor:pointer; }
.lg-status-card { padding:40px; border-radius:var(--lg-r-xl); }
.lg-status-symbol { display:grid; place-items:center; width:64px; height:64px; border-radius:var(--lg-r-md); background:var(--lg-brand-soft); color:var(--lg-brand-ink); margin-bottom:24px; }
.lg-status-kicker { font-size:13px; color:var(--lg-brand-ink); margin:0 0 8px; }
.lg-status-card h1 { font-size:32px; line-height:1.3; letter-spacing:-.5px; margin:0 0 20px; overflow-wrap:anywhere; }
.lg-status-content { color:var(--lg-text-2); line-height:1.9; overflow-wrap:anywhere; }
.lg-status-content img { max-width:100%; height:auto; }
.lg-status-content table,.lg-status-content pre { display:block; max-width:100%; overflow:auto; }
.lg-status-actions { margin-top:28px; padding-top:24px; border-top:1px solid var(--lg-hairline); }
.lg-status-actions a { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:48px; padding:0 28px; border-radius:var(--lg-r-pill); font-weight:600; text-decoration:none; }
.lg-status-foot { font-size:13px; color:var(--lg-text-3); line-height:1.8; margin:20px 0 0; }
.lg-status-page :focus-visible { outline:3px solid var(--lg-brand-ink); outline-offset:4px; }
@media(max-width:699px) { .lg-status-card { padding:28px 24px; } .lg-status-card h1 { font-size:28px; } .lg-status-toolbar { padding:8px 14px; margin-bottom:20px; } .lg-status-actions a { display:flex; } }

/* 申请与记录并排，手机按原顺序阅读；所有业务控件保持在 DOM 中。 */
body.lg .lg-request-page { align-items:start; }
body.lg .lg-request-page > .alert,
body.lg .lg-request-page > .notice-card { grid-column:1 / -1; }
body.lg .lg-request-summary { display:flex; flex-wrap:wrap; gap:12px; }
body.lg .lg-request-summary .stat-card { flex:1 1 180px; min-width:0; margin:0; }
body.lg .lg-request-form,
body.lg .lg-request-records { min-width:0; margin:0; }
body.lg .lg-request-records { scroll-margin-top:100px; }
body.lg .lg-request-page .card-header { padding:24px; border-bottom:1px solid var(--lg-hairline); }
body.lg .lg-request-page .card-body { padding:24px; }
body.lg .lg-request-page .card-subtitle { line-height:1.7; margin-top:8px; }
body.lg .lg-request-records .list-item { flex-wrap:wrap; gap:12px; padding:20px; border-bottom:1px solid var(--lg-hairline); align-items:center; }
body.lg .lg-request-records .list-item:last-child { border-bottom:0; }
body.lg .lg-request-records .list-item-content { flex:1 1 170px; min-width:0; }
body.lg .lg-request-records .list-item-title { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
body.lg .lg-request-records .list-item-subtitle { overflow-wrap:anywhere; line-height:1.8; }
body.lg .lg-request-records .btn { min-height:44px; }
body.lg .lg-request-page input[type="file"] { max-width:100%; padding:12px; font-size:14px; }
body.lg .lg-request-page input[type="file"]::file-selector-button { border:1px solid var(--lg-rim); border-radius:var(--lg-r-pill); color:var(--lg-brand-ink); background:var(--lg-brand-soft); padding:9px 12px; margin-right:8px; font:inherit; }
body.lg .lg-request-page .form-hint { line-height:1.8; }
@media(max-width:699px) { body.lg .lg-request-page .card-header,body.lg .lg-request-page .card-body { padding:20px; } body.lg .lg-request-summary .stat-card { flex-basis:130px; } }

body.lg .lg-home-metrics { margin-bottom:24px; }
body.lg .lg-home-metrics .stat-card { margin:0; min-width:0; }
body.lg .lg-home-metrics .stat-card-value { font-size:28px; letter-spacing:-.5px; }
body.lg .lg-section-label { margin:24px 0 14px; font-size:var(--lg-fs-head); color:var(--lg-text); }
body.lg .lg-student-home .quick-action { text-align:left; display:grid; grid-template-columns:48px minmax(0,1fr); align-items:center; column-gap:14px; padding:20px; }
body.lg .lg-student-home .quick-action-icon { grid-row:1 / 3; margin:0; }
body.lg .lg-student-home .quick-action-title { margin:0; }
body.lg .lg-student-home .quick-action-desc { margin-top:4px; }
body.lg .lg-student-home .quick-actions { gap:14px; }
body.lg .lg-ops-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
body.lg .lg-ops-links.lg-list { border:0; border-radius:0; background:transparent; box-shadow:none; overflow:visible; }
body.lg .lg-ops-links .lg-row::before { content:none; }
body.lg .lg-ops-links .lg-row { min-width:0; border:1px solid var(--lg-hairline); border-radius:var(--lg-r-md); background:var(--lg-fill); }
body.lg .lg-ops-links .lg-row__title,
body.lg .lg-ops-links .lg-row__sub { display:block; }
@media(max-width:699px) { body.lg .lg-student-home .quick-action { grid-template-columns:36px minmax(0,1fr); gap:4px 10px; padding:16px 12px; } body.lg .lg-student-home .quick-action-icon { width:36px; height:36px; font-size:18px; } body.lg .lg-ops-links { grid-template-columns:1fr; } }

body.lg .lg-calendar-page .lg-bento { align-items:start; }
body.lg .lg-calendar-page .mobile-leave-stats { padding:8px; gap:0; }
body.lg .lg-calendar-page .mobile-leave-stat { padding:12px 6px; background:transparent; border:0; box-shadow:none; border-radius:0; }
body.lg .lg-calendar-page .mobile-leave-stat + .mobile-leave-stat { border-left:1px solid var(--lg-hairline); }
body.lg .lg-calendar-page .mobile-leave-stat-value { font-size:24px; font-variant-numeric:tabular-nums; }
body.lg .lg-calendar-page .mobile-view-tab { min-height:44px; }
body.lg .lg-calendar-page .leave-detail-date { flex:0 0 76px; width:76px; padding:10px 5px; }
body.lg .lg-calendar-page .leave-detail-date-main { font-size:14px; }
body.lg .lg-calendar-page .leave-detail-info { min-width:0; }
body.lg .lg-calendar-page .leave-detail-item { padding:16px; gap:14px; }
body.lg .lg-calendar-page .leave-detail-user,
body.lg .lg-calendar-page .leave-detail-tags { flex-wrap:wrap; gap:6px; }

/* 账号列表：只在此页固定操作列，保留完整字段和手机卡片。 */
.lx-accounts-hint { margin:10px 2px; }
.lx-accounts-table .lg-person > div { min-width:0; }
.lx-accounts-table .lg-person__name, .lx-accounts-table .lg-person__sub,
.lx-account-classes, .lx-account-reason, .lx-account-actions .lg-drawer__sub { overflow-wrap:anywhere; white-space:normal; }
.lx-accounts-table summary { cursor:pointer; color:var(--lg-brand-ink); }
.lx-account-action-list { display:grid; gap:10px; margin-top:18px; }
body.lg .lx-account-action-list .btn { justify-content:flex-start; min-height:48px; padding:12px 16px; }
.lx-account-action-list .btn i { width:20px; text-align:center; }
.lx-account-actions .lg-drawer__head > div { min-width:0; }
@media (min-width:700px) {
    .lx-accounts-table { max-height:65vh; overscroll-behavior:contain; }
    .lx-accounts-table .lg-table { min-width:1050px; }
    .lx-accounts-table .lg-table th { z-index:2; background:linear-gradient(var(--lg-surface-hi),var(--lg-surface-hi)),var(--lg-canvas); }
    .lx-accounts-table .lg-table td { white-space:normal; }
    .lx-accounts-table .lg-table td:first-child { min-width:210px; max-width:290px; }
    .lx-accounts-table .lg-table td:nth-child(2) { min-width:160px; max-width:240px; }
    .lx-accounts-table .lg-table td:nth-child(4) { min-width:100px; max-width:220px; }
    .lx-accounts-table .lg-table td:nth-child(7) { min-width:110px; }
    .lx-accounts-table .lg-table .lg-col-end { position:sticky; right:0; min-width:195px; background:linear-gradient(var(--lg-glass-solid),var(--lg-glass-solid)),var(--lg-canvas); box-shadow:-1px 0 0 var(--lg-hairline); }
    .lx-accounts-table .lg-table th.lg-col-end { z-index:3; }
    .lx-accounts-table .lg-table td.lg-col-end { z-index:1; }
}
@media (max-width:699.98px) {
    .lx-accounts-table .lg-table td { min-width:0; }
    .lx-accounts-table td > * { min-width:0; }
    .lx-accounts-table .lg-actions { flex-wrap:wrap; justify-content:flex-end; }
    body.lg .lx-accounts-table .btn { min-height:44px; }
}

/* 发送记录：值有独立的可缩小容器，不让长邮箱/错误撑开手机卡片。 */
.lx-notify-logs { min-width:0; }
.lx-notify-logs #outboxCard { margin-bottom:16px; }
.lx-notify-logs .lg-table td { white-space:normal; }
.lx-notify-value { display:block; min-width:0; overflow-wrap:anywhere; }
.lx-notify-error { margin-top:6px; white-space:pre-wrap; overflow-wrap:anywhere; }
.lx-notify-failed { display:flex; align-items:flex-start; gap:12px; margin-top:12px; }
.lx-notify-failed > span { flex:1; min-width:0; overflow-wrap:anywhere; }
.lx-notify-failed > button { flex:none; }
.lx-notify-logs .lg-pager { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:12px; margin-top:16px; }
body.lg .lx-notify-logs .btn { min-height:44px; }
body.lg .lx-delivery-detail { width:min(760px, calc(100vw - 28px)); }
.lx-delivery-detail .lg-drawer__head > div { min-width:0; }
.lx-delivery-detail .lg-drawer__body { min-height:0; }
.lx-delivery-meta { display:grid; grid-template-columns:76px minmax(0,1fr); gap:10px 14px; margin:0 0 22px; }
.lx-delivery-meta dt { color:var(--lg-text-3); }
.lx-delivery-meta dd { margin:0; overflow-wrap:anywhere; }
.lx-mail-preview { width:100%; height:420px; margin-top:14px; border:1px solid var(--lg-hairline); border-radius:var(--lg-r-sm); background:white; color-scheme:light; }
.lx-delivery-source { margin-top:14px; }
.lx-delivery-source summary { cursor:pointer; color:var(--lg-brand-ink); }
.lx-delivery-source pre, .lx-delivery-text { white-space:pre-wrap; overflow-wrap:anywhere; font:inherit; padding:14px; border-radius:var(--lg-r-sm); background:var(--lg-fill); }
@media (min-width:700px) {
    .lx-notify-logs .lg-table { table-layout:fixed; min-width:850px; }
    .lx-notify-logs th:nth-child(1) { width:140px; }
    .lx-notify-logs th:nth-child(2), .lx-notify-logs th:nth-child(6) { width:85px; }
    .lx-notify-logs th:nth-child(7) { width:125px; }
}
@media (max-width:991.98px) {
    body.lg .lx-delivery-detail { width:auto; }
}
@media (max-width:699.98px) {
    .lx-notify-logs .lg-table td { align-items:flex-start; }
    .lx-notify-logs .lg-table td::before { flex:0 0 4.5em; }
    .lx-notify-value { flex:1; }
    .lx-notify-logs .lg-toolbar > * { max-width:100%; }
    .lx-notify-logs .lg-table td > button { min-width:0; }
}

.lx-accounts-table .lg-chip, .lx-accounts-table .lg-actions .btn { white-space:nowrap; flex-shrink:0; }
@media (min-width:700px) {
    .lx-accounts-table .lg-table td:nth-child(3), .lx-accounts-table .lg-table td:nth-child(5) { min-width:95px; }
    .lx-accounts-table .lg-table .lg-col-end { min-width:220px; }
}

/* 账号工作台：紧凑的统计带，留足列表阅读宽度。 */
.lx-account-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-radius:var(--lg-r-lg); padding:20px 0; margin-bottom:24px; }
.lx-account-stat { min-width:0; padding:0 24px; }
.lx-account-stat + .lx-account-stat { border-left:1px solid var(--lg-hairline); }
.lx-account-stat .lg-kpi__value { margin-top:12px; font-size:30px; display:flex; align-items:baseline; gap:5px; }
.lx-stat-divider { padding:0 5px; font-weight:400; font-size:22px; color:var(--lg-text-3); }
.lx-accounts-page .lx-account-filters { gap:12px; margin-bottom:12px; }
.lx-accounts-table .lg-person__name { line-height:1.45; }
.lx-accounts-table .lg-person__sub { margin-top:5px; }
.lx-accounts-table .lg-avatar { flex-shrink:0; }
.lx-accounts-table .lg-chip { white-space:nowrap; }
.lx-accounts-table .lg-chip::before { flex-shrink:0; }
.lx-accounts-table .lg-actions .btn { min-height:36px; padding:8px 12px; white-space:nowrap; }
@media (min-width:700px) {
    .lx-accounts-table .lg-table { min-width:1140px; }
    .lx-accounts-table .lg-table td { padding-top:16px; padding-bottom:16px; }
    .lx-accounts-table .lg-table td:first-child { min-width:220px; }
    .lx-accounts-table .lg-table td:nth-child(2) { min-width:165px; }
    .lx-accounts-table .lg-table td:nth-child(3), .lx-accounts-table .lg-table td:nth-child(5) { min-width:100px; }
    .lx-accounts-table .lg-table td:nth-child(6) { min-width:90px; }
    .lx-accounts-table .lg-table td:nth-child(7) { min-width:130px; }
    .lx-accounts-table .lg-table .lg-col-end { min-width:220px; }
}
@media (max-width:699.98px) {
    .lx-account-stats { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 0; padding:18px 0; margin-bottom:20px; }
    .lx-account-stat { padding:0 16px; }
    .lx-account-stat:nth-child(3) { border-left:0; }
    .lx-account-stat .lg-kpi__label { font-size:12px; gap:6px; }
    .lx-account-stat .lg-kpi__value { font-size:28px; }
    .lx-accounts-table .lg-table .lx-account-person { display:block; text-align:left; padding-bottom:16px; margin-bottom:8px; border-bottom:1px solid var(--lg-hairline); }
    .lx-accounts-table .lg-table .lx-account-person::before { display:none; }
    body.lg .lx-accounts-table .lg-actions .btn { min-height:44px; }
}
