/* 江苏华辰企管中心数字化工作平台 V2.6.80 - 统一视觉系统收口层 */

/* ===== LEGACY REFINED FOUNDATION ===== */
/* =========================================================
   V2.6.7.6 全局 UI / UX 精修层
   - 稳定分支：不改业务口径，仅统一视觉与交互
   - 最小可读字号：18px（运行时低于18px的文本会自动补齐）
   ========================================================= */
:root{
  --ui-font-min:18px;
  --ui-bg:#f4f7fb;
  --ui-surface:#ffffff;
  --ui-surface-soft:#f8fbfe;
  --ui-surface-blue:#f1f7ff;
  --ui-text:#183b5a;
  --ui-text-2:#58718a;
  --ui-text-3:#7f91a3;
  --ui-primary:#2176d2;
  --ui-primary-2:#3c91ed;
  --ui-primary-dark:#145ba9;
  --ui-success:#16805d;
  --ui-warning:#c98619;
  --ui-danger:#c94f58;
  --ui-line:#dbe6ef;
  --ui-line-strong:#cbd9e6;
  --ui-radius-sm:12px;
  --ui-radius-md:16px;
  --ui-radius-lg:22px;
  --ui-radius-xl:28px;
  --ui-shadow-xs:0 4px 14px rgba(26,66,106,.045);
  --ui-shadow-sm:0 10px 26px rgba(26,66,106,.07);
  --ui-shadow-md:0 18px 48px rgba(26,66,106,.11);
  --ui-sidebar-wide:318px;
  --ui-sidebar-collapsed:96px;
  --ui-ease:cubic-bezier(.22,.61,.36,1);
}

html{font-size:18px;scroll-behavior:smooth;background:var(--ui-bg)}
body{font-size:18px;line-height:1.55;background:var(--ui-bg);color:var(--ui-text);letter-spacing:.005em}
::selection{background:rgba(33,118,210,.18);color:var(--ui-text)}
.ui-font-floor{font-size:18px!important;line-height:1.5!important}

/* 滚动条 */
*{scrollbar-width:thin;scrollbar-color:#b8c9d8 transparent}
*::-webkit-scrollbar{width:10px;height:10px}
*::-webkit-scrollbar-thumb{background:#b8c9d8;border-radius:999px;border:2px solid transparent;background-clip:padding-box}
*::-webkit-scrollbar-thumb:hover{background:#8fa8bd;background-clip:padding-box}
*::-webkit-scrollbar-track{background:transparent}

/* 无障碍焦点 */
:where(button,a,input,select,textarea,[tabindex]):focus-visible{outline:3px solid rgba(33,118,210,.26)!important;outline-offset:3px!important}
button:disabled,.btn:disabled{cursor:not-allowed!important;opacity:.58!important;transform:none!important;box-shadow:none!important}

/* =========================
   整体框架
   ========================= */
.shell{grid-template-columns:var(--ui-sidebar-wide) minmax(0,1fr)!important;background:var(--ui-bg);transition:grid-template-columns .28s var(--ui-ease)}
.shell.sidebar-collapsed{grid-template-columns:var(--ui-sidebar-collapsed) minmax(0,1fr)!important}
.main{background:linear-gradient(180deg,#f7f9fc 0,#f4f7fb 280px,#f4f7fb 100%)}
.content{max-width:1920px!important;padding:34px clamp(26px,2.4vw,46px) 64px!important}
.page-transition{animation:uiRefinedPageIn .28s var(--ui-ease) both}
@keyframes uiRefinedPageIn{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}

/* =========================
   侧栏
   ========================= */
.sidebar{
  background:
    radial-gradient(circle at 20% 0,rgba(73,158,255,.26),transparent 19rem),
    linear-gradient(180deg,#0b4a88 0,#07386e 46%,#052a57 75%,#031f42 100%)!important;
  box-shadow:10px 0 34px rgba(5,43,85,.09)!important;
  transition:width .28s var(--ui-ease),transform .28s var(--ui-ease)!important;
}
.brand{padding:28px 24px 22px!important;border-bottom:1px solid rgba(255,255,255,.10)!important;min-height:132px;display:flex;flex-direction:column;justify-content:center;transition:.25s var(--ui-ease)}
.brand img{width:220px!important;max-width:100%;height:auto;transition:.25s var(--ui-ease)}
.brand small{margin-top:10px!important;color:rgba(255,255,255,.54)!important;line-height:1.5!important}
.nav{padding:20px 14px 22px!important;overflow-y:auto!important;overflow-x:hidden!important}
.nav-section{margin-bottom:22px}
.nav-section-label{padding:0 14px 9px;color:rgba(255,255,255,.42)!important;font-weight:700;letter-spacing:.08em;text-transform:none;white-space:nowrap}
.nav button{
  min-height:58px!important;height:auto!important;
  display:grid!important;grid-template-columns:34px minmax(0,1fr) 22px;align-items:center;gap:10px;
  margin:4px 0!important;padding:10px 15px!important;border-radius:15px!important;
  color:rgba(255,255,255,.76)!important;background:transparent!important;
  transition:background .18s ease,transform .18s ease,color .18s ease!important;
}
.nav button i{display:grid!important;place-items:center!important;width:32px!important;color:rgba(211,232,255,.86)}
.nav button i .ui-icon{width:22px!important;height:22px!important}
.nav button span{font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav button em{display:grid;place-items:center;color:rgba(255,255,255,.35);transition:.18s}
.nav button:hover{transform:translateX(2px)!important;background:rgba(255,255,255,.08)!important;color:#fff!important}
.nav button.active{background:linear-gradient(90deg,rgba(70,154,246,.30),rgba(40,110,197,.22))!important;color:#fff!important;box-shadow:inset 0 0 0 1px rgba(154,204,255,.18)}
.nav button.active:before{top:10px!important;bottom:10px!important;width:4px!important;background:#7fc3ff!important;box-shadow:0 0 14px rgba(127,195,255,.45)}
.nav button.active em{color:#fff}
.side-status{margin:8px 14px 12px!important;padding:15px 16px!important;border:1px solid rgba(255,255,255,.10)!important;border-radius:17px!important;background:rgba(255,255,255,.06)!important;backdrop-filter:blur(12px)}
.side-status>span{width:40px!important;height:40px!important;border-radius:12px!important;background:rgba(61,157,246,.19)!important;color:#a9d7ff!important}
.side-status b{color:#fff!important;font-weight:700}
.side-status small{color:rgba(255,255,255,.52)!important;margin-top:4px!important}
.userbox{padding:14px!important;border-top:1px solid rgba(255,255,255,.09)!important}
.usercard{min-height:76px;padding:12px 13px!important;border-radius:17px!important;background:rgba(255,255,255,.07)!important;border:1px solid rgba(255,255,255,.08)!important}
.avatar{width:48px!important;height:48px!important;border-radius:14px!important;flex:none;font-size:18px!important}
.usercard b{color:#fff!important;font-weight:750}
.usercard small{color:rgba(255,255,255,.52)!important;margin-top:4px!important}
.usercard .icon-button{color:rgba(255,255,255,.72)!important;background:rgba(255,255,255,.07)!important;border-color:rgba(255,255,255,.08)!important}

/* 收起侧栏 */
.sidebar-collapsed .brand{padding:22px 10px!important;min-height:112px;align-items:center}
.sidebar-collapsed .brand img{width:68px!important;max-height:62px;object-fit:contain;object-position:left;clip-path:inset(0 48% 0 0)}
.sidebar-collapsed .brand small,.sidebar-collapsed .nav-section-label,.sidebar-collapsed .nav button span,.sidebar-collapsed .nav button em,.sidebar-collapsed .side-status div,.sidebar-collapsed .usercard>div,.sidebar-collapsed .usercard .icon-button{display:none!important}
.sidebar-collapsed .nav{padding:18px 12px!important}
.sidebar-collapsed .nav-section{margin-bottom:8px}
.sidebar-collapsed .nav button{grid-template-columns:1fr!important;justify-items:center!important;padding:10px!important;min-height:58px!important}
.sidebar-collapsed .nav button i{width:100%!important}
.sidebar-collapsed .side-status{display:grid!important;place-items:center!important;padding:10px!important}
.sidebar-collapsed .usercard{justify-content:center!important;padding:10px!important}
.sidebar-collapsed .avatar{margin:0!important}

/* =========================
   顶栏
   ========================= */
.topbar{
  min-height:92px!important;padding:14px clamp(26px,2.4vw,46px)!important;
  border-bottom:1px solid rgba(204,218,231,.82)!important;
  background:rgba(250,252,255,.90)!important;backdrop-filter:blur(18px) saturate(145%)!important;
  box-shadow:0 6px 24px rgba(28,63,100,.035)!important;
}
.sidebar-toggle{width:48px!important;height:48px!important;min-width:48px!important;border-radius:14px!important;background:#fff!important;border:1px solid var(--ui-line)!important;color:var(--ui-primary)!important;box-shadow:var(--ui-shadow-xs)}
.sidebar-toggle .ui-icon{width:22px!important;height:22px!important}
.topbar-title h1{font-size:27px!important;line-height:1.2!important;letter-spacing:-.02em;color:#173b5c!important}
.topbar-title p{margin-top:7px!important;color:#7b8fa2!important;white-space:normal!important}
.topbar-tools{gap:11px!important}
.topbar-tool-button,.topbar-more>summary{min-height:50px!important;border-radius:14px!important;background:#f2f7fc!important;border-color:#dce8f3!important;color:#286eb4!important}
.topbar-tool-button:hover,.topbar-more>summary:hover{background:#eaf4ff!important}
.topbar-more-menu{min-width:250px!important;padding:10px!important;border-radius:17px!important;border:1px solid var(--ui-line)!important;background:#fff!important;box-shadow:var(--ui-shadow-md)!important}
.topbar-more-menu button{min-height:48px!important;border-radius:12px!important;padding:0 13px!important}
.sync{min-height:46px!important;padding:9px 13px!important;border-radius:12px!important;background:#f8fbfe!important}

/* =========================
   页面标题、信息层级
   ========================= */
.pagehead{align-items:center!important;margin-bottom:26px!important;gap:24px!important}
.pagehead h2{font-size:31px!important;line-height:1.22!important;letter-spacing:-.025em;color:#173b5c!important}
.pagehead p{margin-top:9px!important;color:#70859a!important;line-height:1.55!important}
.pagehead .actions{justify-content:flex-end}
.section-head{gap:18px!important;align-items:center!important;margin-bottom:18px!important}
.section-head h3,.panel h3{font-size:23px!important;line-height:1.35!important;color:#244965!important;letter-spacing:-.01em}
.panel-sub{margin-top:6px!important;margin-bottom:16px!important;color:#7b8fa1!important;line-height:1.65!important}

/* =========================
   卡片 / 面板
   ========================= */
.panel,.stat,.person,.member-summary,.dept-summary,.owner-task-group,.daily-person,.system-account,.media-card,.vehicle-card{
  border:1px solid var(--ui-line)!important;border-radius:var(--ui-radius-lg)!important;background:var(--ui-surface)!important;box-shadow:var(--ui-shadow-xs)!important;
}
.panel{padding:25px!important}
.ui-interactive-card{transition:transform .18s var(--ui-ease),box-shadow .18s var(--ui-ease),border-color .18s var(--ui-ease)!important}
.ui-interactive-card:hover{transform:translateY(-2px)!important;box-shadow:var(--ui-shadow-sm)!important;border-color:#c9dced!important}
.stats{gap:18px!important}
.stat{padding:23px!important;min-height:148px!important}
.stat label{color:#71869a!important;font-weight:700!important}
.stat strong{font-size:40px!important;line-height:1.05!important;margin-top:20px!important;color:#173f62!important;letter-spacing:-.035em}
.stat small{margin-top:11px!important;color:#8899a8!important}
.grid2{gap:20px!important;margin-top:20px!important}
.empty{padding:72px 28px!important;color:#8093a5!important;line-height:1.7!important}
.empty b{font-size:22px!important;color:#375873!important;margin-bottom:8px!important}

/* =========================
   按钮 / 图标按钮
   ========================= */
.btn{
  position:relative;overflow:hidden;min-height:52px!important;padding:0 20px!important;border-radius:14px!important;
  font-size:18px!important;font-weight:750!important;letter-spacing:.005em;transition:transform .16s var(--ui-ease),box-shadow .16s var(--ui-ease),background .16s var(--ui-ease),border-color .16s var(--ui-ease)!important;
}
.btn .ui-icon{width:20px!important;height:20px!important}
.btn.primary{background:linear-gradient(135deg,#3489e7,#1d6bc5)!important;box-shadow:0 10px 24px rgba(33,118,210,.18)!important}
.btn.primary:hover{box-shadow:0 14px 32px rgba(33,118,210,.25)!important}
.btn.secondary{background:#fff!important;border-color:#d5e1ec!important;color:#4b657b!important}
.btn.soft{background:#eef6ff!important;border-color:#d6e8f8!important;color:#246bb8!important}
.btn.danger{background:#fff4f4!important;border-color:#f0d2d5!important;color:#bd4750!important}
.btn:hover{transform:translateY(-1px)!important}
.btn:active{transform:translateY(0)!important}
.icon-button{width:48px!important;height:48px!important;min-width:48px!important;border-radius:14px!important;border:1px solid #dbe6ef!important;background:#f7fafc!important;color:#4d6c85!important;transition:.16s var(--ui-ease)!important}
.icon-button:hover{background:#eef6ff!important;color:#2176d2!important;border-color:#cde0f2!important;transform:translateY(-1px)}
.icon-button .ui-icon{width:21px!important;height:21px!important}
.text-link{min-height:42px;align-items:center!important;color:#2472c5!important;font-weight:700!important;text-decoration:none!important}

/* =========================
   表单
   ========================= */
.field{margin-bottom:18px!important}
.field>span,.field label{display:block;color:#506b82!important;font-weight:700!important;margin-bottom:8px!important}
.field input,.field select,.field textarea,.toolbar input,.toolbar select,input:not([type="checkbox"]):not([type="radio"]),select,textarea{
  min-height:54px;border:1px solid #d5e1eb!important;border-radius:14px!important;background:#fff!important;color:#24445f!important;padding-left:15px;padding-right:15px;transition:border-color .16s,box-shadow .16s,background .16s!important;
}
textarea{padding-top:13px!important;padding-bottom:13px!important;line-height:1.65!important}
input::placeholder,textarea::placeholder{color:#9aa9b6!important;opacity:1}
input:focus,select:focus,textarea:focus{border-color:#6ba9e5!important;box-shadow:0 0 0 4px rgba(33,118,210,.09)!important;background:#fff!important;outline:none!important}
input[type="checkbox"],input[type="radio"]{width:20px!important;height:20px!important;accent-color:var(--ui-primary)}
.toolbar{gap:12px!important;margin-bottom:18px!important;align-items:center!important}
.toolbar input,.toolbar select{height:54px!important}
.toolbar input{min-width:280px!important}

/* =========================
   Tabs / Segments / Filters
   ========================= */
.view-switch,.analysis-mode-switch,.unified-tabs,.budget-tabs,.vehicle-tabs,.dorm-tabs,.media-tabs,.segmented-control{gap:6px!important;padding:6px!important;border-radius:16px!important;background:#f1f6fb!important;border:1px solid #dfe9f2!important}
.view-switch button,.analysis-mode-switch button,.unified-tabs button,.budget-tabs button,.vehicle-tabs button,.dorm-tabs button,.media-tabs button,.segmented-control button{
  min-height:46px!important;padding:0 16px!important;border-radius:11px!important;font-weight:700!important;transition:.16s var(--ui-ease)!important;
}
.view-switch button.active,.analysis-mode-switch button.active,.unified-tabs button.active,.budget-tabs button.active,.vehicle-tabs button.active,.dorm-tabs button.active,.media-tabs button.active,.segmented-control button.active{
  background:#fff!important;color:#1769bd!important;box-shadow:0 5px 15px rgba(33,89,145,.08)!important;border-color:#d9e6f2!important;
}

/* =========================
   表格
   ========================= */
.tablewrap{border:1px solid var(--ui-line)!important;border-radius:18px!important;background:#fff!important;box-shadow:none!important;position:relative}
th{position:sticky;top:0;z-index:2;min-height:58px;padding:17px 16px!important;background:#f5f8fb!important;color:#637a8f!important;font-weight:800!important;border-bottom:1px solid #dfe7ef!important;white-space:nowrap}
td{min-height:62px;padding:17px 16px!important;color:#36536c!important;border-bottom:1px solid #edf2f6!important;line-height:1.55!important;vertical-align:middle!important}
tbody tr{transition:background .14s ease,box-shadow .14s ease}
tbody tr:hover{background:#f6faff!important;box-shadow:inset 3px 0 0 #5fa3e3}
tbody tr:last-child td{border-bottom:0!important}
.tablewrap.is-scrollable:after{content:"左右滑动查看更多";position:sticky;right:12px;bottom:10px;float:right;margin:-42px 10px 8px 0;padding:7px 10px;border-radius:10px;background:rgba(25,64,100,.82);color:#fff;pointer-events:none;opacity:.85}
.tablewrap.scrolled-end:after{display:none}

/* =========================
   标签 / 状态
   ========================= */
.badge,.tag,.pill,.status-pill,.task-status-pill,.task-risk-pill,.relation-badge{
  min-height:32px!important;display:inline-flex!important;align-items:center!important;padding:5px 11px!important;border-radius:999px!important;font-weight:800!important;line-height:1.2!important;white-space:nowrap!important;
}
.badge{background:#edf5ff!important;color:#2269bb!important}
.badge.green{background:#eaf8f2!important;color:#13775a!important}
.badge.red{background:#fff0f1!important;color:#b8434c!important}
.badge.yellow,.badge.orange{background:#fff6e5!important;color:#a86d13!important}

/* =========================
   进度 / 图表辅助
   ========================= */
.bar{height:10px!important;background:#eaf0f5!important}
.bar span{background:linear-gradient(90deg,#2d7fd4,#5aa9eb)!important}
.progress-row{margin-bottom:8px!important;color:#6e8497!important}

/* =========================
   弹窗 / 抽屉
   ========================= */
.backdrop{padding:28px!important;background:rgba(4,22,43,.46)!important;backdrop-filter:blur(9px)!important}
.modal{width:min(760px,calc(100vw - 48px))!important;max-height:90vh!important;border:1px solid rgba(215,226,236,.9)!important;border-radius:26px!important;padding:0!important;box-shadow:0 32px 100px rgba(12,43,76,.24)!important;overflow:hidden!important}
.modal.wide{width:min(1120px,calc(100vw - 48px))!important}
.modal.drawer{width:min(980px,92vw)!important;margin-left:auto!important;border-radius:26px 0 0 26px!important;max-height:100dvh!important;height:100dvh!important}
.modalhead{padding:24px 26px 19px!important;margin:0!important;border-bottom:1px solid #e5ecf2!important;background:rgba(255,255,255,.97)!important;backdrop-filter:blur(12px)}
.modalhead h2{font-size:28px!important;color:#1d425f!important}
.modalhead p{margin-top:8px!important;color:#7a8fa1!important}
.close{width:46px!important;height:46px!important;border-radius:13px!important;background:#f2f6f9!important;color:#5b7287!important}
.modal form>.formgrid,.modal>.formgrid,.modal>.detail,.modal>.ocr-preview,.modal>.daily-report-preview{padding:24px 26px!important}
.formgrid{gap:18px 20px!important}
.modalfoot{padding:17px 26px!important;gap:12px!important;border-top:1px solid #e5ecf2!important;background:#fff!important;box-shadow:0 -10px 28px rgba(22,62,101,.04)!important}

/* =========================
   Toast / Loading / Banner
   ========================= */
#toast{min-width:360px!important;max-width:min(620px,calc(100vw - 36px))!important;padding:13px 17px!important;border-radius:18px!important;box-shadow:0 22px 60px rgba(15,50,85,.24)!important}
.toast-icon{width:44px!important;height:44px!important;border-radius:13px!important}
.toast-icon .ui-icon{width:22px!important;height:22px!important}
#toast b{font-weight:800!important}
#toast small{color:rgba(255,255,255,.82)!important;margin-top:3px!important}
.status-banner{gap:13px!important;padding:15px 17px!important;border-radius:16px!important;line-height:1.55!important}
.status-icon{width:42px!important;height:42px!important;border-radius:12px!important;flex:none!important}
.loading-card{min-width:340px!important;padding:25px 30px!important;border-radius:24px!important;box-shadow:var(--ui-shadow-md)!important}
.loading-spinner{width:58px!important;height:58px!important;border-radius:17px!important}
.loading-spinner .ui-icon{width:28px!important;height:28px!important}

/* =========================
   登录页
   ========================= */
body.login-screen{background:#edf3f8!important;overflow:auto!important}
.refined-login{min-height:100dvh!important;grid-template-columns:minmax(0,1.08fr) minmax(520px,.92fr)!important;background:#edf3f8!important}
.refined-login-hero{
  min-height:100dvh;padding:48px clamp(48px,5vw,82px) 118px!important;
  background:
    radial-gradient(circle at 16% 12%,rgba(72,160,255,.30),transparent 32rem),
    radial-gradient(circle at 86% 76%,rgba(40,194,225,.14),transparent 27rem),
    linear-gradient(145deg,#0c4d90 0,#083a70 50%,#04284e 100%)!important;
}
.refined-login-hero:before{opacity:.07!important;background-size:64px 64px!important}
.refined-login-brand{display:flex;align-items:center;gap:24px;position:relative;z-index:2}
.refined-login-brand .hero-logo{width:280px!important}
.refined-login-brand>span{padding-left:24px;border-left:1px solid rgba(255,255,255,.22);color:rgba(255,255,255,.76);font-weight:700}
.refined-login-main{margin-top:clamp(78px,11vh,132px)!important;max-width:880px!important}
.refined-login-main .eyebrow{color:#a9d7ff!important;font-weight:800;letter-spacing:.13em!important}
.refined-login-main h1{margin:24px 0 22px!important;font-size:clamp(48px,4.3vw,68px)!important;line-height:1.12!important;letter-spacing:-.045em!important}
.refined-login-main h1 em{color:#ffd36e!important}
.refined-login-main>p{max-width:800px;color:rgba(255,255,255,.72)!important;line-height:1.85!important}
.login-feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:34px}
.login-feature-grid article{display:flex;gap:14px;align-items:flex-start;padding:18px;border:1px solid rgba(255,255,255,.12);border-radius:18px;background:rgba(255,255,255,.055);backdrop-filter:blur(10px)}
.login-feature-grid article>span{display:grid;place-items:center;width:46px;height:46px;flex:none;border-radius:14px;background:rgba(102,183,255,.16);color:#b6ddff}
.login-feature-grid article .ui-icon{width:23px!important;height:23px!important}
.login-feature-grid b{display:block;color:#fff;font-weight:750}
.login-feature-grid small{display:block;margin-top:5px;color:rgba(255,255,255,.58)!important;line-height:1.55!important}
.login-warm-line{display:flex;gap:14px;align-items:flex-start;margin-top:22px;padding:17px 19px;border-radius:18px;background:rgba(255,255,255,.065);border:1px solid rgba(255,255,255,.10)}
.login-warm-line>span{display:grid;place-items:center;width:42px;height:42px;flex:none;border-radius:13px;background:rgba(255,211,110,.12);color:#ffd36e}
.login-warm-line small,.login-warm-line b{display:block}
.login-warm-line small{color:rgba(255,255,255,.56)!important}
.login-warm-line b{margin-top:4px;color:#fff;line-height:1.65;font-weight:650}
.refined-login-foot{left:clamp(48px,5vw,82px)!important;right:clamp(48px,5vw,82px)!important;bottom:34px!important;color:rgba(255,255,255,.48)!important;gap:20px!important}
.refined-login-side{padding:46px!important;background:radial-gradient(circle at 100% 0,#dcecff,transparent 30rem),linear-gradient(180deg,#f7f9fc,#eef3f8)!important}
.refined-login-card{width:min(560px,100%)!important;padding:38px!important;border-radius:30px!important;border:1px solid #dce6ef!important;box-shadow:0 26px 80px rgba(22,61,105,.13)!important;animation:cardIn .45s var(--ui-ease) both!important}
.login-kicker{margin-bottom:16px;color:#347cbc;font-weight:800;letter-spacing:.06em}
.refined-login-card .login-title{gap:16px!important;margin-bottom:22px!important}
.refined-login-card .login-mark{width:58px!important;height:58px!important;border-radius:17px!important;background:#eef6ff!important;color:#2176d2!important}
.refined-login-card .login-mark .ui-icon{width:26px!important;height:26px!important}
.refined-login-card .login-title h2{font-size:32px!important;color:#183e5f!important;line-height:1.18!important}
.refined-login-card .login-title p{margin-top:6px!important;color:#7d90a2!important}
.login-cloud-status{margin-bottom:22px!important;background:#f2faf6!important;border-color:#d9ede2!important;color:#247158!important}
.refined-login-card .field{margin-bottom:18px!important}
.refined-login-card .field input{height:58px!important;padding-left:52px!important;border-radius:15px!important;background:#fbfdff!important}
.refined-login-card .input-with-icon>.ui-icon{left:17px!important;width:22px!important;height:22px!important;color:#7990a4!important}
.remember-password{margin:2px 0 20px!important;padding:13px 14px!important;border-radius:14px!important;background:#f6f9fc!important;align-items:center!important}
.remember-password input{width:21px!important;height:21px!important}
.remember-password b,.remember-password small{display:block}
.remember-password small{margin-top:3px!important;color:#8497a8!important}
.refined-login-card .login-submit{min-height:58px!important;border-radius:15px!important;padding:0 20px!important}
.login-submit.is-loading .ui-icon{animation:uiSpin 1s linear infinite}
.login-security-note{display:flex;gap:10px;align-items:flex-start;margin-top:17px;padding:12px 14px;border-radius:13px;background:#f6f9fc;color:#74889a}
.login-security-note .ui-icon{width:20px!important;height:20px!important;margin-top:3px;flex:none}
.login-security-note p{margin:0!important;line-height:1.55!important}
.refined-login-card .login-note{margin-top:16px!important;color:#95a4b2!important;text-align:center!important}
.mobile-login-logo{display:none}

/* =========================
   宿舍总览专项精修
   ========================= */
.dorm-hero-compact{padding:24px 26px!important;border-radius:22px!important;margin-bottom:18px!important}
.dorm-hero-main.compact h2{font-size:30px!important;color:#173f61!important}
.dorm-hero-main.compact p{color:#788da0!important;margin-top:6px!important}
.dorm-hero-summary{gap:10px!important}
.dorm-hero-summary span{padding:9px 13px!important;background:#f2f7fc!important;border-color:#dce8f1!important}
.occupancy-kpis.refined{gap:16px!important;margin-bottom:20px!important}
.occupancy-kpis.refined article{padding:21px 20px!important;min-height:132px!important}
.occupancy-kpis.refined b{font-size:34px!important;margin-top:13px!important;color:#173f61!important}
.occupancy-kpis.refined b em{font-size:18px!important;color:#70869a!important}
.occupancy-kpis.refined span{margin-top:10px!important;color:#8092a3!important}
.dorm-occupancy-grid.refined{gap:20px!important;margin-bottom:20px!important}
.dorm-floor-occupancy-bars.refined{gap:12px!important}
.dorm-floor-occupancy-bars.refined article{grid-template-columns:190px minmax(180px,1fr) 110px!important;gap:16px!important;padding:15px 16px!important;border-radius:15px!important;background:#fbfdff!important}
.dorm-floor-occupancy-bars.refined article>div b{font-size:20px!important;color:#28506e!important}
.dorm-floor-occupancy-bars.refined article>span b{font-size:23px!important}
.dorm-floor-occupancy-bars.refined article>i{height:11px!important}
.dorm-occupancy-status-grid.refined{gap:14px!important}
.dorm-occupancy-status-grid.refined article{min-height:116px!important;border-radius:18px!important}
.dorm-occupancy-status-grid.refined article b{font-size:34px!important}
.dorm-type-chips.refined{gap:10px!important}
.dorm-type-chips.refined span{min-height:40px!important;padding:8px 13px!important}
.dorm-room-matrix{gap:13px!important}
.dorm-room-matrix-card{min-height:132px!important;padding:16px!important;border-radius:17px!important;transition:.16s var(--ui-ease)!important}
.dorm-room-matrix-card:hover{transform:translateY(-2px)!important;box-shadow:var(--ui-shadow-sm)!important}
.dorm-occupancy-floor summary{min-height:66px!important;padding:14px 16px!important}
.dorm-recent-list article{min-height:62px!important;padding:12px 0!important}

/* =========================
   常见专项模块统一细节
   ========================= */
.media-summary-hero,.vehicle-hero,.budget-hero,.dorm-hero{border-radius:24px!important;box-shadow:var(--ui-shadow-xs)!important}
.media-summary-hero h2,.vehicle-hero h2,.budget-hero h2{font-size:30px!important}
.media-summary-kpis article,.vehicle-kpis article,.budget-kpis article,.dorm-kpis article{border-radius:18px!important}
.executive-clean-hero,.welcome-banner{border-radius:26px!important;box-shadow:var(--ui-shadow-xs)!important}
.executive-clean-copy h2,.welcome-copy h2{font-size:32px!important}
.executive-leader-warm,.welcome-warm-copy{border-radius:16px!important;padding:14px 16px!important}

/* =========================
   回到顶部
   ========================= */
.back-to-top{position:fixed;right:28px;bottom:28px;z-index:60;width:54px;height:54px;border:1px solid #d6e2ec;border-radius:17px;background:rgba(255,255,255,.94);color:#2373c5;box-shadow:0 14px 36px rgba(30,70,110,.14);display:grid;place-items:center;opacity:0;pointer-events:none;transform:translateY(12px);transition:.2s var(--ui-ease)}
.back-to-top.show{opacity:1;pointer-events:auto;transform:none}
.back-to-top:hover{background:#eef6ff;transform:translateY(-2px)}
.back-to-top .ui-icon{width:22px!important;height:22px!important;transform:rotate(-90deg)}

/* =========================
   响应式
   ========================= */
@media(max-width:1500px){
  :root{--ui-sidebar-wide:288px}
  .content{padding-left:30px!important;padding-right:30px!important}
  .topbar{padding-left:30px!important;padding-right:30px!important}
  .refined-login-main{margin-top:70px!important}
}
@media(max-width:1180px){
  .shell{grid-template-columns:260px minmax(0,1fr)!important}
  .shell.sidebar-collapsed{grid-template-columns:92px minmax(0,1fr)!important}
  .brand img{width:190px!important}
  .topbar-title p{display:none}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .grid2{grid-template-columns:1fr!important}
  .login-feature-grid{grid-template-columns:1fr!important}
  .dorm-occupancy-grid.refined{grid-template-columns:1fr!important}
}
@media(max-width:900px){
  .sidebar,.sidebar-toggle{display:none!important}
  .shell,.shell.sidebar-collapsed{display:block!important}
  .topbar{min-height:78px!important;padding:12px 18px!important}
  .topbar-title h1{font-size:24px!important}
  .topbar-more{display:none!important}
  .content{padding:24px 16px 110px!important}
  .pagehead{align-items:flex-start!important;flex-direction:column!important}
  .pagehead .actions{width:100%!important}
  .pagehead .actions .btn{flex:1 1 180px!important}
  .panel{padding:20px!important}
  .stats{grid-template-columns:1fr 1fr!important}
  .tablewrap{border-radius:16px!important}
  .modal,.modal.wide{width:calc(100vw - 24px)!important;max-height:92dvh!important;border-radius:22px!important}
  .formgrid{grid-template-columns:1fr!important}
  .formgrid .full{grid-column:auto!important}
  .mobile-bottom-nav,.mobile-more-sheet{font-size:18px!important}
  .back-to-top{right:16px;bottom:92px}

  body.login-screen{overflow:auto!important}
  .refined-login{display:block!important;min-height:100dvh!important;height:auto!important;background:#edf3f8!important}
  .refined-login .hero{display:none!important}
  .refined-login-side{display:flex!important;min-height:100dvh!important;height:auto!important;padding:28px 16px 40px!important;background:linear-gradient(180deg,#0c4b88 0,#0b4d8f 150px,#edf3f8 150px,#f5f8fb 100%)!important;overflow:visible!important}
  .mobile-login-logo{display:block!important;width:min(260px,68vw)!important;margin:8px auto 24px!important;filter:drop-shadow(0 9px 18px rgba(0,0,0,.15))}
  .refined-login-card{width:min(100%,620px)!important;padding:26px 22px!important;border-radius:24px!important}
  .refined-login-card .login-title h2{font-size:28px!important}
  .refined-login-card .field input{height:58px!important;font-size:18px!important}
  .refined-login-card .login-submit{font-size:18px!important}
}
@media(max-width:620px){
  .stats{grid-template-columns:1fr!important}
  .pagehead h2{font-size:28px!important}
  .topbar-title h1{font-size:22px!important}
  .content{padding-left:12px!important;padding-right:12px!important}
  .panel{padding:18px!important;border-radius:18px!important}
  .btn{min-height:50px!important;padding:0 16px!important}
  .occupancy-kpis.refined{grid-template-columns:1fr!important}
  .dorm-floor-occupancy-bars.refined article{grid-template-columns:1fr auto!important}
  .dorm-floor-occupancy-bars.refined article>i{grid-column:1/-1!important}
  .dorm-occupancy-status-grid.refined{grid-template-columns:1fr 1fr!important}
  .modalhead,.modal form>.formgrid,.modal>.formgrid,.modal>.detail,.modalfoot{padding-left:18px!important;padding-right:18px!important}
  .mobile-bottom-nav{overflow-x:auto!important;justify-content:flex-start!important}
  .mobile-bottom-nav button{min-width:88px!important}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}
}

/* ===== LEGACY TYPOGRAPHY FOUNDATION ===== */
/* =========================================================
   V2.6.7.7 字体层级精修
   核心尺度：12 / 14 / 18 / 28 / 34 px
   目标：恢复企业后台的信息密度，同时保留清晰层级与可读性
   ========================================================= */
/* 旧版模块中的微型文字统一抬至12px；仅覆盖原本小于12px的组件，不影响14/18/28/34层级 */
.hero-tag,
.hero-card span,
.hero-foot,
.status-banner,
.field span,
.remember,
.login-note,
.brand small,
.usercard b,
.usercard small,
.topbar p,
.sync,
.pagehead p,
.stat label,
.stat small,
.panel-sub,
th,
td,
.badge,
.progress-row,
.person p,
.act b,
.act small,
.modalhead p,
.range output{font-size:12px!important}
#toast,
.ocr-upload,
.upload-placeholder span,
.ocr-progress b,
.ocr-tip,
.ocr-help b,
.ocr-help span,
.ocr-summary b,
.ocr-summary span,
.draft-title,
.draft-row input,.draft-row select,.draft-row textarea,
.overview-strip,
.scope-note,
.text-link,
.dept-summary-head small,
.dept-summary-kpis,
.compact-item b,.completion-item b,
.compact-item small,.completion-item small,
.person-kpis span,
.avatar.mini,
.member-summary-name b,
.member-summary-name small,
.member-summary-stats,
.hero-bubble,
.side-mascot{font-size:12px!important}
.welcome-label,
.welcome-copy p,
.mascot-empty span,
.assistant-fab i,
.assistant-head span,
.assistant-kpis span,
.assistant-actions button,
.toast-bot+span b,
.toast-bot+span small,
.loading-card b,
.loading-card small,
.workflow-step small,
.side-status b,
.side-status small,
.focus-panel small,
.focus-panel p,
.empty.icon-empty span,
.task-title-cell .muted,
.avatar.tiny,
.owner-cell small,
.status-with-icon,
.department-head p,
.dept-count,
.person-role,
.person-kpis small{font-size:12px!important}
.task-relation,
.system-account b,
.system-account small,
.analysis-mode-switch button,
.period-current b,
.period-current span,
.analysis-scope,
.analysis-kpis small,
.analysis-kpis em,
.chart-legend,
.trend-value,
.trend-column>b,
.trend-column>small,
.donut small,
.status-legend>div,
.status-legend b,
.dept-analysis-title b,
.dept-analysis-title small,
.dept-bars em,
.rank,
.workload-list b,
.workload-list small,
.workload-progress b,
.workload-list em,
.insight-list b{font-size:12px!important}
.insight-list p,
.analysis-task-item b,
.analysis-task-item small,
.analysis-task-item em,
.view-switch button,
.owner-group-person p,
.owner-group-kpis span,
.my-task-stats small,
.temp-summary small,.daily-overview small,
.daily-date-picker input,
.daily-scope select,
.daily-dept-head p,
.daily-dept-kpis span,
.daily-person-name p,
.daily-state,
.daily-person-kpis span,
.daily-entry b,
.daily-entry small,
.daily-source,
.daily-empty,
.person-progress .progress-row,
.remember-password small,
.deadline-field>span em,
.executive-hero>div:first-child>span,
.executive-kpis small{font-size:12px!important}
.executive-kpis em,
.executive-legend,
.executive-trend-column b,
.executive-trend-column small,
.executive-trend-column em,
.executive-dept-title small,
.executive-dept-volume em,
.executive-dept-kpis span,
.executive-people article>div>b,
.executive-people article>div>small,
.executive-people article>strong,
.executive-people article>em,
.executive-insights article>span,
.executive-insights p,
.risk-level,
.executive-risk-list small,
.executive-person-table-head,
.executive-person-table article,
.executive-person-identity b,
.executive-person-table article>span small,
.executive-person-progress b,
.executive-person-table em,
.executive-daily-person b,
.executive-daily-person small,
.executive-daily-text p{font-size:12px!important}
.date-cell,
.daily-overview small,.temp-summary small,
.daily-report-module p,
.trend-column b,
.trend-column small,.trend-column em,
.analysis-task-list b,
.analysis-task-list small,
.executive-hero p,
.executive-trend-column small,.executive-trend-column em,
.executive-risk-list b,
.login-title p,
.ocr-preview-box .upload-placeholder span,
.executive-hero-tags span,
.executive-period .period-current span,
.executive-digital-strip small,
.executive-digital-strip b,
.executive-digital-strip>em,
.executive-readonly-badge,
.executive-task-dept-head>span,
.executive-detail-person small,
.executive-detail-summary>span,
.executive-detail-summary>em,
.executive-task-row,
.executive-task-row-head,
.executive-task-name b{font-size:12px!important}
.executive-task-name small,
.relation-badge,.task-status-pill,.task-risk-pill,
.executive-task-progress>b,
.executive-no-task,
.daily-report-kicker,
.daily-report-meta span,
.daily-report-summary article small,
.daily-report-editor-head p,
.daily-report-editor-head>span,
.admin-affair-hero small,
.admin-affair-kpis small,
.admin-affair-kpis em,
.admin-template-grid b,
.admin-template-grid small,
.admin-category-summary span,
.admin-affair-main p,
.admin-affair-main small,
.admin-affair-status small,
.admin-readonly,
.admin-report-overview span,
.person-period-hero small,
.person-period-kpis small,
.person-period-kpis em,
.person-period-person-name p,
.person-period-summary-kpis span{font-size:12px!important}
.person-period-task-head,
.person-period-task-row,
.person-period-task-name b,
.person-period-task-name small,
.person-period-task-name p,
.person-period-change b,
.person-period-change small,
.person-period-current b,
.person-period-date,.person-period-result,
.admin-report-summary article small,
.personal-analysis-identity small,
.personal-analysis-identity p,
.personal-person-selector select,
.personal-self-badge,
.personal-analysis-kpis small,
.personal-analysis-kpis em,
.personal-trend-bars>span,
.personal-trend-column>b,
.personal-trend-column>small,
.personal-insights article b,
.personal-insights article p,
.personal-category-list article b,
.personal-category-list article small,
.personal-category-list article em,
.personal-task-count{font-size:12px!important}
.personal-task-table-head,
.personal-task-row,
.personal-task-name b,
.personal-task-name small,
.personal-task-name p,
.personal-period-progress b,
.personal-period-progress small,
.personal-current-progress b,
.personal-timeline b,
.personal-timeline p,
.personal-timeline small,
.personal-summary-copy p,
.ocr-template-banner p,
.ocr-template-banner em,
.ocr-column-guides span,
.ocr-precision-steps span,
.ocr-template-result small,
.ocr-template-result b,
.ocr-result-kpis small,
.ocr-precision-summary>p,
.precision-draft-head,
.precision-draft-row input,.precision-draft-row select,.precision-draft-row textarea,
.precision-draft-row label>small,.draft-validation>small,
.draft-validation>span,
.precision-draft-row .draft-description{font-size:12px!important}
.media-hero small,
.media-hero p,
.media-date-control input,
.media-daily-kpis small,
.media-daily-kpis em,
.media-account-head p,
.media-account-head em,
.media-account-body small,
.media-account-body b,
.media-account-error,
.media-readonly-note,
.media-filter select,
.media-content-count,
.media-content-head,
.media-content-row,
.media-content-main b,
.media-content-main small,.media-content-owner small,.media-sync-status small,
.media-content-main a,
.media-content-owner b,
.media-interaction b,
.media-interaction small,
.media-row-actions .btn,
.media-note-panel b,
.media-note-panel p,
.media-note-panel em{font-size:12px!important}
.media-loading-panel p,
.brand-media-mini-grid small,
.media-month-hero small,
.media-month-hero p,
.media-month-control input,
.media-month-kpis small,
.media-month-kpis em,
.media-month-growth,
.media-month-platform-head p,
.media-month-platform-main small,
.media-month-platform-main em,
.media-month-platform-grid small,
.media-month-platform-text b,
.media-month-platform-text p,
.media-month-auto-text,
.media-month-manual-card h3,
.media-month-manual-card p,
.media-month-manual-card>small,
.media-month-history b,
.media-month-history span,.media-month-history em,
.media-entry-platform-title p,
.media-dashboard-hero small,
.media-dashboard-hero p,
.media-dashboard-kpis small,
.media-dashboard-kpis em{font-size:12px!important}
.media-growth,
.media-platform-card-head p,
.media-platform-overview>article>small,
.media-platform-overview>article>div:last-child span,
.media-platform-overview>article>div:last-child b,
.media-month-bars b,
.media-month-bars small,
.media-donut-legend span,
.media-interaction-structure article>div,
.media-interaction-structure article small,
.media-analysis-text,
.media-original-summary small,
.media-type-list b,
.media-type-list small,
.media-type-list em,
.media-other-platforms b,
.media-other-platforms small,
.media-other-platforms p,
.media-detail-filter select,
.media-detail-head,
.media-detail-table article,
.media-detail-table article>span:first-child b,
.media-detail-table article>span:first-child small,
.media-detail-title,
.media-import-file small{font-size:12px!important}
.media-import-kpis span,
.media-import-months h3,.media-import-warnings h3,
.media-import-months b,
.media-import-months small,
.media-import-warnings p,
.media-import-rule b,
.media-import-rule p,
.media-platform-topline,
.media-top-card-head small,
.media-top-card-head>em,
.media-top-content-card h3,
.media-top-meta span,
.media-contribution-row small,
.media-svg-chart svg text,
.media-chart-legend,
.media-group-bars em,
.media-group>b,
.media-efficiency-chart span,
.media-efficiency-chart b,
.media-efficiency-chart label,
.media-quality-kpis small,
.media-quality-panel>p,
.media-top-archive-head,
.media-top-archive article>b,
.media-top-archive strong{font-size:12px!important}
.media-top-archive em,
.unified-module-tabs button,
.vehicle-hero small,
.vehicle-hero p,
.vehicle-month-control input,
.vehicle-toolbar>select,
.vehicle-kpis small,
.vehicle-kpis em,
.vehicle-svg-chart text,
.vehicle-svg-chart text.value,
.vehicle-horizontal-bars b,
.vehicle-horizontal-bars span,
.vehicle-horizontal-bars small,
.vehicle-donut small,
.vehicle-donut-legend em,
.vehicle-donut-legend b,
.vehicle-reminder-list b,.vehicle-recent-panel b,
.vehicle-reminder-list small,.vehicle-recent-panel small,
.vehicle-reminder-list em,.vehicle-recent-panel em,
.vehicle-card-head p,
.vehicle-date-badge small,
.vehicle-date-badge b,
.vehicle-card-stats small,
.vehicle-card-stats b,
.vehicle-card-note{font-size:12px!important}
.vehicle-card-actions .btn,
.vehicle-record-summary small,
.vehicle-table-head,
.vehicle-table article,
.vehicle-table article b,
.vehicle-table article small,
.vehicle-table article strong,
.vehicle-dispatch-state,
.vehicle-manager-current small,
.vehicle-manager-current em,
.vehicle-detail-summary small,
.vehicle-detail-records h3,
.vehicle-detail-records p,
.quick-report-head small,
.quick-report-head p,
.quick-report-head>label input,
.quick-report-card-title p,
.quick-report-grid article>label>span,
.quick-report-grid select,
.quick-report-buttons .btn,
.quick-report-modal-meta span,
.quick-report-text,
.annual-control-panel small,
.annual-control-panel p,
.annual-controls label>span{font-size:12px!important}
.annual-controls select,
.annual-kpis small,
.annual-kpis em,
.annual-ranking-list b,
.annual-ranking-list small,
.annual-ranking-list strong,
.annual-analysis-card p,
.annual-people-head,
.annual-people-table article,
.annual-people-table article b,
.annual-people-table article small,
.annual-people-table article strong,
.annual-risk-list b,
.annual-risk-list small,
.annual-risk-list strong,
.annual-risk-list em,
.annual-brand-platform-head p,
.annual-brand-platforms>article>small,
.annual-brand-platform-metrics span,
.annual-brand-platform-metrics b,
.annual-brand-top>b,
.annual-brand-top p,
.annual-brand-top em,
.annual-quarter-grid span,
.annual-quarter-grid small{font-size:12px!important}
.annual-quarter-grid em,
.badge,.task-relation,
.nav-section-label,
.quick-report-card-title p,.quick-report-grid article>label>span,
.task-meta-line,
.task-risk-compact,
.daily-summary-progress,
.person-period-task-name small,.person-period-task-name p,.person-period-change small,
.period-complete-pill,
.task-form-section legend>span,
.task-form-section legend small,
.settings-last-sync,
[class*="annual-"] small,[class*="executive-"] small,[class*="person-period-"] small,[class*="admin-affair-"] small,[class*="vehicle-"] small,[class*="media-"] small,
.personal-task-name small,.personal-task-name p,
.dorm-hero-main small,
.dorm-hero-badges span,
.dorm-kpis small,
.dorm-kpis em,
.dorm-floor-bars article>div span,
.dorm-donut small,
.dorm-gender-chart p,
.dorm-status-grid article small,
.dorm-mini-list b,
.dorm-mini-list small,
.dorm-mini-list em{font-size:12px!important}
.dorm-resident-head,
.dorm-resident-list article,
.dorm-person small,.dorm-resident-list article>div small,
.dorm-status,
.dorm-room-head p,
.dorm-room-head>i,
.dorm-room-progress>div,
.dorm-room-stats small,
.dorm-room-people span,.dorm-room-people em,
.dorm-room-note,
.dorm-room-actions .btn,
.dorm-ledger-head,
.dorm-ledger-list article,
.dorm-ledger-list b,
.dorm-ledger-list small,
.dorm-change,
.dorm-asset-grid small,
.dorm-asset-grid p,
.dorm-meter-summary small,.dorm-vacancy-summary small,
.dorm-meter-head,
.dorm-meter-list article,
.dorm-meter-list small,
.dorm-inspection-list p,
.dorm-inspection-list small,
.dorm-inspection-list em{font-size:12px!important}
.dorm-notice-head small,
.dorm-notice-grid article>p,
.dorm-notice-grid footer,
.dorm-vacancy-grid small,
.dorm-vacancy-grid strong small,
.dorm-vacancy-grid p,
.dorm-vacancy-grid .btn,
.dorm-roomtype-summary small,
.dorm-roomtype-summary b em,
.dorm-room-title-line>em,
.field-help,
.platform-access-badge,
.platform-permission-legend span,
.platform-permission-person small,
.platform-permission-person em,
.platform-permission-item b,
.platform-permission-item small,
.platform-analytics-hero small,
.platform-analytics-tags span,
.platform-summary-cards small,
.platform-summary-cards em,
.platform-summary-cards button,.platform-summary-cards article>i,
.platform-room-types span,.platform-media-bars span,
.platform-mini-kpis small,
.platform-vehicle-rank i{font-size:12px!important}
.platform-vehicle-rank b,
.platform-vehicle-rank em,
.platform-affair-status small,
.platform-insight-list p,
.platform-period-control label small,
.platform-period-note,
.platform-change,
.platform-mini-kpis.clickable small,
.platform-mini-kpis.clickable em,
.platform-panel-actions .btn,
.platform-affair-status.clickable small,
.platform-affair-status.clickable em,
.platform-drilldown-body small,
.platform-drilldown-body em,
.backup-summary-grid small,.backup-count-grid small,
.backup-count-grid em,
.backup-note,
.backup-file-meta small,
.executive-clean-copy small,
.executive-clean-tags span{font-size:12px!important}
.executive-alert-item small,
.executive-alert-item em,
.executive-person-chip small,
.executive-person-chip em,
.executive-person-summary-grid small,
.executive-task-list-simple small,
.executive-update-list small,
.dorm-import-source small,
.dorm-import-counts small,
.dorm-import-issues p,
.dorm-resident-detail small,
.dorm-meter-summary article em,
.dorm-utility-room-head,
.dorm-utility-room-list>article,
.dorm-utility-room-list small,
.dorm-person-fee-head,
.dorm-person-fee-list>article,
.dorm-person-fee-list small,
.dorm-utility-person-head,
.dorm-utility-person-modal article,
.dorm-import-months span,
.dorm-utility-floor-analysis small,
.dorm-utility-floor-analysis span,
.dorm-utility-floor-group>summary small,
.dorm-person-floor-title small{font-size:12px!important}
.dorm-person-room-group>summary small,
.dorm-room-group-kpis small,
.dorm-room-group-kpis span,
.dorm-room-block-head p,
.dorm-room-block-head>span,
.dorm-room-people strong,
.dorm-utility-detail-kpis article.average em,
.dorm-person-room-group>summary>strong em,
.dorm-kpis.minimal em,
.dorm-floor-simple small,
.dorm-resident-meta small,
.vehicle-simple-hero small,
.vehicle-simple-hero p,
.vehicle-simple-kpis small,
.vehicle-simple-kpis em,
.vehicle-expense-bars b,
.vehicle-expense-bars span,
.vehicle-fund-strip small,
.vehicle-simple-reminders span b,
.vehicle-simple-reminders span small,
.vehicle-simple-reminders em,
.vehicle-ledger-list,
.vehicle-ledger-list.header,
.vehicle-ledger-row,
.vehicle-ledger-row.head{font-size:12px!important}
.vehicle-ledger-row span b,
.vehicle-ledger-row span small,
.vehicle-record-summary.compact small,
.vehicle-mini-ledger>div,
.vehicle-card-distribution span,
.vehicle-card-distribution b,
.vehicle-card-distribution small,
.vehicle-import-summary small,
.vehicle-import-summary em,
.vehicle-import-note b,
.vehicle-import-note p,
.vehicle-import-format small,
.vehicle-import-modal-body .vehicle-import-summary small,
.vehicle-import-modal-body .vehicle-import-summary em,
.vehicle-import-modal-body .vehicle-import-note b,
.vehicle-import-modal-body .vehicle-import-note p,
.media-svg-chart svg text.value-label,
.media-summary-hero small,
.media-summary-hero p,
.media-summary-kpis small,
.media-platform-compare-head,
.media-platform-compare-name b,
.media-platform-compare-name small,
.media-compare-metric small,
.media-compare-metric em{font-size:12px!important}
.media-summary-sections p,
.media-summary-final small,
.media-summary-final p,
.media-summary-next ol,
.media-summary-tags i,
.media-summary-tags b,
.media-summary-tags em,
.media-summary-top small,
.media-summary-top b,
.media-summary-top em,
.media-quarter-platform-grid header b,
.media-quarter-platform-grid header small,
.media-quarter-platform-grid article>div small,
.media-quarter-platform-grid article>div b,
.media-quarter-platform-grid footer,
.media-quarter-month-grid small,
.media-quarter-month-grid span,
.reception-modal-head small,.reception-detail-head>div>small,
.reception-detail-grid small,
.budget-chart .media-group-bars em,
.budget-risk-list article small,
.budget-level-grid small,
.budget-table-head,
.budget-rate,
.budget-expense-list small,.budget-expense-list em{font-size:12px!important}
.budget-ledger-list small,
.budget-template-grid small,.budget-template-grid em,
.budget-import-preview p,
.budget-import-preview-kpis small,
.budget-permission-person small,
.budget-permission-options small,
.budget-risk-list article>i,
.budget-level-grid article>footer,
.reception-budget-grid .field small,
.reception-alcohol-settlement label>span,
.reception-budget-status,
.budget-import-preview-rule,
.budget-industrial-hero-copy small,
.budget-industrial-hero-actions label,
.budget-live-dot,
.budget-industrial-section-head small,
.budget-industrial-section-head p,
.industrial-badge,
.budget-industrial-chart .grid text,
.budget-industrial-chart text.value,
.budget-industrial-chart text.month,
.budget-chart-legend,
.budget-industrial-risk-list .rank,
.budget-industrial-risk-list small,
.budget-industrial-donut small{font-size:12px!important}
.budget-industrial-donut-legend article,
.budget-industrial-donut-legend b,
.budget-industrial-donut-legend em,
.budget-target-line span,
.budget-execution-bars .bar-shell strong,
.budget-execution-bars article>b,
.budget-execution-bars article>small,
.budget-industrial-insights small,
.budget-industrial-insights p,
.budget-risk-drill,
.budget-industrial-risk-list strong .budget-risk-drill,
.budget-analysis-hero small,.budget-report-hero small,
.budget-analysis-hero label,
.budget-forecast-kpis small,.budget-report-kpis small,
.budget-forecast-kpis em,.budget-report-kpis em,
.budget-dimension-toolbar label,
.budget-dimension-toolbar>span,
.budget-dimension-list article>i,
.budget-dimension-list article b,
.budget-dimension-list article>strong,
.budget-dimension-list article>strong small,
.budget-analysis-note,
.budget-variance-head small,
.budget-variance-metrics small,
.budget-variance-metrics b{font-size:12px!important}
.budget-variance-note,
.budget-variance-list>article>.btn,
.budget-report-top article i,
.budget-report-top article strong,
.budget-report-risk article small,
.budget-drill-kpis small,
.budget-drill-months article>span,
.budget-drill-months article>em,
.budget-drill-ledger b,
.budget-drill-ledger small,
.budget-drill-ledger strong,
.budget-drill-ledger em,
.budget-v261-hero small,.budget-v261-fill-head>div>small,.budget-v261-reconcile-head>div>small,
.budget-v261-kpis em,
.budget-v261-chart .legend,
.budget-v261-chart svg .grid text,
.budget-v261-chart svg text.actual-label,
.budget-v261-chart svg text.month,
.risk-row>i,
.risk-row span small,
.budget-v261-categories footer,
.budget-v261-current small,
.budget-v261-fill-head .fill-progress span,
.budget-v261-reconcile-head>span,
.budget-v261-fill-list .category{font-size:12px!important}
.budget-v261-fill-list .fill-main small,.budget-v261-fill-list>article>div>small,
.budget-v261-fill-list>article>div>em,
.budget-v261-fill-list .fill-actions .btn,
.budget-v261-subjects .subject-head span,
.budget-v261-subjects .subject-row small,
.budget-v261-reconcile-grid header small,
.budget-v261-reconcile-grid dt,
.budget-v261-reconcile-grid footer,
.budget-v261-reception-check .reception-check-row>span,
.budget-v261-detail .detail-kpis small,.budget-v261-fill-modal .fill-modal-kpis small,
.budget-v261-detail .detail-month-list small,
.budget-v261-detail .detail-month-list b,
.budget-v261-detail .detail-subject-list b,
.budget-v261-detail .detail-subject-list span,.budget-v261-detail .detail-subject-list small,
.budget-v261-detail .detail-note,
.budget-v261-subjects .subject-category>h4 span,
.budget-v261-breakdown .breakdown-head small,
.budget-v261-breakdown .field span,
.budget-period-selector-main small,
.budget-period-controls label>span,
.budget-period-status,
.budget-period-summary small,
.budget-period-selector>p,
.budget-month-readonly,
.budget-v263-fill-head .fill-head-main>small{font-size:12px!important}
.budget-v263-fill-head p,
.budget-v263-fill-head .fill-head-metrics small,
.budget-fill-group-head .group-category,
.budget-fill-group-head small,
.budget-fill-column-head,
.budget-fill-row .fill-project small,
.budget-fill-row .fill-number small,
.budget-fill-row .fill-number em,
.fill-status-pill,
.fill-state-cell small,
.budget-fill-row .fill-actions .btn.compact,
.budget-fill-row .fill-actions .budget-month-readonly,
.budget-v261-fill-modal .fill-modal-kpis small,
.budget-v261-fill-modal .field>span,
.leadership-workspace-banner small,
#budgetMonthlyFillForm .modalhead p,
#budgetMonthlyFillForm .fill-modal-kpis small,
.budget-fill-section-title small,.budget-fill-detail-title small,
.budget-fill-detail-title>span,
.budget-main-amount>small,
.budget-fill-detail-section h4,
.budget-fill-detail-grid .field>span,
.budget-fill-detail-grid input,.budget-fill-detail-grid select,.budget-fill-detail-grid textarea,
.detail-input-wrap em,
.detail-field-hint{font-size:12px!important}
.budget-fill-detail-check small,
.budget-fill-detail-check>em,
.budget-fill-control-grid .field>span,
.budget-detail-modal-foot>span,
.budget-v261-breakdown .breakdown-head b,
.budget-v261-breakdown .field>span,
.budget-fill-reference-grid header b,
.budget-fill-reference-grid p,
#budgetMonthlyFillForm .modalhead small,
#budgetMonthlyFillForm .budget-fill-detail-grid .field>span,
#budgetMonthlyFillForm .budget-fill-control-grid .field>span,
#budgetMonthlyFillForm .budget-main-amount>small,
.welcome-warm-copy>span,
.occupancy-kpis small,
.occupancy-kpis b em,
.occupancy-kpis span,
.dorm-floor-occupancy-bars article>div small,
.dorm-floor-occupancy-bars article>span small,
.dorm-occupancy-status-grid span,
.dorm-type-chips span,
.dorm-occupancy-floor>summary small,
.dorm-room-matrix-card>div span,
.dorm-room-matrix-card small,
.dorm-room-matrix-card em,
.dorm-recent-list small,
.dorm-recent-list>article>span{font-size:12px!important}
.dorm-recent-list time,
.dorm-light-empty,
.dorm-form-section>header span,
.dorm-resident-original-form .field small,
.dorm-system-extra>summary,
.dorm-template-hero>div:first-child>small,
.dorm-template-hero p,
.dorm-template-chip b,
.dorm-template-chip em,
.dorm-template-card p,
.dorm-sync-rule-grid b,
.dorm-sync-rule-grid p,
.dorm-utility-detail-kpis article em,
.dorm-utility-management-note b,
.dorm-utility-management-note p,
.utility-floor-finance>summary>div small,
.utility-floor-finance>summary>span em,
.utility-room-finance>summary>div small,
.utility-room-finance>summary em,
.utility-room-kpis small,
.utility-room-kpis em,
.utility-person-head,
.utility-person-list>article,
.utility-person-list small,
.executive-leader-warm span{font-size:12px!important}
.dorm-floor-occupancy-bars.refined article>div small,
.dorm-floor-occupancy-bars.refined article>span small,
.badge,.task-relation,.dorm-status,
.department-analysis-simple em,
.dorm-tree-floor>summary small,.dorm-tree-room>summary small,
.dorm-person-brief small,
.dorm-room-status-group>summary small,
.dorm-room-floor>summary small,
.dorm-room-compact-row>div:first-child small,
.dorm-room-compact-row>span small,
.drawer-kpis small,
.utility-floor-finance>summary small,.utility-floor-finance>summary em,
.utility-room-finance>summary small,.utility-room-finance>summary em,
.task-extension-pill,
.deadline-extension-summary small,.deadline-review-grid small,
.deadline-extension-summary em,
.deadline-approval-kpis small,
.deadline-approval-kpis em,
.deadline-approval-main small,
.deadline-history-row small,
.deadline-history-row p,
.deadline-history-row>em,
.deadline-request-timeline em,
.deadline-request-timeline small,
.deadline-request-mini-list small{font-size:12px!important}
.deadline-request-mini-list p,
.vehicle-v218-topbar small,
.vehicle-v218-status-cards em,
.vehicle-v218-vehicle-groups button,.vehicle-v218-vehicle-groups span,
.vehicle-v218-expiry-list span small,
.vehicle-v218-expiry-list em,
.vehicle-v218-ledger-head small,
.vehicle-v218-ledger-head>span,
.vehicle-v218-sheet-meta b,
.vehicle-v218-sheet-meta em,
.vehicle-v218-raw-table,
.vehicle-v243-kpis small,
.vehicle-v243-kpis em,
.vehicle-v243-insurance-list span small,
.vehicle-v243-insurance-list em,
.vehicle-v243-compare-chart svg text,
.vehicle-v243-chart-legend span,
.vehicle-v243-compare-kpis small,
.vehicle-v243-compare-kpis em,
.vehicle-v243-filters label,
.vehicle-v243-table th,
.vehicle-v243-table td small,
.vehicle-v243-status,
.vehicle-v243-insurance-cell b,
.vehicle-v243-row-actions .btn{font-size:12px!important}
.vehicle-v243-fuel-list span small,
.vehicle-v243-detail-alert small,
.vehicle-dispatch-kicker,
.vehicle-dispatch-more summary em,
.media-live-hero small,
.media-live-kpis em,
.media-live-platform-head p,
.media-live-platform-head .btn,
.media-live-platform-number small,
.media-live-platform-metrics small,
.media-live-run-note,
.media-live-post-platform,
.media-live-post-main small,
.media-live-post-metric small,
.media-live-post-metric em,
.media-live-top small,
.media-platform-page-head small,
.media-platform-page-head p,
.media-run-status,
.media-run-list small,.media-run-list em,
.media-run-list p,
.media-inline-date-range label,
.media-inline-date-range>span,.media-custom-range-box>span,
.media-custom-range-box>div small,
.media-custom-range-box label{font-size:12px!important}
.media-follower-card small,
.media-follower-card p,
.media-visual-kpis em,
.media-platform-stat-grid small,
.media-quality-meta small,
.media-reconcile-grid small,
.media-period-picker label>span,.media-period-source small,
.media-visual-platform header div>em{font-size:12px!important}


:root{
  --type-xs:12px;
  --type-sm:13px;
  --type-base:14px;
  --type-control:14px;
  --type-nav:14px;
  --type-section:18px;
  --type-page:28px;
  --type-kpi:34px;
  --type-display:48px;
}

/* 基础排版：取消 V2.6.7.6 的 18px 全局放大 */
html{font-size:16px!important}
body{font-size:var(--type-base)!important;line-height:1.55!important;letter-spacing:0!important}
.ui-font-floor{font-size:inherit!important;line-height:inherit!important}
small{font-size:var(--type-xs)!important}
button,input,select,textarea{font-size:var(--type-control)!important}

/* 侧栏 */
.brand small{font-size:12px!important}
.nav-section-label{font-size:11px!important;letter-spacing:.08em!important}
.nav button{min-height:48px!important;padding:8px 13px!important;border-radius:13px!important}
.nav button span{font-size:var(--type-nav)!important;font-weight:650!important}
.nav button i .ui-icon{width:19px!important;height:19px!important}
.side-status{padding:12px 13px!important}
.side-status b{font-size:13px!important}
.side-status small{font-size:11px!important}
.usercard{min-height:66px!important;padding:10px 11px!important}
.avatar{width:42px!important;height:42px!important;font-size:14px!important;border-radius:12px!important}
.usercard b{font-size:14px!important}
.usercard small{font-size:11px!important}

/* 顶栏 */
.topbar{min-height:78px!important;padding-top:10px!important;padding-bottom:10px!important}
.sidebar-toggle{width:42px!important;height:42px!important;min-width:42px!important;border-radius:12px!important}
.sidebar-toggle .ui-icon{width:19px!important;height:19px!important}
.topbar-title h1{font-size:26px!important;line-height:1.2!important}
.topbar-title p{font-size:13px!important;margin-top:4px!important}
.topbar-tool-button,.topbar-more>summary{min-height:42px!important;font-size:14px!important;border-radius:12px!important}
.topbar-more-menu button,.sync{font-size:13px!important;min-height:42px!important}

/* 页面标题层级 */
.pagehead{margin-bottom:22px!important}
.pagehead h2{font-size:var(--type-page)!important;line-height:1.22!important}
.pagehead p{font-size:14px!important;margin-top:7px!important}
.section-head{margin-bottom:15px!important}
.section-head h3,.panel h3{font-size:var(--type-section)!important;line-height:1.35!important}
.section-head h3 .ui-icon{width:17px!important;height:17px!important}
.panel-sub{font-size:13px!important;line-height:1.55!important;margin-top:4px!important;margin-bottom:13px!important}

/* 卡片 / KPI */
.panel{padding:21px!important}
.stats{gap:15px!important}
.stat{padding:19px!important;min-height:126px!important}
.stat label{font-size:13px!important}
.stat strong{font-size:var(--type-kpi)!important;margin-top:14px!important}
.stat small{font-size:12px!important;margin-top:8px!important}
.empty{font-size:14px!important;padding:56px 24px!important}
.empty b{font-size:18px!important}

/* 按钮与图标 */
.btn{min-height:44px!important;padding:0 16px!important;border-radius:12px!important;font-size:14px!important;font-weight:700!important}
.btn .ui-icon{width:18px!important;height:18px!important}
.icon-button{width:42px!important;height:42px!important;min-width:42px!important;border-radius:12px!important}
.icon-button .ui-icon{width:18px!important;height:18px!important}
.text-link{font-size:13px!important;min-height:36px!important}

/* 表单 */
.field{margin-bottom:15px!important}
.field>span,.field label{font-size:13px!important;margin-bottom:6px!important}
.field input,.field select,.field textarea,.toolbar input,.toolbar select,input:not([type="checkbox"]):not([type="radio"]),select,textarea{
  min-height:46px!important;border-radius:12px!important;font-size:14px!important;padding-left:13px!important;padding-right:13px!important;
}
textarea{padding-top:11px!important;padding-bottom:11px!important;line-height:1.6!important}
input::placeholder,textarea::placeholder{font-size:13px!important}
input[type="checkbox"],input[type="radio"]{width:18px!important;height:18px!important}
.toolbar{gap:10px!important;margin-bottom:15px!important}
.toolbar input,.toolbar select{height:46px!important}

/* Tabs / 筛选 */
.view-switch,.analysis-mode-switch,.unified-tabs,.budget-tabs,.vehicle-tabs,.dorm-tabs,.media-tabs,.segmented-control{padding:4px!important;border-radius:13px!important}
.view-switch button,.analysis-mode-switch button,.unified-tabs button,.budget-tabs button,.vehicle-tabs button,.dorm-tabs button,.media-tabs button,.segmented-control button{
  min-height:38px!important;padding:0 13px!important;border-radius:9px!important;font-size:13px!important;
}

/* 表格：恢复高信息密度 */
.tablewrap table,table{font-size:13px!important}
th{font-size:13px!important;min-height:46px!important;padding:12px 13px!important}
td{font-size:13px!important;min-height:48px!important;padding:12px 13px!important;line-height:1.5!important}
td small,th small{font-size:11px!important}
.tablewrap.is-scrollable:after{font-size:11px!important;padding:5px 8px!important}

/* Badge / 状态 */
.badge,.tag,.pill,.status-pill,.task-status-pill,.task-risk-pill,.relation-badge{
  min-height:26px!important;padding:3px 9px!important;font-size:12px!important;font-weight:750!important;
}

/* 弹窗 */
.modalhead{padding:20px 23px 15px!important}
.modalhead h2{font-size:24px!important}
.modalhead p{font-size:13px!important;margin-top:5px!important}
.close{width:40px!important;height:40px!important;border-radius:11px!important}
.modal form>.formgrid,.modal>.formgrid,.modal>.detail,.modal>.ocr-preview,.modal>.daily-report-preview{padding:20px 23px!important}
.formgrid{gap:15px 17px!important}
.modalfoot{padding:14px 23px!important}
.detail,.detail p,.detail span,.detail div{font-size:14px}

/* Toast / banner / loading */
#toast{font-size:14px!important;min-width:320px!important;padding:11px 14px!important}
#toast small{font-size:12px!important}
.toast-icon{width:38px!important;height:38px!important}
.toast-icon .ui-icon{width:19px!important;height:19px!important}
.status-banner{font-size:14px!important;padding:12px 14px!important}
.status-banner small{font-size:12px!important}
.status-icon{width:36px!important;height:36px!important}
.loading-card{font-size:14px!important;padding:21px 24px!important}
.loading-card small{font-size:12px!important}

/* 登录页：大标题保留表现力，操作区恢复合理字号 */
.refined-login-brand>span{font-size:14px!important}
.refined-login-main .eyebrow{font-size:12px!important}
.refined-login-main h1{font-size:clamp(44px,4vw,62px)!important}
.refined-login-main>p{font-size:15px!important;line-height:1.75!important}
.login-feature-grid b{font-size:14px!important}
.login-feature-grid small{font-size:12px!important}
.login-warm-line small{font-size:12px!important}
.login-warm-line b{font-size:14px!important}
.refined-login-foot{font-size:12px!important}
.login-kicker{font-size:12px!important}
.refined-login-card .login-title h2{font-size:28px!important}
.refined-login-card .login-title p{font-size:13px!important}
.refined-login-card .field>span{font-size:13px!important}
.refined-login-card .field input{height:50px!important;font-size:15px!important}
.refined-login-card .login-submit{min-height:50px!important;font-size:15px!important}
.remember-password b{font-size:13px!important}
.remember-password small{font-size:11px!important}
.login-security-note,.refined-login-card .login-note{font-size:12px!important}

/* 宿舍总览 */
.dorm-hero-main.compact h2{font-size:28px!important}
.dorm-hero-main.compact p{font-size:13px!important}
.dorm-hero-summary span{font-size:12px!important;padding:7px 11px!important}
.occupancy-kpis.refined article{padding:18px!important;min-height:112px!important}
.occupancy-kpis.refined small{font-size:12px!important}
.occupancy-kpis.refined b{font-size:34px!important;margin-top:10px!important}
.occupancy-kpis.refined b em{font-size:12px!important}
.occupancy-kpis.refined span{font-size:12px!important;margin-top:7px!important}
.dorm-floor-occupancy-bars.refined article{grid-template-columns:160px minmax(160px,1fr) 96px!important;padding:12px 14px!important}
.dorm-floor-occupancy-bars.refined article>div b{font-size:15px!important}
.dorm-floor-occupancy-bars.refined article>div small{font-size:11px!important}
.dorm-floor-occupancy-bars.refined article>span b{font-size:18px!important}
.dorm-floor-occupancy-bars.refined article>span small{font-size:11px!important}
.dorm-occupancy-status-grid.refined article{min-height:96px!important}
.dorm-occupancy-status-grid.refined article b{font-size:28px!important}
.dorm-occupancy-status-grid.refined article span{font-size:13px!important}
.dorm-type-chips.refined span{min-height:32px!important;padding:6px 10px!important;font-size:12px!important}
.dorm-type-chips.refined span b{font-size:12px!important}
.dorm-room-matrix-card{min-height:112px!important;padding:14px!important}
.dorm-room-matrix-card b{font-size:15px!important}
.dorm-room-matrix-card small,.dorm-room-matrix-card em,.dorm-room-matrix-card span{font-size:12px!important}
.dorm-occupancy-floor summary{min-height:58px!important;padding:12px 14px!important}
.dorm-occupancy-floor summary b{font-size:14px!important}
.dorm-occupancy-floor summary small{font-size:11px!important}
.dorm-recent-list article{font-size:13px!important;min-height:54px!important}

/* 领导 / 首页 / 品牌 / 公务车 / 预算主视觉 */
.executive-clean-copy h2,.welcome-copy h2{font-size:30px!important}
.executive-clean-copy p,.welcome-copy p{font-size:14px!important}
.executive-leader-warm,.welcome-warm-copy{font-size:14px!important}
.executive-leader-warm small,.welcome-warm-copy small{font-size:12px!important}
.media-summary-hero h2,.vehicle-hero h2,.budget-hero h2{font-size:28px!important}
.media-summary-hero p,.vehicle-hero p,.budget-hero p{font-size:14px!important}
.media-summary-kpis article small,.vehicle-kpis article small,.budget-kpis article small,.dorm-kpis article small{font-size:12px!important}
.media-summary-kpis article b,.vehicle-kpis article b,.budget-kpis article b,.dorm-kpis article b{font-size:30px!important}

/* 公务车模块中原本极小的 10/11px 文本，统一抬至 12/13px */
.vehicle-v218-topbar small,.vehicle-v218-ledger-head small,.vehicle-v218-sheet-meta b,.vehicle-v218-sheet-meta em,
.vehicle-v243-kpis small,.vehicle-v243-kpis em,.vehicle-dispatch-kicker{font-size:12px!important}
.vehicle-v218-topbar p,.vehicle-v218-sheet-tabs button,.vehicle-dispatch-kpis article small,.vehicle-dispatch-kpis article em{font-size:13px!important}
.vehicle-v218-topbar h2,.vehicle-v218-ledger-head h2{font-size:18px!important}
.vehicle-v218-raw-table{font-size:12px!important}
.vehicle-v218-raw-table th,.vehicle-v218-raw-table td{font-size:12px!important;padding:6px 8px!important}
.vehicle-v243-kpis b{font-size:28px!important}
.vehicle-dispatch-kpis article b{font-size:30px!important}

/* 品牌模块基础字号 */
[class*="media-"] small{font-size:12px!important}
[class*="media-"] button,[class*="media-"] input,[class*="media-"] select{font-size:14px!important}

/* 预算模块基础字号 */
[class*="budget-"] small{font-size:12px!important}
[class*="budget-"] button,[class*="budget-"] input,[class*="budget-"] select,[class*="budget-"] textarea{font-size:14px!important}

/* 手机端 */
@media(max-width:900px){
  body{font-size:14px!important}
  .topbar-title h1{font-size:22px!important}
  .mobile-bottom-nav,.mobile-more-sheet{font-size:12px!important}
  .mobile-bottom-nav button{font-size:12px!important}
  .pagehead h2{font-size:26px!important}
  .section-head h3,.panel h3{font-size:18px!important}
  .refined-login-card .login-title h2{font-size:26px!important}
  .refined-login-card .field input{height:50px!important;font-size:15px!important}
  .refined-login-card .login-submit{font-size:15px!important}
}
@media(max-width:620px){
  .pagehead h2{font-size:25px!important}
  .topbar-title h1{font-size:21px!important}
  .btn{font-size:14px!important;min-height:42px!important}
  th,td{font-size:12px!important;padding:10px 11px!important}
}
/* ===== LEGACY INTERACTION FOUNDATION ===== */
/* =========================================================
   V2.6.8 系统体验增强层
   品牌原则：华辰蓝为主、橙色仅用于提醒，保持企业后台的克制与可读性。
   ========================================================= */
:root{
  --ui-delay:0ms;
  --ui-text-3:#64798e;
  --text:var(--ui-text,#183b5a);
  --shadow-sm:var(--ui-shadow-sm,0 10px 26px rgba(26,66,106,.07));
  --hc-orange:#ed8b24;
  --hc-orange-soft:#fff5e8;
  --hc-danger:#bd3f49;
  --hc-danger-soft:#fff0f1;
  --hc-success:#147559;
  --hc-success-soft:#eaf8f2;
}

/* 文字与表单对比度 */
body{color:var(--ui-text)}
:where(.panel-sub,.muted,small,em){text-wrap:pretty}
input::placeholder,textarea::placeholder{color:#73869a!important}
:where(button,[role="button"],[role="tab"],[data-nav],[data-action]){-webkit-tap-highlight-color:transparent}
:where(button,[role="button"],[role="tab"],[data-nav],[data-action]):focus-visible{outline-color:rgba(21,103,190,.42)!important}
[aria-invalid="true"]{border-color:var(--hc-danger)!important;box-shadow:0 0 0 4px rgba(189,63,73,.10)!important}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* 顶部实时状态入口 */
.topbar-status-button{position:relative;isolation:isolate}
.topbar-status-button>em{
  position:absolute;top:-5px;right:-5px;display:grid;place-items:center;min-width:22px;height:22px;padding:0 6px;
  border:2px solid #fff;border-radius:999px;background:var(--hc-danger);color:#fff;font-size:11px!important;font-style:normal;font-weight:850;line-height:1;
  box-shadow:0 4px 12px rgba(189,63,73,.25)
}
.topbar-status-button.health-online{color:var(--hc-success)!important;background:var(--hc-success-soft)!important;border-color:#cce8dc!important}
.topbar-status-button.health-warning,.topbar-status-button.health-stale,.topbar-status-button.health-pending{color:#a2600d!important;background:var(--hc-orange-soft)!important;border-color:#f1d6b5!important}
.topbar-status-button.health-danger,.topbar-status-button.health-offline{color:var(--hc-danger)!important;background:var(--hc-danger-soft)!important;border-color:#efcbd0!important}
.platform-access-badge.readonly::after{content:" · 敏感信息已脱敏";font-weight:700}
.topbar-status-button.health-syncing .ui-icon{animation:v2680Spin 1s linear infinite}
@keyframes v2680Spin{to{transform:rotate(360deg)}}
.topbar-more-menu .sync{white-space:normal;line-height:1.5}
.topbar-more-menu .sync.state-online i{background:#1a946d}
.topbar-more-menu .sync.state-warning i,.topbar-more-menu .sync.state-stale i,.topbar-more-menu .sync.state-pending i{background:var(--hc-orange)}
.topbar-more-menu .sync.state-danger i,.topbar-more-menu .sync.state-offline i{background:var(--hc-danger)}

/* 首页管理工具：少而强的三个入口 */
.management-tools-strip{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:16px 0 20px
}
.management-tools-strip>button{
  display:grid;grid-template-columns:48px minmax(0,1fr) 20px;align-items:center;gap:13px;min-width:0;min-height:112px;padding:17px 18px;
  border:1px solid var(--ui-line);border-radius:18px;background:#fff;color:var(--ui-text);text-align:left;box-shadow:var(--ui-shadow-xs);
  transition:transform .18s var(--ui-ease),border-color .18s ease,box-shadow .18s ease,background .18s ease
}
.management-tools-strip>button:hover{transform:translateY(-2px);border-color:#bcd6ec;background:#fbfdff;box-shadow:var(--ui-shadow-sm)}
.management-tools-strip>button>.ui-icon{width:18px;color:#8aa0b4}
.management-tools-strip .tool-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:#eaf4ff;color:#1f72c8}
.management-tools-strip .tool-icon.reminder{background:var(--hc-orange-soft);color:#c67113}
.management-tools-strip .tool-icon.quality{background:#edf8f5;color:#147f62}
.management-tools-strip .tool-icon .ui-icon{width:24px;height:24px}
.management-tools-strip div{min-width:0}
.management-tools-strip small,.management-tools-strip b,.management-tools-strip em{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.management-tools-strip small{color:#71879a;font-size:12px!important;font-weight:750}
.management-tools-strip b{margin-top:4px;color:#234966;font-size:18px!important;line-height:1.35}
.management-tools-strip em{margin-top:5px;color:#7b8fa1;font-size:12px!important;font-style:normal}

/* 统一提醒 / 数据质量 / 系统健康 */
.management-center-head>div>small{display:block;margin-bottom:5px;color:#2d77bb;font-size:11px!important;font-weight:850;letter-spacing:.12em}
.management-center-head h2{display:flex;align-items:center;gap:10px}
.management-center-head h2 .ui-icon{width:25px;height:25px;color:#1f72c8}
.management-center-body{flex:1;min-height:0;overflow:auto;padding:20px 24px 24px;background:#f7f9fc}
.management-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin-bottom:18px}
.management-summary article{min-width:0;padding:15px 16px;border:1px solid #dce7ef;border-radius:15px;background:#fff}
.management-summary small,.management-summary b,.management-summary em{display:block}
.management-summary small{color:#73879a;font-size:12px!important;font-weight:750}
.management-summary b{margin-top:6px;color:#244b68;font-size:28px!important;line-height:1}
.management-summary em{margin-top:7px;overflow:hidden;color:#7d8f9f;font-size:11px!important;font-style:normal;text-overflow:ellipsis;white-space:nowrap}
.management-summary article.danger{border-color:#efd2d6;background:#fff8f8}.management-summary article.danger b{color:var(--hc-danger)}
.management-summary article.warning{border-color:#f0ddc2;background:#fffbf4}.management-summary article.warning b{color:#b46810}
.reminder-group,.quality-group{margin-top:12px;border:1px solid #dfe8ef;border-radius:15px;background:#fff;overflow:hidden}
.reminder-group>header,.quality-group>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid #e8eef3;background:#fbfdff}
.reminder-group>header b,.quality-group>header b{color:#31536d;font-size:14px}.reminder-group>header span,.quality-group>header span{color:#74899b;font-size:12px}
.reminder-row{display:grid;grid-template-columns:42px minmax(0,1fr) 18px;align-items:center;gap:11px;width:100%;min-height:70px;padding:11px 14px;border:0;border-top:1px solid #edf1f5;background:#fff;color:var(--ui-text);text-align:left}
.reminder-row:first-child{border-top:0}.reminder-row:hover{background:#f5faff}.reminder-row:focus-visible{position:relative;z-index:1}
.reminder-row>span{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#edf5ff;color:#2573c2}
.reminder-row.danger>span{background:var(--hc-danger-soft);color:var(--hc-danger)}.reminder-row.warning>span{background:var(--hc-orange-soft);color:#b9680f}
.reminder-row>span .ui-icon{width:20px;height:20px}.reminder-row>.ui-icon{width:17px;color:#8da1b3}
.reminder-row b,.reminder-row small{display:block}.reminder-row b{color:#2d4e68;font-size:13px}.reminder-row small{margin-top:4px;color:#75899a;font-size:12px;line-height:1.55}
.quality-group>article{display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:10px;padding:12px 14px;border-top:1px solid #edf1f5}
.quality-group>header+article{border-top:0}.quality-group>article>span{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--hc-orange-soft);color:#b9680f}
.quality-group>article.danger>span{background:var(--hc-danger-soft);color:var(--hc-danger)}
.quality-group>article b,.quality-group>article small{display:block}.quality-group>article b{color:#2d4e68;font-size:13px}.quality-group>article small{margin-top:4px;color:#75899a;font-size:12px;line-height:1.55}
.health-overview{display:flex;align-items:center;gap:13px;margin-bottom:15px;padding:16px;border:1px solid #cfe6dc;border-radius:16px;background:var(--hc-success-soft)}
.health-overview>span{display:grid;place-items:center;width:46px;height:46px;flex:none;border-radius:14px;background:#fff;color:var(--hc-success)}
.health-overview.warning{border-color:#efd9b9;background:var(--hc-orange-soft)}.health-overview.warning>span{color:#b9680f}
.health-overview.danger{border-color:#eccbd0;background:var(--hc-danger-soft)}.health-overview.danger>span{color:var(--hc-danger)}
.health-overview b,.health-overview small{display:block}.health-overview b{color:#244b66;font-size:16px}.health-overview small{margin-top:4px;color:#687f91;font-size:12px}
.health-check-list{display:grid;gap:9px}
.health-check-list article{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:11px;padding:12px 13px;border:1px solid #dfe8ef;border-radius:14px;background:#fff}
.health-check-list article>span{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--hc-success-soft);color:var(--hc-success)}
.health-check-list article.warning>span{background:var(--hc-orange-soft);color:#b9680f}.health-check-list article.danger>span{background:var(--hc-danger-soft);color:var(--hc-danger)}
.health-check-list b,.health-check-list small{display:block}.health-check-list b{color:#2d4e68;font-size:13px}.health-check-list small{margin-top:4px;color:#75899a;font-size:12px;line-height:1.55;overflow-wrap:anywhere}
.health-check-list em{padding:5px 9px;border-radius:999px;background:#edf8f4;color:var(--hc-success);font-size:11px!important;font-style:normal;font-weight:800;white-space:nowrap}
.health-check-list .warning em{background:var(--hc-orange-soft);color:#a75f0d}.health-check-list .danger em{background:var(--hc-danger-soft);color:var(--hc-danger)}
.system-health-settings{margin-bottom:20px!important}
.system-health-settings-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px}
.system-health-settings-grid article{display:grid;grid-template-columns:38px minmax(0,1fr);align-items:start;gap:10px;min-width:0;padding:13px;border:1px solid #dfe8ef;border-radius:14px;background:#fbfdff}
.system-health-settings-grid article>span{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--hc-success-soft);color:var(--hc-success)}
.system-health-settings-grid article.warning>span{background:var(--hc-orange-soft);color:#b9680f}.system-health-settings-grid article.danger>span{background:var(--hc-danger-soft);color:var(--hc-danger)}
.system-health-settings-grid b,.system-health-settings-grid small{display:block}.system-health-settings-grid b{color:#2c4d67;font-size:13px}.system-health-settings-grid small{margin-top:4px;color:#718699;font-size:11px;line-height:1.55;overflow-wrap:anywhere}

/* 状态提示在小屏不挤压文字 */
.status-banner>div{min-width:0}.status-banner small{display:block;overflow-wrap:anywhere}.status-banner .btn{flex:none}
.side-status.state-danger,.side-status.state-offline{border-color:rgba(255,141,151,.25)!important}.side-status.state-warning,.side-status.state-stale{border-color:rgba(255,197,103,.22)!important}

/* 常见数据表在 1366px 设备上减少无意义的横滚 */
@media(min-width:901px) and (max-width:1500px){
  .tablewrap table{min-width:max(960px,100%)!important}
}

/* 821–900px 原版侧栏已隐藏、手机导航尚未出现，这里补齐导航桥接。 */
@media(min-width:821px) and (max-width:900px){
  :root{--mobile-bottom-nav-height:74px}
  body{padding-bottom:calc(var(--mobile-bottom-nav-height) + env(safe-area-inset-bottom))}
  body.mobile-menu-open{overflow:hidden}
  .mobile-bottom-nav{position:fixed;z-index:80;left:0;right:0;bottom:0;display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr));height:calc(var(--mobile-bottom-nav-height) + env(safe-area-inset-bottom));padding:6px 10px env(safe-area-inset-bottom);border-top:1px solid #cbd9e5;background:rgba(255,255,255,.96);box-shadow:0 -10px 30px rgba(23,65,108,.12);backdrop-filter:blur(20px)}
  .mobile-bottom-nav button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;min-height:58px;border:0;border-radius:12px;background:transparent;color:#677d91;font-size:12px;line-height:1}
  .mobile-bottom-nav button i{display:grid;place-items:center;width:29px;height:29px;border-radius:9px}.mobile-bottom-nav button .ui-icon{width:20px;height:20px}.mobile-bottom-nav button.active{color:#176ed1;font-weight:800}.mobile-bottom-nav button.active i{background:#e8f3ff}.mobile-bottom-nav button.active:after{content:"";position:absolute;top:-6px;width:30px;height:3px;border-radius:0 0 4px 4px;background:#2b7edc}
  .mobile-nav-overlay{position:fixed;z-index:89;inset:0;display:block!important;visibility:hidden;background:rgba(4,19,39,.45);opacity:0;backdrop-filter:blur(4px);transition:.22s ease}.mobile-nav-overlay.open{visibility:visible;opacity:1}
  .mobile-more-sheet{position:fixed;z-index:90;left:0;right:0;bottom:0;display:block!important;max-height:min(78dvh,700px);overflow:auto;padding:17px 18px calc(20px + env(safe-area-inset-bottom));border-radius:24px 24px 0 0;background:#fff;box-shadow:0 -24px 70px rgba(4,31,61,.25);transform:translateY(105%);transition:transform .32s cubic-bezier(.2,.8,.2,1)}
  .mobile-more-sheet.open{transform:translateY(0)}
  .mobile-more-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:14px;border-bottom:1px solid #e7edf3}.mobile-more-user{display:flex;align-items:center;gap:10px;min-width:0}.mobile-more-user>div{min-width:0}.mobile-more-user b,.mobile-more-user small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-more-user small{margin-top:4px;color:#71869a}
  .mobile-more-title{margin:16px 2px 10px;color:#657b90;font-size:12px;font-weight:800;letter-spacing:.06em}.mobile-more-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.mobile-more-grid button{display:grid;grid-template-columns:40px minmax(0,1fr) 18px;align-items:center;gap:10px;min-height:64px;padding:10px 12px;border:1px solid #dbe6ef;border-radius:14px;background:#f8fbff;color:#36546e;text-align:left}.mobile-more-grid button>i{display:grid;place-items:center;width:40px;height:40px;border-radius:11px;background:#e8f3ff;color:#176ed1}.mobile-more-grid button>span{font-size:13px;font-weight:750}.mobile-more-grid button>em{color:#8298aa}.mobile-more-grid button.active{border-color:#8dbdea;background:#edf6ff;color:#176ed1}.mobile-more-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:15px}
}

@media(max-width:1180px){
  .management-tools-strip{grid-template-columns:1fr}
  .management-tools-strip>button{min-height:90px}
  .system-health-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:900px){
  .topbar-status-button{width:44px!important;height:44px!important;min-width:44px!important}
  .management-center-body{padding:16px}
  .management-summary{grid-template-columns:1fr 1fr}
  .management-summary article:last-child{grid-column:1/-1}
  .modalfoot:has(#copyDiagnostics),.modalfoot:has(#copyQualityReport){display:grid!important;grid-template-columns:1fr 1fr}
  .modalfoot:has(#copyDiagnostics) .btn.primary,.modalfoot:has(#copyQualityReport) .btn.primary{grid-column:1/-1}
}

@media(max-width:620px){
  .mobile-bottom-nav{grid-template-columns:repeat(5,minmax(0,1fr))!important;overflow:visible!important;justify-content:stretch!important}
  .mobile-bottom-nav button{min-width:0!important;padding-left:2px!important;padding-right:2px!important}
  .mobile-bottom-nav button span{font-size:10px!important}
  .management-tools-strip{gap:10px;margin-top:12px}
  .management-tools-strip>button{grid-template-columns:44px minmax(0,1fr) 16px;min-height:84px;padding:13px 14px}
  .management-tools-strip .tool-icon{width:44px;height:44px}.management-tools-strip b{font-size:15px!important}.management-tools-strip em{font-size:11px!important}
  .management-center-body{padding:12px}
  .management-summary{grid-template-columns:1fr;gap:8px}.management-summary article:last-child{grid-column:auto}.management-summary article{padding:12px 13px}.management-summary b{font-size:24px!important}
  .reminder-row{grid-template-columns:38px minmax(0,1fr) 16px;padding:10px 11px}.reminder-row>span{width:38px;height:38px}.reminder-row small{font-size:11px}
  .health-check-list article{grid-template-columns:36px minmax(0,1fr);align-items:start}.health-check-list article>span{width:36px;height:36px}.health-check-list em{grid-column:2;justify-self:start}
  .system-health-settings-grid{grid-template-columns:1fr}
  .status-banner{align-items:flex-start!important;flex-wrap:wrap}.status-banner .btn{width:100%}
  .modalfoot:has(#copyDiagnostics),.modalfoot:has(#copyQualityReport){grid-template-columns:1fr!important}.modalfoot:has(#copyDiagnostics) .btn.primary,.modalfoot:has(#copyQualityReport) .btn.primary{grid-column:auto}
}

@media(prefers-reduced-motion:reduce){.topbar-status-button.health-syncing .ui-icon{animation:none!important}}

/* ===== LEGACY LAYOUT FOUNDATION ===== */
/* =========================================================
   V2.6.9 显示与响应式收口层
   目标：统一字号密度；修复登录页裁切；修复宿舍平台中屏拥挤与手机横向裁切。
   ========================================================= */

:root{
  --type-xs:11px;
  --type-sm:12px;
  --type-base:13px;
  --type-control:13px;
  --type-nav:13px;
  --type-section:16px;
  --type-page:24px;
  --type-kpi:29px;
  --type-display:44px;
}

html{font-size:16px!important}
body{font-size:13px!important;line-height:1.5!important}
small{font-size:11px!important}
button,input,select,textarea{font-size:13px!important}

/* 根滚动容器必须保持可滚动；旧版 overflow-x:clip 会让部分浏览器连纵向滚动也失效。 */
html{overflow-x:hidden!important;overflow-y:auto!important}
body:not(.modal-open):not(.mobile-menu-open){overflow:visible!important}
#app,.shell,.main,.content,.page-transition{overflow-y:visible!important}
html:has(body.modal-open),html:has(body.mobile-menu-open){overflow:hidden!important}

/* 系统级信息密度 */
.topbar{min-height:68px!important;padding-top:9px!important;padding-bottom:9px!important}
.topbar-title h1,.topbar h1{font-size:22px!important}
.topbar-title p,.topbar p{font-size:12px!important;margin-top:3px!important}
.sidebar-toggle{width:38px!important;height:38px!important;min-width:38px!important;border-radius:11px!important}
.topbar-tool-button,.topbar-more>summary{min-height:38px!important;font-size:13px!important}
.nav button{min-height:42px!important;padding:7px 12px!important;border-radius:12px!important}
.nav button span{font-size:13px!important}
.nav button i .ui-icon{width:18px!important;height:18px!important}
.brand{min-height:106px!important;padding-top:20px!important;padding-bottom:18px!important}
.brand img{width:198px!important}
.side-status{padding:10px 11px!important;border-radius:13px!important}
.usercard{min-height:60px!important;padding:8px 10px!important;border-radius:13px!important}
.avatar{width:38px!important;height:38px!important;border-radius:11px!important;font-size:13px!important}

.content{padding-top:24px!important;padding-bottom:48px!important}
.pagehead{margin-bottom:16px!important}
.pagehead h2{font-size:24px!important}
.pagehead p{font-size:13px!important;margin-top:5px!important}
.section-head{margin-bottom:12px!important}
.section-head h3,.panel h3{font-size:16px!important}
.panel-sub{font-size:12px!important;margin-top:3px!important;margin-bottom:10px!important}
.panel{padding:17px!important;border-radius:16px!important}
.stats{gap:12px!important}
.stat{min-height:106px!important;padding:15px!important}
.stat label{font-size:12px!important}
.stat strong{font-size:29px!important;margin-top:10px!important}
.stat small{font-size:11px!important;margin-top:6px!important}

.btn{min-height:40px!important;padding:0 14px!important;border-radius:11px!important;font-size:13px!important}
.icon-button{width:38px!important;height:38px!important;min-width:38px!important;border-radius:11px!important}
.field{margin-bottom:12px!important}
.field>span,.field label{font-size:12px!important;margin-bottom:5px!important}
.field input,.field select,.field textarea,.toolbar input,.toolbar select,
input:not([type="checkbox"]):not([type="radio"]),select,textarea{
  min-height:42px!important;border-radius:10px!important;font-size:13px!important;
}
.toolbar{gap:8px!important;margin-bottom:12px!important}
.toolbar input,.toolbar select{height:42px!important}
.view-switch button,.analysis-mode-switch button,.unified-tabs button,.budget-tabs button,
.vehicle-tabs button,.dorm-tabs button,.media-tabs button,.segmented-control button,
.unified-module-tabs button{min-height:34px!important;padding:0 11px!important;font-size:12px!important}
.tablewrap table,table{font-size:12px!important}
th{font-size:12px!important;min-height:40px!important;padding:10px 11px!important}
td{font-size:12px!important;min-height:42px!important;padding:10px 11px!important}
.badge,.tag,.pill,.status-pill,.task-status-pill,.task-risk-pill,.relation-badge{
  min-height:24px!important;padding:2px 8px!important;font-size:11px!important;
}

/* 二级页 / 弹窗统一滚动模型：固定标题与操作区，正文单独滚动。 */
body.modal-open{overflow:hidden!important;overscroll-behavior:none!important}
.backdrop{
  box-sizing:border-box!important;overflow:hidden!important;padding:18px!important;
  overscroll-behavior:contain!important;
}
.modal{
  display:flex!important;flex-direction:column!important;
  width:min(720px,calc(100vw - 36px))!important;max-height:calc(100dvh - 36px)!important;
  padding:0!important;border-radius:20px!important;overflow:hidden!important;
}
.modal.wide{width:min(1080px,calc(100vw - 36px))!important}
.modal.drawer{width:min(920px,94vw)!important;height:100dvh!important;max-height:100dvh!important;border-radius:20px 0 0 20px!important}
.modal>.modal-layout-root,.modal>form.modal-layout-root,
.modal.modal-layout-root{
  display:flex!important;flex:1 1 auto!important;flex-direction:column!important;
  width:100%!important;min-width:0!important;min-height:0!important;max-height:100%!important;
  overflow:hidden!important;
}
.modal-layout-root>.modalhead{position:relative!important;top:auto!important;z-index:3!important;flex:none!important}
.modal-layout-root>.modalfoot{position:relative!important;bottom:auto!important;z-index:3!important;flex:none!important}
.modal-scroll-body{
  flex:1 1 auto!important;min-width:0!important;min-height:0!important;
  overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior:contain!important;
  padding:16px 20px!important;box-sizing:border-box!important;scrollbar-gutter:stable!important;
  touch-action:pan-y!important;-webkit-overflow-scrolling:touch!important;
}
.modal-scroll-body.is-self-padded{padding:0!important}
.modal-scroll-body>.formgrid,.modal-scroll-body>.detail,.modal-scroll-body>.ocr-preview,.modal-scroll-body>.daily-report-preview{
  overflow:visible!important;padding:0!important;
}
.modal-scroll-body>.task-form-sections,.modal-scroll-body>.dorm-original-form-body,
.modal-scroll-body>.vehicle-import-modal-body,.modal-scroll-body>.reception-form-body,
.modal-scroll-body>.budget-v261-fill-modal,.modal-scroll-body>.quick-report-modal-body,
.modal-scroll-body>.management-center-body,.modal-scroll-body>.admin-report-body{
  min-height:auto!important;max-height:none!important;overflow:visible!important;
}
.modalhead{padding:16px 20px 13px!important;margin:0!important;gap:12px!important}
.modalhead h2{font-size:20px!important;line-height:1.28!important}
.modalhead p{font-size:12px!important;line-height:1.5!important;margin-top:4px!important}
.close{width:38px!important;height:38px!important;min-width:38px!important;border-radius:11px!important}
.modalfoot{margin:0!important;padding:11px 20px!important;gap:8px!important;flex-wrap:wrap!important}

@media(max-width:620px){
  .backdrop{place-items:end center!important;padding:6px!important}
  .modal,.modal.wide{
    width:100%!important;max-width:100%!important;max-height:calc(100dvh - 12px)!important;
    border-radius:18px 18px 12px 12px!important;
  }
  .modal.drawer{width:100%!important;height:100dvh!important;max-height:100dvh!important;border-radius:0!important}
  .modalhead{padding:13px 13px 10px!important}
  .modalhead h2{font-size:18px!important}
  .modalhead p{font-size:11px!important}
  .close{width:36px!important;height:36px!important;min-width:36px!important}
  .modal-scroll-body{padding:12px!important;scrollbar-gutter:auto!important}
  .modal-scroll-body.is-self-padded{padding:0!important}
  .modalfoot{display:flex!important;flex-flow:row wrap!important;padding:9px 12px calc(9px + env(safe-area-inset-bottom))!important}
  .modalfoot>.btn{flex:1 1 0!important;min-width:96px!important;width:auto!important}
  .modalfoot>.btn.primary:last-child{grid-column:auto!important}
}

/* 901–1100px：侧栏自动进入图标模式，释放内容宽度。 */
@media(min-width:901px) and (max-width:1100px){
  .shell,.shell.sidebar-collapsed{grid-template-columns:88px minmax(0,1fr)!important}
  .sidebar-toggle{display:none!important}
  .brand{min-height:94px!important;padding:17px 22px 17px 9px!important;box-sizing:border-box!important;align-items:flex-start!important;overflow:hidden!important}
  .brand img{width:198px!important;max-width:none!important;max-height:none!important;object-fit:contain!important;object-position:left!important;clip-path:inset(0 74% 0 0)!important;transform:none!important}
  .brand small,.nav-section-label,.nav button span,.nav button em,.side-status div,.usercard>div,.usercard .icon-button{display:none!important}
  .nav{padding:12px 9px!important}
  .nav-section{margin-bottom:6px!important}
  .nav button{grid-template-columns:1fr!important;justify-items:center!important;min-height:44px!important;padding:7px!important}
  .nav button i{width:100%!important}
  .side-status{display:grid!important;place-items:center!important;margin:6px 9px 9px!important;padding:8px!important}
  .userbox{padding:9px!important}
  .usercard{justify-content:center!important;padding:8px!important}
  .avatar{margin:0!important}
  .topbar{padding-left:20px!important;padding-right:20px!important}
  .content{padding:20px 20px 46px!important}
  .occupancy-kpis.refined{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .occupancy-kpis.refined article.status-summary{grid-column:span 2!important}
}

/* 登录页：桌面减少纵向占用，杜绝 1366×768 下的页面溢出。 */
body.login-screen{padding-bottom:0!important;overflow-x:hidden!important;overflow-y:auto!important;background:#edf3f8!important}
body.login-screen #app{min-height:100dvh!important;height:auto!important;overflow:visible!important}
.refined-login{
  min-height:100dvh!important;height:auto!important;
  grid-template-columns:minmax(0,1.12fr) minmax(450px,.88fr)!important;
}
.refined-login-hero{min-height:100dvh!important;padding:32px clamp(34px,4vw,62px) 82px!important}
.refined-login-brand{gap:18px!important}
.refined-login-brand .hero-logo{width:238px!important}
.refined-login-brand>span{padding-left:18px!important;font-size:12px!important;white-space:nowrap}
.refined-login-main{max-width:780px!important;margin-top:clamp(44px,7vh,78px)!important}
.refined-login-main .eyebrow{font-size:11px!important}
.refined-login-main h1{margin:16px 0 14px!important;font-size:clamp(44px,4vw,56px)!important;line-height:1.1!important}
.refined-login-main>p{font-size:13px!important;line-height:1.7!important}
.login-feature-grid{gap:10px!important;margin-top:22px!important}
.login-feature-grid article{gap:10px!important;padding:13px!important;border-radius:14px!important}
.login-feature-grid article>span{width:38px!important;height:38px!important;border-radius:11px!important}
.login-feature-grid article .ui-icon{width:19px!important;height:19px!important}
.login-feature-grid b{font-size:13px!important}
.login-feature-grid small{font-size:11px!important;margin-top:3px!important;line-height:1.45!important}
.login-warm-line{gap:10px!important;margin-top:14px!important;padding:12px 14px!important;border-radius:14px!important}
.login-warm-line>span{width:36px!important;height:36px!important;border-radius:11px!important}
.login-warm-line small{font-size:10px!important}
.login-warm-line b{font-size:12px!important;margin-top:2px!important;line-height:1.5!important}
.refined-login-foot{bottom:22px!important;font-size:10px!important}
.refined-login-side{min-height:100dvh!important;padding:28px!important}
.refined-login-card{width:min(500px,100%)!important;padding:26px!important;border-radius:24px!important;animation:none!important}
.refined-login-card:hover{transform:none!important;box-shadow:0 22px 64px rgba(22,61,105,.13)!important}
.login-kicker{margin-bottom:11px!important;font-size:11px!important}
.refined-login-card .login-title{gap:12px!important;margin-bottom:16px!important}
.refined-login-card .login-mark{width:48px!important;height:48px!important;border-radius:14px!important}
.refined-login-card .login-title h2{font-size:24px!important}
.refined-login-card .login-title p{font-size:12px!important;margin-top:4px!important}
.login-cloud-status{margin-bottom:15px!important;padding:10px 12px!important}
.refined-login-card .field{margin-bottom:12px!important}
.refined-login-card .field input{height:46px!important;min-height:46px!important;padding-left:44px!important;font-size:14px!important;border-radius:12px!important}
.refined-login-card .input-with-icon>.ui-icon{left:14px!important;width:18px!important;height:18px!important}
.remember-password{margin:0 0 13px!important;padding:9px 11px!important;border-radius:11px!important}
.remember-password input{width:18px!important;height:18px!important}
.remember-password b{font-size:12px!important}
.remember-password small{font-size:10px!important}
.refined-login-card .login-submit{min-height:46px!important;font-size:13px!important;border-radius:12px!important}
.login-security-note{margin-top:12px!important;padding:9px 11px!important;border-radius:10px!important;font-size:11px!important}
.login-security-note .ui-icon{width:17px!important;height:17px!important;margin-top:1px!important}
.refined-login-card .login-note{margin-top:10px!important;font-size:10px!important}

/* 登录页在中屏直接切换为稳定的单栏结构，不保留被压缩的半幅主视觉。 */
@media(max-width:1100px){
  .refined-login,.login-page{display:block!important;min-height:100dvh!important;height:auto!important;background:#eef4fa!important}
  .refined-login .hero,.login-page .hero{display:none!important}
  .refined-login-side,.login-side{
    display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:flex-start!important;
    width:100%!important;min-height:100dvh!important;height:auto!important;box-sizing:border-box!important;overflow:visible!important;
    padding:calc(22px + env(safe-area-inset-top)) 18px calc(32px + env(safe-area-inset-bottom))!important;
    background:radial-gradient(circle at 88% 4%,rgba(82,177,255,.18),transparent 210px),linear-gradient(180deg,#07366d 0,#0a4b91 126px,#eef4fa 126px,#f5f8fc 100%)!important;
  }
  .mobile-login-logo{display:block!important;flex:none!important;width:min(214px,58vw)!important;height:auto!important;margin:2px auto 16px!important;filter:drop-shadow(0 8px 18px rgba(0,0,0,.16))}
  .refined-login-card,.login-card{flex:none!important;width:min(100%,460px)!important;max-width:460px!important;margin:0 auto!important;padding:22px 20px!important;border-radius:21px!important;box-sizing:border-box!important}

  /* 宿舍费用页的标题与筛选区分行，避免标题被三个控件压成竖排。 */
  .utility-sticky-head{display:grid!important;grid-template-columns:minmax(0,1fr)!important;align-items:stretch!important;gap:10px!important}
  .utility-sticky-head>div:first-child{width:100%!important;min-width:0!important}
  .dorm-utility-actions{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(130px,.8fr)!important;width:100%!important;gap:8px!important}
  .dorm-utility-actions>*{min-width:0!important;width:100%!important;max-width:none!important;box-sizing:border-box!important}
  .dorm-utility-actions .page-more-actions>summary{width:100%!important;box-sizing:border-box!important}
}

@media(max-width:620px){
  body{font-size:13px!important}
  .topbar-title h1,.topbar h1{font-size:18px!important}
  .topbar-title h1:after,.topbar h1:after{content:none!important}
  .content{padding-top:12px!important;padding-left:10px!important;padding-right:10px!important}
  .panel{padding:14px!important;border-radius:14px!important}
  .btn{min-height:38px!important;font-size:12px!important}
  .pagehead .actions:has(.daily-date-actions),.pagehead .actions:has(.admin-affair-date-actions){display:block!important;width:100%!important;min-width:0!important}
  .daily-date-actions,.admin-affair-date-actions{width:100%!important;max-width:none!important}
  .daily-date-actions .daily-date-picker,.admin-affair-date-actions .daily-date-picker{display:grid!important;grid-template-columns:auto minmax(0,1fr)!important;overflow:hidden!important}
  .daily-date-actions .daily-date-picker input,.admin-affair-date-actions .daily-date-picker input{width:100%!important;min-width:0!important;padding-left:4px!important;padding-right:2px!important;box-sizing:border-box!important}
  .dorm-utility-actions{grid-template-columns:1fr 1fr!important}
  .dorm-utility-actions .page-more-actions{grid-column:1/-1!important}
  .refined-login-side,.login-side{padding:calc(14px + env(safe-area-inset-top)) 12px calc(24px + env(safe-area-inset-bottom))!important;background:radial-gradient(circle at 88% 4%,rgba(82,177,255,.17),transparent 170px),linear-gradient(180deg,#07366d 0,#0a4b91 104px,#eef4fa 104px,#f5f8fc 100%)!important}
  .mobile-login-logo{width:min(184px,54vw)!important;margin:0 auto 12px!important}
  .refined-login-card,.login-card{width:min(100%,430px)!important;padding:17px 16px 16px!important;border-radius:18px!important}
  .login-kicker{margin-bottom:8px!important;font-size:10px!important}
  .refined-login-card .login-title{gap:9px!important;margin-bottom:12px!important}
  .refined-login-card .login-mark{width:40px!important;height:40px!important;border-radius:11px!important}
  .refined-login-card .login-title h2{font-size:20px!important}
  .refined-login-card .login-title p{font-size:11px!important}
  .login-cloud-status{gap:8px!important;margin-bottom:11px!important;padding:8px 9px!important;font-size:11px!important}
  .login-cloud-status .status-icon{width:30px!important;height:30px!important}
  .login-cloud-status small{font-size:9px!important}
  .refined-login-card .field{margin-bottom:9px!important}
  .refined-login-card .field>span{font-size:11px!important;margin-bottom:4px!important}
  .refined-login-card .field input{height:44px!important;min-height:44px!important;font-size:16px!important}
  .remember-password{margin-bottom:10px!important;padding:7px 9px!important}
  .refined-login-card .login-submit{min-height:44px!important;font-size:13px!important}
  .login-security-note{margin-top:9px!important;padding:7px 9px!important;font-size:10px!important}
  .refined-login-card .login-note{margin-top:8px!important;font-size:9px!important}
}

@media(max-width:620px) and (max-height:720px){
  .login-kicker,.login-security-note,.refined-login-card .login-note{display:none!important}
  .mobile-login-logo{width:min(160px,48vw)!important;margin-bottom:8px!important}
  .refined-login-card,.login-card{padding-top:14px!important;padding-bottom:14px!important}
}

/* 宿舍平台：取消三层重复标题并压缩首屏。 */
.page-transition:has(> .dorm-hero-compact)>.pagehead{align-items:center!important;margin-bottom:10px!important}
.page-transition:has(> .dorm-hero-compact)>.pagehead>div:first-child h2{display:none!important}
.page-transition:has(> .dorm-hero-compact)>.pagehead>div:first-child{min-width:0!important}
.page-transition:has(> .dorm-hero-compact)>.pagehead p{margin:0!important;font-size:12px!important}
.page-transition:has(> .dorm-hero-compact)>.pagehead .actions{flex:none!important;align-items:center!important}

.dorm-hero-compact{min-width:0!important;gap:14px!important;margin-bottom:10px!important;padding:14px 16px!important;border-radius:16px!important}
.dorm-hero-main.compact{min-width:0!important;gap:11px!important}
.dorm-hero-main.compact>span{width:44px!important;height:44px!important;border-radius:12px!important}
.dorm-hero-main.compact>span .ui-icon{width:22px!important;height:22px!important}
.dorm-hero-main.compact>div{min-width:0!important}
.dorm-hero-main.compact h2{font-size:21px!important;line-height:1.2!important;white-space:nowrap!important}
.dorm-hero-main.compact p{font-size:11px!important;margin-top:4px!important}
.dorm-hero-summary{display:flex!important;flex-wrap:wrap!important;justify-content:flex-end!important;gap:6px!important;min-width:0!important}
.dorm-hero-summary span{padding:5px 8px!important;font-size:11px!important;white-space:nowrap!important}
.dorm-toolbar{min-width:0!important;margin-bottom:10px!important;padding:4px!important;border-radius:13px!important;overflow:hidden!important}
.dorm-toolbar .unified-module-tabs{display:flex!important;width:100%!important;min-width:0!important;gap:4px!important;padding:3px!important;overflow-x:auto!important;overflow-y:hidden!important;scrollbar-width:thin!important}
.dorm-toolbar .unified-module-tabs button{flex:1 1 0!important;min-width:max-content!important;width:auto!important;min-height:34px!important;padding:0 10px!important;font-size:12px!important}

.occupancy-kpis.refined{grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:9px!important;margin-bottom:11px!important}
.occupancy-kpis.refined article{display:block!important;min-width:0!important;min-height:92px!important;padding:12px 13px!important;border-radius:14px!important}
.occupancy-kpis.refined small{font-size:11px!important;white-space:nowrap!important}
.occupancy-kpis.refined b{display:flex!important;align-items:baseline!important;gap:3px!important;min-width:0!important;margin-top:7px!important;font-size:25px!important;line-height:1!important;white-space:nowrap!important}
.occupancy-kpis.refined b em{flex:none!important;margin:0!important;font-size:11px!important;white-space:nowrap!important}
.occupancy-kpis.refined span{margin-top:6px!important;font-size:10px!important;line-height:1.35!important;white-space:normal!important}
.occupancy-kpis.refined article>span{
  display:block!important;width:auto!important;height:auto!important;min-height:0!important;
  padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;
  color:#7d90a2!important;text-align:left!important;place-items:initial!important;
}
.occupancy-kpis.refined article.status-summary b{font-size:22px!important}
.occupancy-kpis.refined article.status-summary b em{font-size:10px!important}

.dorm-occupancy-grid.refined{grid-template-columns:minmax(0,1.45fr) minmax(250px,.55fr)!important;gap:11px!important;margin-bottom:11px!important}
.dorm-occupancy-grid.refined>.panel{min-width:0!important;overflow:hidden!important}
.dorm-floor-occupancy-bars.refined,.dorm-occupancy-status-grid.refined{width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important}
.dorm-floor-occupancy-bars.refined{gap:8px!important}
.dorm-floor-occupancy-bars.refined article{width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;grid-template-columns:128px minmax(0,1fr) 68px!important;gap:10px!important;padding:9px 10px!important;border-radius:11px!important}
.dorm-floor-occupancy-bars.refined article>*{min-width:0!important}
.dorm-floor-occupancy-bars.refined article>div b{font-size:13px!important}
.dorm-floor-occupancy-bars.refined article>div small{font-size:10px!important;overflow-wrap:anywhere!important}
.dorm-floor-occupancy-bars.refined article>span b{font-size:16px!important}
.dorm-floor-occupancy-bars.refined article>span small{font-size:9px!important;white-space:nowrap!important}
.dorm-occupancy-status-grid.refined{grid-template-columns:1fr 1fr!important;gap:7px!important}
.dorm-occupancy-status-grid.refined article{min-width:0!important;min-height:74px!important;padding:10px 6px!important;border-radius:12px!important}
.dorm-occupancy-status-grid.refined article b{font-size:23px!important}
.dorm-occupancy-status-grid.refined article span{font-size:11px!important;margin-top:5px!important}
.dorm-type-chips.refined{gap:6px!important;margin-top:9px!important}
.dorm-type-chips.refined span{min-height:27px!important;padding:4px 7px!important;font-size:10px!important;gap:5px!important}
.dorm-type-chips.refined span b{font-size:10px!important}

.dorm-occupancy-matrix-panel.compact{margin-bottom:11px!important}
.dorm-occupancy-floor summary{min-height:48px!important;padding:9px 11px!important}
.dorm-occupancy-floor summary b{font-size:13px!important}
.dorm-occupancy-floor summary small{font-size:10px!important}
.dorm-room-matrix{grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:7px!important;padding:8px!important}
.dorm-room-matrix-card{min-height:92px!important;padding:10px!important;border-radius:12px!important}
.dorm-room-matrix-card:hover{transform:none!important}
.dorm-room-matrix-card b{font-size:13px!important}
.dorm-room-matrix-card small,.dorm-room-matrix-card em,.dorm-room-matrix-card span{font-size:10px!important}
.dorm-recent-list article{min-height:48px!important;padding:9px 0!important;font-size:12px!important}
.dorm-occupancy-grid.recent.refined{gap:11px!important;margin-bottom:11px!important}

@media(max-width:1250px){
  .dorm-room-matrix{grid-template-columns:repeat(4,minmax(0,1fr))!important}
}

@media(max-width:900px){
  .topbar-title h1,.topbar h1{font-size:19px!important}
  .topbar-title h1:after,.topbar h1:after{content:none!important}
  .content{padding-top:16px!important}
  .page-transition:has(> .dorm-hero-compact)>.pagehead{display:flex!important;flex-direction:row!important;align-items:center!important;gap:8px!important}
  .page-transition:has(> .dorm-hero-compact)>.pagehead>div:first-child{flex:1!important}
  .page-transition:has(> .dorm-hero-compact)>.pagehead .actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:6px!important;width:auto!important;margin-top:0!important}
  .dorm-hero-compact{align-items:center!important;flex-direction:row!important;padding:12px 13px!important}
  .dorm-hero-summary{margin-left:auto!important}
  .occupancy-kpis.refined{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .occupancy-kpis.refined article.status-summary{grid-column:span 2!important}
  .dorm-occupancy-grid.refined,.dorm-occupancy-grid.recent.refined{grid-template-columns:1fr!important}
  .dorm-room-matrix{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}

@media(max-width:620px){
  .page-transition:has(> .dorm-hero-compact)>.pagehead{margin-bottom:7px!important}
  .page-transition:has(> .dorm-hero-compact)>.pagehead p{display:none!important}
  .page-transition:has(> .dorm-hero-compact)>.pagehead>div:first-child{display:none!important}
  .page-transition:has(> .dorm-hero-compact)>.pagehead .actions{display:flex!important;flex-flow:row nowrap!important;gap:6px!important;width:100%!important}
  .page-transition:has(> .dorm-hero-compact)>.pagehead .platform-access-badge,
  .page-transition:has(> .dorm-hero-compact)>.pagehead .page-more-actions{flex:1 1 0!important;min-width:0!important;width:auto!important}
  .page-transition:has(> .dorm-hero-compact)>.pagehead .platform-access-badge,
  .page-transition:has(> .dorm-hero-compact)>.pagehead .page-more-actions>summary{min-height:34px!important;width:100%!important;justify-content:center!important;box-sizing:border-box!important;font-size:11px!important}
  .dorm-hero-compact{display:grid!important;grid-template-columns:1fr!important;gap:9px!important;margin-bottom:8px!important;padding:11px!important}
  .dorm-hero-main.compact>span{width:38px!important;height:38px!important}
  .dorm-hero-main.compact h2{font-size:18px!important}
  .dorm-hero-main.compact p{font-size:10px!important}
  .dorm-hero-summary{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:5px!important;width:100%!important;margin:0!important}
  .dorm-hero-summary span{display:block!important;min-width:0!important;padding:5px 3px!important;overflow:hidden!important;font-size:9px!important;text-align:center!important;text-overflow:ellipsis!important}
  .dorm-toolbar{margin-bottom:8px!important;overflow:visible!important}
  .dorm-toolbar .unified-module-tabs{display:flex!important;gap:2px!important;overflow:hidden!important;scroll-snap-type:none!important}
  .dorm-toolbar .unified-module-tabs button{flex:1 1 0!important;min-width:0!important;width:auto!important;min-height:32px!important;padding:0 4px!important;font-size:10px!important;gap:3px!important;scroll-snap-align:none!important}
  .dorm-toolbar .unified-module-tabs button .ui-icon{width:12px!important;height:12px!important}
  .occupancy-kpis.refined{grid-template-columns:1fr 1fr!important;gap:7px!important;margin-bottom:8px!important}
  .occupancy-kpis.refined article{min-height:78px!important;padding:10px!important;border-radius:12px!important}
  .occupancy-kpis.refined article.status-summary{grid-column:1/-1!important}
  .occupancy-kpis.refined b{font-size:22px!important;margin-top:5px!important}
  .occupancy-kpis.refined span{font-size:9px!important;margin-top:4px!important}
  .dorm-occupancy-grid.refined{gap:8px!important;margin-bottom:8px!important}
  .dorm-occupancy-grid.refined>.panel{overflow:visible!important}
  .dorm-floor-occupancy-bars.refined article{grid-template-columns:minmax(0,1fr) auto!important;gap:7px!important;padding:8px!important}
  .dorm-floor-occupancy-bars.refined article>i{grid-column:1/-1!important;grid-row:2!important;width:100%!important}
  .dorm-floor-occupancy-bars.refined article>span{grid-column:2!important;grid-row:1!important}
  .dorm-occupancy-status-grid.refined{grid-template-columns:1fr 1fr!important;gap:6px!important}
  .dorm-occupancy-status-grid.refined article{min-height:64px!important}
  .dorm-room-matrix{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important;padding:7px!important}
  .dorm-room-matrix-card{min-height:82px!important;padding:8px!important}
  .dorm-occupancy-floor summary{min-height:44px!important;padding:8px 9px!important}
  .dorm-occupancy-grid.recent.refined{gap:8px!important}
}

@media(max-width:350px){
  .dorm-hero-summary{grid-template-columns:1fr 1fr!important}
  .dorm-toolbar .unified-module-tabs{overflow-x:auto!important}
  .dorm-toolbar .unified-module-tabs button{flex:0 0 auto!important;min-width:max-content!important;padding:0 6px!important}
  .dorm-room-matrix{grid-template-columns:1fr!important}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .page-transition,.ui-reveal{opacity:1!important;transform:none!important;filter:none!important}
}


/* =========================================================
   V2.6.80 VISUAL SYSTEM FINAL OVERRIDES
   原则：信息优先、层级清晰、色彩克制、当前状态优先、桌面/移动重新编排。
   ========================================================= */
:root{
  --hc-page:#f5f7fa;
  --hc-surface:#ffffff;
  --hc-surface-soft:#f8fafc;
  --hc-line:#dfe6ed;
  --hc-line-soft:#e9eef3;
  --hc-text:#20384f;
  --hc-text-2:#50677c;
  --hc-muted:#71869a;
  --hc-blue:#176ed1;
  --hc-blue-soft:#edf5ff;
  --hc-green:#12805f;
  --hc-green-soft:#eaf7f2;
  --hc-orange:#b56b16;
  --hc-orange-soft:#fff4e5;
  --hc-red:#c84450;
  --hc-red-soft:#fff0f2;
  --hc-radius-1:10px;
  --hc-radius-2:14px;
  --hc-radius-3:18px;
  --hc-shadow-1:0 1px 2px rgba(20,52,82,.03),0 8px 24px rgba(20,52,82,.045);
  --hc-shadow-2:0 10px 30px rgba(20,52,82,.07);
  --hc-topbar-h:64px;
}

html,body{background:var(--hc-page)!important;color:var(--hc-text)}
body{font-size:13px!important;line-height:1.55!important}
.page-transition{width:100%;max-width:1720px;margin:0 auto}
.content{padding:18px clamp(18px,2vw,30px) 46px!important}

/* Topbar：减少重复信息占位 */
.topbar{min-height:var(--hc-topbar-h)!important;padding:8px clamp(18px,2vw,30px)!important;background:rgba(248,250,252,.94)!important;border-color:#dfe7ee!important}
.topbar-title h1,.topbar h1{font-size:20px!important;letter-spacing:-.01em!important}
.topbar-title p,.topbar p{font-size:11px!important;color:#7b8d9f!important;margin-top:2px!important}
.pagehead.pagehead-compact{min-height:0!important;align-items:center!important;margin:0 0 10px!important}
.pagehead-title-sr{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.pagehead.pagehead-compact>div:first-child{min-width:0;flex:1}
.pagehead.pagehead-compact p{margin:0!important;font-size:12px!important;line-height:1.45!important;color:#71869a!important;font-weight:650!important;letter-spacing:.01em}
.pagehead.pagehead-compact .actions{justify-content:flex-end!important}

/* 三级容器：一级面板有轻投影，二级卡片只留边框，三级信息取消套卡 */
.panel,.stat,.person,.owner-task-group,.department-group,.daily-dept,.daily-person,.system-account-group{
  border:1px solid var(--hc-line)!important;
  background:var(--hc-surface)!important;
  box-shadow:var(--hc-shadow-1)!important;
}
.panel{border-radius:var(--hc-radius-3)!important;padding:17px!important}
.stat{border-radius:16px!important}
.dept-summary,.member-summary,.compact-item,.completion-item,.person-kpis>div,.executive-person-summary-card,.executive-task-list-simple>article,
.person-period-department,.person-period-person,.task-detail-filter-panel,.person-detail-filterbar{
  box-shadow:none!important;
}
.dept-summary,.member-summary,.compact-item,.completion-item,.person-kpis>div,.executive-task-list-simple>article{
  border-color:var(--hc-line-soft)!important;background:#fbfcfe!important;
}
.panel h3,.section-head h3{font-size:16px!important;line-height:1.35!important;color:#29465f!important}
.panel-sub{font-size:11px!important;line-height:1.5!important;color:#7a8da0!important;margin-top:3px!important;margin-bottom:0!important}
.section-head{align-items:center!important;margin-bottom:12px!important}

/* 首页第一屏：压缩欢迎区 20%+，让工作信息更早出现 */
.welcome-banner{
  display:grid!important;grid-template-columns:minmax(0,1fr) minmax(250px,310px)!important;align-items:center!important;gap:18px!important;
  min-height:136px!important;margin-bottom:11px!important;padding:15px 18px!important;border-radius:18px!important;
  border-color:#dbe7f2!important;box-shadow:var(--hc-shadow-1)!important;
  background:radial-gradient(circle at 72% 22%,rgba(49,130,218,.11),transparent 17rem),linear-gradient(135deg,#fff,#f3f8fd)!important;
}
.welcome-copy h2{font-size:24px!important;line-height:1.15!important;margin:7px 0 5px!important;letter-spacing:-.02em!important}
.welcome-label{min-height:24px!important;padding:3px 8px!important;font-size:11px!important}
.welcome-copy p{font-size:12px!important;line-height:1.55!important}
.welcome-warm-copy{max-width:760px!important;margin-top:9px!important;padding:7px 10px!important;border-radius:10px!important;border-color:#dfe9f3!important;background:rgba(255,255,255,.74)!important}
.welcome-warm-copy>span{font-size:11px!important}.welcome-warm-copy>b{font-size:12px!important;line-height:1.5!important;font-weight:650!important}
.welcome-actions{margin-top:9px!important}.welcome-actions .btn{min-height:36px!important}
.focus-panel{min-width:0!important;gap:11px!important;padding:8px 0 8px 16px!important;border-left:1px solid #d9e5ef!important}
.focus-icon{width:44px!important;height:44px!important;border-radius:13px!important}.focus-icon .ui-icon{width:21px!important;height:21px!important}
.focus-panel small{font-size:11px!important}.focus-panel b{font-size:15px!important;margin-top:3px!important}.focus-panel p{font-size:11px!important;margin-top:3px!important}

.brand-poster-dashboard-card{margin-bottom:11px!important;padding:13px 15px!important;border-radius:15px!important;box-shadow:none!important}
.brand-poster-dashboard-icon{width:42px!important;height:42px!important;border-radius:12px!important}.brand-poster-dashboard-main h3{font-size:15px!important}.brand-poster-dashboard-main p,.brand-poster-dashboard-side small{font-size:11px!important}.brand-poster-dashboard-flow{font-size:11px!important;margin-top:6px!important}
.management-tools-strip{gap:9px!important;margin:10px 0 11px!important}
.management-tools-strip>button{min-height:70px!important;padding:10px 12px!important;border-radius:14px!important;box-shadow:none!important}
.management-tools-strip .tool-icon{width:40px!important;height:40px!important;border-radius:12px!important}.management-tools-strip .tool-icon .ui-icon{width:20px!important;height:20px!important}
.management-tools-strip small{font-size:11px!important}.management-tools-strip b{font-size:15px!important;margin-top:2px!important}.management-tools-strip em{font-size:11px!important;margin-top:2px!important}

.stats{gap:10px!important}.stat{min-height:96px!important;padding:13px 15px!important;box-shadow:none!important;background:#fff!important}
.stat:hover{transform:translateY(-2px)!important;box-shadow:var(--hc-shadow-1)!important}
.stat label{font-size:11px!important}.stat strong{font-size:28px!important;margin-top:8px!important}.stat small{font-size:11px!important;margin-top:4px!important}
.stat-top>span{width:34px!important;height:34px!important;border-radius:10px!important}
.dashboard-section{margin-top:11px!important}.grid2{gap:11px!important;margin-top:11px!important}

/* 领导总览：保留氛围，但把数据推回首屏 */
.executive-clean-hero{
  min-height:278px!important;margin-bottom:13px!important;padding:24px 30px 22px!important;border-radius:20px!important;box-shadow:0 12px 34px rgba(6,65,126,.11)!important;
}
.executive-clean-copy{width:min(58%,720px)!important}.executive-clean-copy h2{font-size:28px!important;margin-bottom:7px!important}.executive-clean-copy>p{font-size:12px!important}
.executive-leader-warm{margin-top:15px!important;max-width:620px!important;padding:8px 0 8px 13px!important}.executive-leader-warm span{font-size:11px!important}.executive-leader-warm b{font-size:13px!important;line-height:1.55!important}
.executive-clean-tags{margin-top:13px!important;gap:11px!important}.executive-clean-tags span{font-size:11px!important}
.executive-period-floating{top:18px!important;right:24px!important}

/* 筛选条：紧凑、吸顶、所选范围持续可见 */
.task-detail-filter-panel,.person-detail-filterbar.sticky-filter{
  position:sticky!important;top:calc(var(--hc-topbar-h) + 8px)!important;z-index:9!important;
  border:1px solid #dce6ef!important;background:rgba(249,251,253,.96)!important;backdrop-filter:blur(14px)!important;
  box-shadow:0 8px 24px rgba(31,67,101,.06)!important;
}
.task-detail-filter-panel{padding:11px 13px!important;border-radius:14px!important;margin-bottom:11px!important}
.task-detail-filter-head{margin-bottom:8px!important}.task-detail-filter-head .panel-sub{display:none!important}
.task-detail-filterbar{gap:8px!important}.task-detail-filterbar>label>span,.person-detail-filterbar>label>span{font-size:11px!important;color:#61788d!important}
.task-detail-filterbar input,.task-detail-filterbar select,.person-detail-filterbar input,.person-detail-filterbar select{height:39px!important;min-height:39px!important;border-radius:9px!important;font-size:12px!important}
.task-detail-period-summary{min-height:39px!important;border-radius:10px!important}.task-detail-result-head{margin:8px 1px 10px!important}
.person-detail-filterbar{padding:10px 11px!important;gap:8px!important;border-radius:14px!important}

/* 表格：提高阅读性，负责人单一主层级，状态去重 */
.tablewrap{border-color:#dfe7ee!important;border-radius:14px!important;box-shadow:none!important}
table{font-size:13px!important}th{padding:10px 12px!important;font-size:11px!important;letter-spacing:.015em!important;color:#697f93!important;background:#f6f8fa!important}td{padding:11px 12px!important;font-size:13px!important;vertical-align:middle!important}
tbody tr{transition:background .15s ease}tbody tr:hover{background:#f8fbfe!important}
.task-table th:nth-child(1){min-width:330px}.task-table th:nth-child(2){min-width:165px}.task-table th:nth-child(4){min-width:130px}.task-table th:nth-child(5){min-width:120px}
.task-title-cell>b,.task-title-cell>div>b{font-size:13px!important;line-height:1.45!important;color:#29445d!important}
.task-meta-line{gap:7px!important;margin-top:4px!important}.task-meta-line>span{font-size:11px!important;color:#8091a1!important}
.owner-cell{align-items:flex-start!important;gap:9px!important;min-width:150px!important}.owner-cell .avatar.tiny{width:30px!important;height:30px!important;min-width:30px!important;border-radius:9px!important;font-size:12px!important}
.owner-cell>div>b{display:block;font-size:13px!important;line-height:1.35!important;color:#29465f!important}.owner-cell small{font-size:11px!important;line-height:1.35!important;margin-top:2px!important;color:#7d8fa0!important}.owner-cell .owner-collab{color:#58748c!important}
.date-cell{font-size:12px!important}.date-cell .ui-icon{width:15px!important;height:15px!important}
.progress{width:118px!important}.progress-row{font-size:11px!important;margin-bottom:5px!important}.bar{height:6px!important;background:#edf1f5!important}.bar span{background:linear-gradient(90deg,#2e7fd6,#58a1e5)!important}
.progress-complete,.executive-progress-complete{display:inline-flex;align-items:center;gap:6px;color:var(--hc-green);font-size:12px;font-weight:800;white-space:nowrap}.progress-complete .ui-icon,.executive-progress-complete .ui-icon{width:16px;height:16px}
.task-row-completed{background:#fbfdfc!important}.task-row-completed .task-title-cell>div>b{color:#476257!important}.task-row-completed .task-meta-line{opacity:.82}
.task-status-summary{gap:6px!important}.status-with-icon{min-height:27px!important;padding:4px 9px!important;border-radius:999px!important;font-size:11px!important;background:#eef4fa!important;color:#45647e!important}
.status-with-icon.green{background:var(--hc-green-soft)!important;color:var(--hc-green)!important}.status-with-icon.red{background:var(--hc-red-soft)!important;color:var(--hc-red)!important}
.task-risk-compact{min-height:25px!important;padding:4px 8px!important;border-radius:999px!important;font-size:11px!important}.task-risk-compact.warning{background:var(--hc-orange-soft)!important;color:var(--hc-orange)!important}.task-risk-compact.danger{background:var(--hc-red-soft)!important;color:var(--hc-red)!important}
.badge.green{background:var(--hc-green-soft)!important;color:var(--hc-green)!important}.badge.red{background:var(--hc-red-soft)!important;color:var(--hc-red)!important}.badge.yellow,.badge.orange{background:var(--hc-orange-soft)!important;color:var(--hc-orange)!important}

/* 领导人员任务列表：完成态不再画 100% 条 */
.executive-task-list-simple>article{border-radius:12px!important;padding:11px 12px!important}.executive-task-topline b{font-size:13px!important}.executive-task-main>small{font-size:11px!important}.executive-task-side{gap:9px!important}
.executive-progress-complete{justify-self:end}

/* 字体底线：业务页面不再依赖 8/9px 提升密度 */
.content small,.content .panel-sub,.content .task-meta-line,.content .compact-item small,.content .completion-item small,.content .dept-summary small,.content .member-summary small{font-size:11px!important}
.content .compact-item b,.content .completion-item b,.content .member-summary-name b{font-size:12px!important}

/* 左侧导航：高频展开，专项平台默认折叠 */
.nav{padding:12px 10px!important;overflow-y:auto!important;overscroll-behavior:contain!important;scrollbar-width:thin}
.nav-section{margin-bottom:8px!important}.nav-section-label{min-height:26px!important;padding:4px 10px!important;color:rgba(255,255,255,.44)!important;font-size:10px!important;font-weight:800!important;letter-spacing:.08em!important;text-transform:uppercase}
.nav-section-collapsible{border:0!important}.nav-section-collapsible>summary{display:flex!important;align-items:center!important;justify-content:space-between!important;list-style:none!important;cursor:pointer!important;user-select:none!important;border-radius:8px!important}
.nav-section-collapsible>summary::-webkit-details-marker{display:none}.nav-section-collapsible>summary:hover{background:rgba(255,255,255,.05)!important;color:rgba(255,255,255,.72)!important}.nav-section-collapsible>summary em{display:grid;place-items:center;transition:transform .18s ease}.nav-section-collapsible[open]>summary em{transform:rotate(90deg)}.nav-section-collapsible>summary .ui-icon{width:13px;height:13px}.nav-section-body{padding-top:2px}
.nav button{min-height:40px!important;border-radius:10px!important;margin-bottom:3px!important}.nav button span{font-size:12px!important}.nav button.active{box-shadow:0 7px 18px rgba(4,34,73,.20)!important}
.brand{min-height:92px!important;padding:16px 18px!important}.brand img{width:182px!important}.side-status{margin:6px 10px 8px!important}.userbox{padding:10px!important}

/* 页面空状态、按钮、输入控件更克制 */
.empty{padding:42px 18px!important}.empty.icon-empty{min-height:140px!important}.empty-icon{width:48px!important;height:48px!important;border-radius:14px!important}
.btn{min-height:38px!important;border-radius:10px!important;font-size:12px!important}.btn.primary{box-shadow:0 6px 15px rgba(31,108,210,.13)!important}
input:not([type="checkbox"]):not([type="radio"]),select,textarea{border-color:#d8e2eb!important}

/* 大屏内容不会过度横向拉散 */
@media(min-width:1780px){
  .content{padding-left:34px!important;padding-right:34px!important}
  .welcome-banner{grid-template-columns:minmax(0,1fr) 320px!important}
}

/* 1366 / 小笔记本：重新编排，而不是简单缩小 */
@media(min-width:901px) and (max-width:1366px){
  .content{padding:15px 18px 42px!important}
  .welcome-banner{grid-template-columns:minmax(0,1fr) 245px!important;gap:12px!important;min-height:126px!important;padding:13px 15px!important}.welcome-copy h2{font-size:22px!important}.welcome-warm-copy{max-width:610px!important}
  .focus-panel{padding-left:12px!important}.focus-icon{width:40px!important;height:40px!important}
  .executive-clean-hero{min-height:252px!important;padding:21px 24px!important}.executive-clean-copy h2{font-size:26px!important}.executive-leader-warm{max-width:560px!important}
  .task-detail-filter-panel,.person-detail-filterbar.sticky-filter{top:72px!important}
  .management-tools-strip>button{min-height:66px!important}
}

/* 手机：重新堆叠关键信息，避免“缩小桌面版” */
@media(max-width:900px){
  :root{--hc-topbar-h:58px}
  .content{padding:12px 12px calc(88px + env(safe-area-inset-bottom))!important}
  .pagehead.pagehead-compact{margin-bottom:9px!important}.pagehead.pagehead-compact p{font-size:11px!important}.pagehead.pagehead-compact .actions{width:100%;justify-content:stretch!important;margin-top:8px!important}
  .pagehead.pagehead-compact .actions>.btn{flex:1 1 auto}
  .welcome-banner{grid-template-columns:1fr!important;gap:10px!important;min-height:0!important;padding:14px!important;border-radius:15px!important}.welcome-copy h2{font-size:21px!important}.welcome-copy p{font-size:11px!important}.welcome-warm-copy{margin-top:8px!important;padding:7px 9px!important}.welcome-actions{margin-top:8px!important}.focus-panel{border-left:0!important;border-top:1px solid #dfe8f0!important;padding:10px 0 0!important}.focus-icon{width:40px!important;height:40px!important}
  .brand-poster-dashboard-card{grid-template-columns:40px minmax(0,1fr)!important;gap:10px!important;padding:12px!important}.brand-poster-dashboard-side{grid-column:1/-1!important;padding-left:50px!important}
  .management-tools-strip{grid-template-columns:1fr!important}.management-tools-strip>button{min-height:64px!important;padding:9px 11px!important}.management-tools-strip .tool-icon{width:38px!important;height:38px!important}.management-tools-strip b{font-size:14px!important}
  .stats,.analysis-kpis,.executive-kpis,.daily-overview,.admin-affair-kpis,.person-period-kpis,.temp-summary,.my-task-stats{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;overflow:visible!important}.stats>*{min-width:0!important}.stat{min-height:88px!important;padding:12px!important}.stat strong{font-size:25px!important}
  .executive-clean-hero{min-height:360px!important;padding:20px 18px 122px!important;border-radius:16px!important}.executive-clean-copy{width:100%!important}.executive-clean-copy h2{font-size:24px!important}.executive-leader-warm{margin-top:13px!important}.executive-clean-tags{margin-top:11px!important}
  .task-detail-filter-panel,.person-detail-filterbar.sticky-filter{position:relative!important;top:auto!important;z-index:auto!important;backdrop-filter:none!important}.task-detail-filter-panel{padding:11px!important}.person-detail-filterbar{padding:10px!important}
  .task-table-wrap{border:0!important;background:transparent!important}.task-table{min-width:0!important}.task-table thead{display:none!important}.task-table tbody{display:grid!important;gap:9px!important}.task-table tr{display:grid!important;grid-template-columns:1fr 1fr!important;gap:9px!important;padding:12px!important;border:1px solid var(--hc-line)!important;border-radius:14px!important;background:#fff!important;box-shadow:none!important}.task-table td{display:block!important;padding:0!important;border:0!important;min-width:0!important}.task-table td:before{display:block!important;margin-bottom:4px!important;color:#8092a4!important;font-size:10px!important;font-weight:800!important}.task-table td.mobile-task-main{grid-column:1/-1!important}.task-table td.mobile-task-main:before{display:none!important}.task-table td.mobile-task-actions{grid-column:1/-1!important;border-top:1px solid #edf1f4!important;padding-top:9px!important}.task-table .task-title-cell{align-items:flex-start!important}.task-table .owner-cell{min-width:0!important}.task-table .progress{width:100%!important}.task-table .task-status-summary{justify-content:flex-start!important}.task-table .compact-row-actions{justify-content:flex-end!important}
  .topbar-title p{display:none!important}
}

@media(max-width:560px){
  .stats,.analysis-kpis,.executive-kpis,.daily-overview,.admin-affair-kpis,.person-period-kpis,.temp-summary,.my-task-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
  .stat{min-height:84px!important}.stat strong{font-size:23px!important}.stat small{font-size:10px!important}
  .brand-poster-dashboard-side{padding-left:0!important;display:grid!important;justify-items:stretch!important}.brand-poster-dashboard-side .btn{width:100%!important}
  .task-table tr{grid-template-columns:1fr!important}.task-table td{grid-column:1!important}.task-table td.mobile-task-main,.task-table td.mobile-task-actions{grid-column:1!important}
  .executive-clean-hero{min-height:382px!important;padding-bottom:132px!important}
}


/* V2.6.92 · 首页统计卡片显示修复
   整卡已经支持点击下钻，因此不再叠加“查看明细”文字；
   固定三层信息区，避免指标说明与交互提示重叠。 */
.stats .stat{
  display:grid!important;
  grid-template-rows:34px auto minmax(18px,auto)!important;
  align-content:start!important;
  min-height:122px!important;
  padding:15px 17px 14px!important;
  overflow:hidden!important;
}
.stats .stat-top{min-height:34px!important;align-items:center!important}
.stats .stat-top>span{width:34px!important;height:34px!important;min-width:34px!important;border-radius:10px!important}
.stats .stat strong{margin:10px 0 0!important;font-size:30px!important;line-height:1.05!important}
.stats .stat small{
  display:block!important;
  min-width:0!important;
  margin:7px 0 0!important;
  color:#8193a5!important;
  font-size:11px!important;
  line-height:1.45!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.stat-drill-hint{display:none!important}
.dashboard-drill{cursor:pointer!important}
.dashboard-drill:hover .stat-top label{color:#2d659c!important}

@media(max-width:900px){
  .stats .stat{min-height:108px!important;padding:13px 14px!important;grid-template-rows:32px auto minmax(16px,auto)!important}
  .stats .stat-top{min-height:32px!important}
  .stats .stat-top>span{width:32px!important;height:32px!important;min-width:32px!important}
  .stats .stat strong{font-size:26px!important;margin-top:8px!important}
  .stats .stat small{font-size:10px!important;margin-top:6px!important}
}
@media(max-width:560px){
  .stats .stat{min-height:102px!important;padding:12px!important}
  .stats .stat strong{font-size:24px!important}
}

/* =========================================================
   V2.6.92 全平台显示 / 交互稳定性修复
   重点：消除无意义横向撑宽、任务列表截断、操作菜单溢出、
   复杂 Grid 子项撑破父容器，以及中等分辨率下的布局失衡。
   ========================================================= */

/* 1) 所有主布局都允许真正收缩，禁止子项把页面整体撑宽 */
html,body,#app,.shell,.main,.content,.page-transition{
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
.main,.content,.page-transition{overflow-x:clip}
.content>*,.page-transition>*,
.panel>*,.section-head>*,.toolbar>*,.actions>*,
.grid2>*,.analysis-grid>*,.analysis-kpis>*,.executive-kpis>*,
.my-task-stats>*,.temp-summary>*,.daily-overview>*,
.member-summary-grid>*,.budget-summary-grid>*,.vehicle-kpis>*,.media-kpis>*{
  min-width:0!important;
  max-width:100%;
  box-sizing:border-box;
}
img,svg,canvas{max-width:100%}

/* 2) 普通业务表保持自适应；专用大台账由各自滚动容器管理。
      专用大台账（办公用品 / 公车 / 月度识别）继续由各自容器管理滚动。 */
.tablewrap{max-width:100%!important;min-width:0!important;box-sizing:border-box!important}
.tablewrap>table{width:100%!important;max-width:100%!important;min-width:0!important}
.tablewrap:not(.task-table-wrap){overflow-x:auto!important;overflow-y:visible;overscroll-behavior-x:contain;scrollbar-gutter:stable}

/* 3) 任务列表：桌面端彻底取消横向滚动，六列按可用宽度自适应 */
.task-table-wrap{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  overflow-x:clip!important;
  overflow-y:visible!important;
  scrollbar-width:none!important;
}
.task-table-wrap::-webkit-scrollbar{display:none!important}
.task-table-wrap.is-scrollable:after{display:none!important}
.task-table{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  table-layout:fixed!important;
}
.task-table th,.task-table td{
  min-width:0!important;
  max-width:none!important;
  box-sizing:border-box!important;
  overflow-wrap:anywhere!important;
  word-break:break-word!important;
}
.task-table th:nth-child(1){width:31%!important}
.task-table th:nth-child(2){width:16%!important}
.task-table th:nth-child(3){width:12%!important}
.task-table th:nth-child(4){width:14%!important}
.task-table th:nth-child(5){width:13%!important}
.task-table th:nth-child(6){width:14%!important}
.task-title-cell{
  display:grid!important;
  grid-template-columns:34px minmax(0,1fr)!important;
  min-width:0!important;
  max-width:none!important;
  width:100%!important;
  gap:9px!important;
}
.task-title-cell>div,.task-title-cell>div>b,.task-meta-line{min-width:0!important;max-width:100%!important}
.task-title-cell>div>b{overflow-wrap:anywhere!important;word-break:break-word!important}
.task-meta-line{display:flex!important;flex-wrap:wrap!important;gap:5px 7px!important}
.owner-cell{
  display:grid!important;
  grid-template-columns:30px minmax(0,1fr)!important;
  min-width:0!important;
  width:100%!important;
  gap:8px!important;
}
.owner-cell>div,.owner-cell b,.owner-cell small{min-width:0!important;max-width:100%!important;overflow-wrap:anywhere!important}
.date-cell{min-width:0!important;white-space:normal!important;flex-wrap:wrap!important;line-height:1.45!important}
.progress{width:100%!important;min-width:0!important;max-width:150px!important}
.task-status-summary{min-width:0!important;max-width:100%!important;align-items:flex-start!important}
.status-with-icon,.task-risk-compact{max-width:100%!important;white-space:normal!important;text-align:center}
.compact-row-actions{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  flex-wrap:nowrap!important;
  gap:6px!important;
  min-width:0!important;
  width:100%!important;
}
.compact-row-actions .btn-link{min-width:0!important;max-width:100%!important;padding:0 9px!important;white-space:nowrap!important}
.compact-row-actions .action-menu{flex:0 0 auto!important;min-width:36px!important}

/* 更多操作始终在可视区域内，列表末尾两行自动向上展开 */
.task-table-wrap:has(.action-menu[open]){overflow:visible!important}
.task-table .action-menu>div{
  right:0!important;
  left:auto!important;
  min-width:168px!important;
  max-width:min(260px,calc(100vw - 32px))!important;
  z-index:140!important;
}
.task-table tbody tr:nth-last-child(-n+2) .action-menu>div{
  top:auto!important;
  bottom:calc(100% + 7px)!important;
  transform-origin:bottom right!important;
}

/* 4) “我的任务”信息架构：统计、周期、筛选形成稳定三段，不互相挤压 */
.my-task-stats{align-items:stretch!important}
.my-task-stats article{min-width:0!important;overflow:hidden!important}
.my-task-stats article>div{min-width:0!important}
.my-task-note{min-height:46px!important;padding:10px 14px!important}
.my-task-priority-note{white-space:normal!important;text-align:right!important}
.my-task-toolbar{
  display:grid!important;
  grid-template-columns:auto auto minmax(150px,1fr)!important;
  align-items:center!important;
  gap:10px!important;
  width:100%!important;
}
.my-task-toolbar .view-switch{min-width:0!important;width:max-content!important;max-width:100%!important}
.my-task-toolbar .view-switch button{min-width:0!important;white-space:nowrap!important}
.my-task-toolbar select{justify-self:end!important;width:min(180px,100%)!important;min-width:150px!important;margin-left:0!important}

/* 5) 通用筛选区不再被 280px 的全局输入最小宽度撑破 */
.toolbar{min-width:0!important;max-width:100%!important}
.toolbar input,.toolbar select{max-width:100%!important;box-sizing:border-box!important}
.toolbar-search{min-width:0!important;max-width:100%!important}
.toolbar-search input{min-width:0!important;width:100%!important}
.actions{min-width:0!important;max-width:100%!important}
.view-switch,.analysis-mode-switch,.unified-tabs,.segmented-control{max-width:100%!important;min-width:0!important}

/* 6) 通用卡片与复杂 grid：避免长标题、数字、按钮撑破列宽 */
.stat,.panel,.person,.member-summary,.owner-task-group,.daily-person,
.analysis-kpis article,.executive-kpis article,.executive-depts article,
.quick-report-grid>article,.system-account,.media-account-card{
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
.stat *, .panel *, .person *, .member-summary *, .owner-task-group *{box-sizing:border-box}
.section-head{min-width:0!important;max-width:100%!important;flex-wrap:wrap!important}
.section-head>div{min-width:0!important;max-width:100%!important}
.section-head h3,.section-head p,.pagehead h2,.pagehead p{overflow-wrap:anywhere}

/* 7) 中等分辨率：主动换版，不等到内容已经挤坏才进入手机版 */
@media(min-width:1281px) and (max-width:1500px){
  .my-task-stats{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .task-table th:nth-child(1){width:29%!important}
  .task-table th:nth-child(2){width:16%!important}
  .task-table th:nth-child(3){width:12%!important}
  .task-table th:nth-child(4){width:13%!important}
  .task-table th:nth-child(5){width:13%!important}
  .task-table th:nth-child(6){width:17%!important}
  .task-table th,.task-table td{padding-left:10px!important;padding-right:10px!important}
  .compact-row-actions .btn-link{padding:0 8px!important}
}

/* 1280 及以下：任务表改为卡片式，不再压缩六列，也完全没有横向滚动 */
@media(max-width:1280px){
  .content{padding-left:16px!important;padding-right:16px!important}
  .my-task-stats{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .my-task-toolbar{grid-template-columns:1fr 1fr!important;align-items:stretch!important}
  .my-task-toolbar .view-switch{width:100%!important}
  .my-task-toolbar .view-switch button{flex:1 1 0!important}
  .my-task-toolbar select{grid-column:1/-1!important;justify-self:stretch!important;width:100%!important;min-width:0!important}

  .task-table-wrap{border:0!important;background:transparent!important;overflow:visible!important}
  .task-table{display:block!important;min-width:0!important;width:100%!important}
  .task-table thead{display:none!important}
  .task-table tbody{display:grid!important;gap:10px!important;width:100%!important}
  .task-table tr{
    display:grid!important;
    grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr)!important;
    gap:10px 14px!important;
    width:100%!important;
    min-width:0!important;
    padding:13px 14px!important;
    border:1px solid #dfe8f0!important;
    border-radius:14px!important;
    background:#fff!important;
    box-shadow:0 5px 18px rgba(27,73,118,.04)!important;
  }
  .task-table td{
    display:block!important;
    width:auto!important;
    min-width:0!important;
    padding:0!important;
    border:0!important;
  }
  .task-table td:before{
    display:block!important;
    margin-bottom:5px!important;
    color:#8394a5!important;
    font-size:10px!important;
    font-weight:800!important;
    content:attr(data-label);
  }
  .task-table td.mobile-task-main{grid-column:1/-1!important;padding-bottom:10px!important;border-bottom:1px solid #edf2f6!important}
  .task-table td.mobile-task-main:before{display:none!important}
  .task-table td.mobile-task-actions{grid-column:1/-1!important;padding-top:10px!important;border-top:1px solid #edf2f6!important}
  .task-table .task-title-cell{grid-template-columns:36px minmax(0,1fr)!important}
  .task-table .progress{max-width:none!important}
  .task-table .compact-row-actions{justify-content:flex-end!important}
  .task-table tbody tr:nth-last-child(-n+2) .action-menu>div{top:auto!important;bottom:calc(100% + 7px)!important}

  /* 个人 / 人员分析里的超宽九列任务表提前进入卡片模式 */
  .personal-task-detail-panel{overflow:visible!important}
  .personal-task-detail-panel>.section-head{position:static!important}
  .personal-task-table-head{display:none!important}
  .personal-task-list{display:grid!important;gap:10px!important;min-width:0!important;width:100%!important}
  .personal-task-row{
    display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;
    min-width:0!important;width:100%!important;padding:12px!important;
    border:1px solid #dfe8f1!important;border-radius:13px!important;background:#fff!important;
  }
  .personal-task-row>*{min-width:0!important}
  .personal-task-name{grid-column:1/-1!important}

  .person-period-task-area{overflow:visible!important;padding-left:0!important;padding-right:0!important}
  .person-period-task-head{display:none!important}
  .person-period-task-row{
    display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;
    min-width:0!important;width:100%!important;margin-bottom:9px!important;padding:12px!important;
    border:1px solid #dfe8f1!important;border-radius:13px!important;background:#fff!important;
  }
  .person-period-task-row>*{min-width:0!important}
}

@media(max-width:760px){
  .my-task-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .my-task-toolbar{grid-template-columns:1fr!important}
  .my-task-toolbar select{grid-column:auto!important}
  .my-task-note{align-items:flex-start!important;flex-direction:column!important}
  .my-task-priority-note{margin-left:0!important;text-align:left!important}
  .task-table tr,.personal-task-row,.person-period-task-row{grid-template-columns:1fr!important}
  .task-table td,.personal-task-row>*,.person-period-task-row>*{grid-column:1!important}
  .task-table td.mobile-task-main,.task-table td.mobile-task-actions,.personal-task-name{grid-column:1!important}
}

/* 8) 真正需要宽表格的专项平台：限定滚动只发生在表内，不把整个页面撑宽 */
.office-table-wrap,.vehicle-dispatch-table-wrap,.vehicle-ledger-table,.monthly-plan-table-wrap,
.media-content-panel,.media-detail-table,.media-top-archive,.executive-person-table{
  max-width:100%!important;
  min-width:0!important;
  overflow-x:auto!important;
  overscroll-behavior-x:contain;
  scrollbar-gutter:stable;
}
.office-table,.vehicle-dispatch-table,.vehicle-ledger-row,.monthly-plan-table,
.media-content-head,.media-content-row,.media-detail-head,.media-detail-table article,
.media-top-archive-head,.media-top-archive article{
  max-width:none;
}

/* 禁止表格行 hover 位移改变滚动宽度；保留高亮反馈 */
.tablewrap tbody tr:hover,.task-table tbody tr:hover,.table tbody tr:hover{
  transform:none!important;
}

/* V2.6.92 中屏补充：分析明细提前切换为信息卡，避免 1080/1210px 级固定宽表产生横滚 */
@media(max-width:1280px){
  .personal-task-row>*:not(.personal-task-name):not(.personal-task-detail){
    display:flex!important;align-items:center!important;justify-content:space-between!important;gap:8px!important;
    padding:7px 8px!important;border-radius:9px!important;background:#f5f8fb!important;
  }
  .personal-task-row>*:not(.personal-task-name):not(.personal-task-detail):before{
    content:attr(data-label)!important;color:#8191a1!important;font-size:9px!important;font-weight:800!important;
  }
  .personal-task-name{padding-bottom:9px!important;border-bottom:1px solid #edf1f5!important}
  .personal-task-name:before{content:attr(data-label)!important;display:block!important;margin-bottom:6px!important;color:#8191a1!important;font-size:9px!important;font-weight:800!important}
  .personal-period-progress,.personal-current-progress{display:block!important}
  .personal-period-progress:before,.personal-current-progress:before{display:block!important;margin-bottom:6px!important}
  .personal-task-detail{grid-column:1/-1!important;display:flex!important;width:100%!important;height:40px!important;align-items:center!important;justify-content:center!important}

  .person-period-task-row>*:not(.person-period-task-name):not(.person-period-detail-button){
    display:flex!important;align-items:center!important;justify-content:space-between!important;gap:8px!important;
    padding:7px 8px!important;border-radius:9px!important;background:#f5f8fb!important;font-size:10px!important;
  }
  .person-period-task-row>*:not(.person-period-task-name):not(.person-period-detail-button):before{
    content:attr(data-label)!important;color:#8191a1!important;font-size:9px!important;font-weight:700!important;
  }
  .person-period-task-name{grid-column:1/-1!important;padding-bottom:10px!important;border-bottom:1px solid #edf1f5!important}
  .person-period-task-name:before{content:attr(data-label)!important;display:block!important;margin-bottom:6px!important;color:#8191a1!important;font-size:9px!important;font-weight:700!important}
  .person-period-change,.person-period-current{display:block!important}
  .person-period-change:before,.person-period-current:before{display:block!important;margin-bottom:5px!important}
  .person-period-current>span{display:block!important;width:100%!important;margin-bottom:5px!important}
  .person-period-current b{display:block!important;width:auto!important;text-align:right!important}
  .person-period-detail-button{grid-column:1/-1!important;display:flex!important;width:100%!important;height:40px!important;align-items:center!important;justify-content:center!important}

  .executive-person-table{overflow:visible!important}
  .executive-person-table-head{display:none!important}
  .executive-person-table article{
    display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;
    min-width:0!important;width:100%!important;margin-bottom:10px!important;padding:12px!important;
    border:1px solid #dfe8f1!important;border-radius:13px!important;background:#fff!important;
  }
  .executive-person-table article>*{min-width:0!important}
  .executive-person-identity{grid-column:1/-1!important;padding-bottom:8px!important;border-bottom:1px solid #edf1f5!important}
  .executive-person-table article>span,.executive-person-table article>strong,.executive-person-table article>em,.executive-person-progress{display:block!important;text-align:left!important}
  .executive-person-table article>span:nth-child(2):before{content:"部门 / 层级";display:block;color:#8797a7;font-size:9px;font-weight:700}
  .executive-person-table article>strong:nth-child(3):before{content:"负责任务";display:block;color:#8797a7;font-size:9px;font-weight:700}
  .executive-person-table article>strong:nth-child(4):before{content:"协作任务";display:block;color:#8797a7;font-size:9px;font-weight:700}
  .executive-person-table article>strong:nth-child(5):before{content:"已完成";display:block;color:#8797a7;font-size:9px;font-weight:700}
  .executive-person-table article>span:nth-child(7):before{content:"完成率";display:block;color:#8797a7;font-size:9px;font-weight:700}
  .executive-person-table article>em:before{content:"风险状态";display:block;margin-bottom:4px;color:inherit;font-size:9px;font-weight:700}
}

/* =========================================================
   V2.6.92 · 无闪屏页面切换收口
   - 禁止旧版多套 page-transition 透明度动画叠加
   - 页面正文始终保持可见，仅保留极轻微位移反馈
   - 分组卡片不再从透明状态出现，避免切页白闪/闪一下
   ========================================================= */
.page-transition{
  animation:none!important;
  opacity:1!important;
  transform:none!important;
  filter:none!important;
  will-change:auto!important;
}
html.hc-motion-ready .page-transition.hc-page-enter{
  animation:hcNoFlashPageEnter 160ms cubic-bezier(.2,.72,.2,1) both!important;
  opacity:1!important;
  filter:none!important;
}
html.hc-motion-ready .hc-motion-item{
  animation:hcNoFlashItemEnter 210ms cubic-bezier(.16,1,.3,1) both!important;
  opacity:1!important;
  filter:none!important;
}
@keyframes hcNoFlashPageEnter{
  from{opacity:1;transform:translate3d(0,3px,0)}
  to{opacity:1;transform:none}
}
@keyframes hcNoFlashItemEnter{
  from{opacity:1;transform:translate3d(0,5px,0) scale(.997)}
  to{opacity:1;transform:none}
}

/* 导航、顶部栏、侧栏保持稳定，不参与页面入场透明度动画。 */
.shell,.sidebar,.topbar,.topbar-title,.topbar-tools,.content{
  animation:none!important;
}

/* 新页面切换时立即回到顶部，不使用平滑滚动制造二次位移感。 */
html{scroll-behavior:auto}
