/* ONEMORE · 高通透液态玻璃 v2
   取消 WP 磁贴与莫兰迪四色色块；桌面端工作台 / 手机端单列导航。 */

:root {
  --hg-ink: #263044;
  --hg-muted: #6E7890;
  --hg-brand: #6477D8;
  --hg-brand-2: #9B8CE3;
  --hg-line: rgba(255, 255, 255, 0.62);
  --hg-glass: rgba(255, 255, 255, 0.39);
  --hg-glass-strong: rgba(255, 255, 255, 0.64);
  --hg-glass-subtle: rgba(255, 255, 255, 0.26);
  --hg-shadow: 0 20px 54px rgba(55, 73, 137, 0.16), 0 4px 14px rgba(61, 76, 133, 0.08);
  --hg-shadow-float: 0 14px 30px rgba(65, 82, 150, 0.18), inset 0 1px 0 rgba(255, 255, 255, 0.56);
  --hg-radius: 22px;
  --hg-radius-sm: 15px;
  /* 控制玻璃特效成本：大面积内容使用轻模糊，Dock/弹窗仍保留质感。 */
  --hg-blur: 14px;
}

html { background: #E7ECFF; }

body {
  color: var(--hg-ink) !important;
  background:
    radial-gradient(circle at 4% 5%, rgba(129, 157, 255, 0.64), transparent 26rem),
    radial-gradient(circle at 90% 2%, rgba(224, 180, 255, 0.58), transparent 29rem),
    radial-gradient(circle at 84% 88%, rgba(153, 231, 220, 0.50), transparent 27rem),
    radial-gradient(circle at 12% 89%, rgba(255, 222, 179, 0.48), transparent 25rem),
    linear-gradient(135deg, #DCE6FF 0%, #F7EDFF 44%, #DFF7F4 100%) !important;
  background-attachment: scroll !important;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* 降低页面转场期间的大面积合成与重绘；保留视觉层次但避免每张卡都高成本模糊。 */
.header, .view-tabs, .card, .calendar, .today-leaves, .staff-card, .overview-item,
.modal, .login-box, .admin-section, .dm-toolbar, .table-card, .search-box,
.login-card, .stat-card, .clock-card, .history-card, .member-detail, .member-card,
.perf-panel, .chart-card, .summary-card, #attendanceBoard {
  backdrop-filter: blur(14px) saturate(125%);
  -webkit-backdrop-filter: blur(14px) saturate(125%);
  box-shadow: 0 12px 28px rgba(55,73,137,.12), 0 2px 8px rgba(61,76,133,.06) !important;
}

@media (max-width:768px) {
  .header, .view-tabs, .card, .calendar, .today-leaves, .staff-card, .overview-item,
  .modal, .login-box, .admin-section, .dm-toolbar, .table-card, .search-box,
  .login-card, .stat-card, .clock-card, .history-card, .member-detail, .member-card,
  .perf-panel, .chart-card, .summary-card, #attendanceBoard {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    background: rgba(255,255,255,.74) !important;
  }
}

/* Secondary records and administration views use the same material language as the main workspace. */
.admin-container,.daily-container,.detail-container { position:relative; z-index:1; }
.admin-container { max-width:940px !important; padding:28px 24px 110px !important; }
.admin-header,.daily-header { padding:12px 14px; border:1px solid rgba(255,255,255,.76); border-radius:18px; background:rgba(255,255,255,.36); box-shadow:var(--hg-shadow); }
.admin-card,.summary-card,.data-card,.detail-container .detail-card { border:1px solid rgba(255,255,255,.82) !important; border-radius:22px !important; background:linear-gradient(145deg,rgba(255,255,255,.67),rgba(244,247,255,.34)) !important; box-shadow:var(--hg-shadow) !important; }
.admin-table th,.data-table th { background:rgba(86,103,204,.13) !important; color:#5164b7 !important; }
.admin-table td input,.admin-table td select,.date-picker-wrap input { border-color:rgba(255,255,255,.86) !important; background:rgba(255,255,255,.66) !important; border-radius:12px !important; }
.back-btn,.date-nav-btn { border:1px solid rgba(255,255,255,.78) !important; background:rgba(255,255,255,.50) !important; box-shadow:inset 0 1px 0 rgba(255,255,255,.82); }
.detail-container { max-width:1100px !important; padding:25px 22px 110px !important; }
.detail-container .member-header-left .name { font-size:29px; color:#26385e; }
.detail-container .balance-big { color:#5268dd !important; font-size:32px; }
.detail-container .info-item { padding:12px 14px; border:1px solid rgba(255,255,255,.72); border-radius:15px; background:rgba(255,255,255,.42); }
@media(max-width:768px){.admin-container,.daily-container,.detail-container{padding:14px 12px 102px !important}.admin-card,.summary-card,.data-card,.detail-container .detail-card{border-radius:19px !important}.admin-header,.daily-header{padding:9px 10px}.detail-container .member-header-left .name{font-size:24px}.detail-container .balance-big{font-size:28px}.detail-container .info-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important}.admin-table{min-width:650px}}

/* Performance profile: mobile favors stable, opaque material over expensive real-time compositing. */
@media (min-width:769px) {
  .header,.view-tabs,.card,.calendar,.today-leaves,.staff-card,.overview-item,.modal,.login-box,.admin-section,.dm-toolbar,.table-card,.search-box,.login-card,.stat-card,.clock-card,.history-card,.member-detail,.member-card,.perf-panel,.chart-card,.summary-card,#attendanceBoard {
    backdrop-filter:blur(8px) saturate(118%) !important;
    -webkit-backdrop-filter:blur(8px) saturate(118%) !important;
  }
  #om-tabbar.om-dock-v3 { backdrop-filter:blur(10px) saturate(125%) !important; -webkit-backdrop-filter:blur(10px) saturate(125%) !important; }
}
@media (max-width:768px) {
  html { scroll-behavior:auto !important; }
  body { background:#edf2ff !important; }
  #om-watermark { opacity:.58; background-size:760px 520px; }
  .header,.view-tabs,.card,.calendar,.today-leaves,.staff-card,.overview-item,.modal,.login-box,.admin-section,.dm-toolbar,.table-card,.search-box,.login-card,.stat-card,.clock-card,.history-card,.member-detail,.member-card,.perf-panel,.chart-card,.summary-card,#attendanceBoard,.portal-header,.result-box,.detail-card {
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
    box-shadow:0 3px 10px rgba(61,76,133,.07) !important;
  }
  .member-item,.member-quick-item,.mobile-record-card,.history-card,.leave-badge,.portal-card { box-shadow:none !important; }
  .desktop-glass-rail { display:none !important; }
  #om-tabbar.om-dock-v3 { contain:layout paint style; transform:translateZ(0); }
  .dm-table,.calendar table,.perf-table { contain:paint; }
}
@media (prefers-reduced-motion: reduce), (update: slow) {
  *,*::before,*::after { animation:none !important; transition:none !important; }
}

/* Compact layouts become vertical records, including WebViews that report a wide phone viewport. */
@media (max-width:1200px) {
  body[data-page="perf"] [style*="overflow-x:auto"] { overflow-x:visible !important; }
  body[data-page="perf"] .perf-mobile-today,
  body[data-page="perf"] .perf-mobile-dashboard,
  body[data-page="perf"] .perf-mobile-input,
  body[data-page="perf"] .perf-mobile-staff,
  body[data-page="perf"] .perf-mobile-employee { display:block; width:100% !important; min-width:0 !important; background:transparent !important; box-shadow:none !important; }
  body[data-page="perf"] .perf-mobile-today thead,
  body[data-page="perf"] .perf-mobile-dashboard thead,
  body[data-page="perf"] .perf-mobile-input thead,
  body[data-page="perf"] .perf-mobile-staff thead,
  body[data-page="perf"] .perf-mobile-employee thead { display:none; }
  body[data-page="perf"] .perf-mobile-today tbody,
  body[data-page="perf"] .perf-mobile-dashboard tbody,
  body[data-page="perf"] .perf-mobile-input tbody,
  body[data-page="perf"] .perf-mobile-staff tbody,
  body[data-page="perf"] .perf-mobile-employee tbody { display:block; }
  body[data-page="perf"] .perf-mobile-today tr,
  body[data-page="perf"] .perf-mobile-dashboard tr,
  body[data-page="perf"] .perf-mobile-input tr,
  body[data-page="perf"] .perf-mobile-staff tr,
  body[data-page="perf"] .perf-mobile-employee tr { display:grid; grid-template-columns:1fr 1fr; gap:0; margin:0 0 12px; padding:7px; border:1px solid rgba(255,255,255,.86); border-radius:18px; background:rgba(255,255,255,.90); box-shadow:0 5px 14px rgba(61,76,133,.07); }
  body[data-page="perf"] .perf-mobile-today td,
  body[data-page="perf"] .perf-mobile-dashboard td,
  body[data-page="perf"] .perf-mobile-input td,
  body[data-page="perf"] .perf-mobile-staff td,
  body[data-page="perf"] .perf-mobile-employee td { display:flex !important; min-width:0; min-height:42px; padding:7px 8px !important; align-items:center; justify-content:space-between; gap:7px; border:0 !important; border-bottom:1px solid rgba(81,104,220,.08) !important; white-space:normal !important; text-align:right !important; font-size:12px; }
  body[data-page="perf"] .perf-mobile-today td::before,
  body[data-page="perf"] .perf-mobile-dashboard td::before,
  body[data-page="perf"] .perf-mobile-input td::before,
  body[data-page="perf"] .perf-mobile-staff td::before,
  body[data-page="perf"] .perf-mobile-employee td::before { content:attr(data-mobile); flex:0 0 auto; color:#74809a; font-size:11px; text-align:left; }
  body[data-page="perf"] .perf-mobile-today td:first-child,
  body[data-page="perf"] .perf-mobile-dashboard td:first-child,
  body[data-page="perf"] .perf-mobile-input td:first-child,
  body[data-page="perf"] .perf-mobile-staff td:first-child,
  body[data-page="perf"] .perf-mobile-employee td:first-child { grid-column:1 / -1; color:#273756; font-weight:760 !important; font-size:15px; background:rgba(85,103,218,.07); border-radius:12px; }
  body[data-page="perf"] .perf-mobile-input td input,
  body[data-page="perf"] .perf-mobile-input td select,
  body[data-page="perf"] .perf-mobile-staff td input { width:112px !important; max-width:62%; min-height:31px; font-size:13px !important; }
  body[data-page="perf"] .perf-mobile-today td:nth-child(1)::before, body[data-page="perf"] .perf-mobile-dashboard td:nth-child(1)::before, body[data-page="perf"] .perf-mobile-input td:nth-child(1)::before, body[data-page="perf"] .perf-mobile-employee td:nth-child(1)::before { content:'员工'; }
  body[data-page="perf"] .perf-mobile-today td:nth-child(2)::before, body[data-page="perf"] .perf-mobile-input td:nth-child(2)::before { content:'出勤'; }
  body[data-page="perf"] .perf-mobile-today td:nth-child(3)::before, body[data-page="perf"] .perf-mobile-dashboard td:nth-child(3)::before, body[data-page="perf"] .perf-mobile-input td:nth-child(7)::before, body[data-page="perf"] .perf-mobile-employee td:nth-child(3)::before { content:'正常排钟'; }
  body[data-page="perf"] .perf-mobile-today td:nth-child(4)::before, body[data-page="perf"] .perf-mobile-dashboard td:nth-child(4)::before, body[data-page="perf"] .perf-mobile-input td:nth-child(8)::before, body[data-page="perf"] .perf-mobile-employee td:nth-child(4)::before { content:'点加钟'; }
  body[data-page="perf"] .perf-mobile-today td:nth-child(5)::before, body[data-page="perf"] .perf-mobile-dashboard td:nth-child(5)::before, body[data-page="perf"] .perf-mobile-input td:nth-child(9)::before, body[data-page="perf"] .perf-mobile-employee td:nth-child(5)::before { content:'加班上钟'; }
  body[data-page="perf"] .perf-mobile-today td:nth-child(6)::before, body[data-page="perf"] .perf-mobile-dashboard td:nth-child(6)::before, body[data-page="perf"] .perf-mobile-input td:nth-child(10)::before, body[data-page="perf"] .perf-mobile-employee td:nth-child(6)::before { content:'加班时长'; }
  body[data-page="perf"] .perf-mobile-today td:nth-child(7)::before, body[data-page="perf"] .perf-mobile-dashboard td:nth-child(2)::before, body[data-page="perf"] .perf-mobile-input td:nth-child(6)::before, body[data-page="perf"] .perf-mobile-employee td:nth-child(2)::before { content:'总钟数'; }
  body[data-page="perf"] .perf-mobile-today td:nth-child(8)::before { content:'实际提成'; } body[data-page="perf"] .perf-mobile-today td:nth-child(9)::before { content:'保底/天'; } body[data-page="perf"] .perf-mobile-today td:nth-child(10)::before { content:'业绩奖金'; } body[data-page="perf"] .perf-mobile-today td:nth-child(11)::before { content:'激励奖金'; } body[data-page="perf"] .perf-mobile-today td:nth-child(12)::before { content:'其他'; } body[data-page="perf"] .perf-mobile-today td:nth-child(13)::before { content:'备注'; }
  body[data-page="perf"] .perf-mobile-dashboard td:nth-child(7)::before, body[data-page="perf"] .perf-mobile-input td:nth-child(11)::before, body[data-page="perf"] .perf-mobile-employee td:nth-child(7)::before { content:'充值金额'; }
  body[data-page="perf"] .perf-mobile-dashboard td:nth-child(8)::before, body[data-page="perf"] .perf-mobile-input td:nth-child(12)::before, body[data-page="perf"] .perf-mobile-employee td:nth-child(8)::before { content:'业绩奖金'; }
  body[data-page="perf"] .perf-mobile-dashboard td:nth-child(9)::before, body[data-page="perf"] .perf-mobile-input td:nth-child(13)::before, body[data-page="perf"] .perf-mobile-employee td:nth-child(9)::before { content:'激励奖金'; }
  body[data-page="perf"] .perf-mobile-dashboard td:nth-child(10)::before, body[data-page="perf"] .perf-mobile-input td:nth-child(14)::before, body[data-page="perf"] .perf-mobile-employee td:nth-child(10)::before { content:'其他'; }
  body[data-page="perf"] .perf-mobile-dashboard td:nth-child(11)::before, body[data-page="perf"] .perf-mobile-input td:nth-child(15)::before, body[data-page="perf"] .perf-mobile-employee td:nth-child(11)::before { content:'薪资'; }
  body[data-page="perf"] .perf-mobile-dashboard td:nth-child(12)::before, body[data-page="perf"] .perf-mobile-input td:nth-child(16)::before, body[data-page="perf"] .perf-mobile-employee td:nth-child(12)::before { content:'备注'; }
  body[data-page="perf"] .perf-mobile-input td:nth-child(3)::before { content:'班次'; } body[data-page="perf"] .perf-mobile-input td:nth-child(4)::before { content:'上班'; } body[data-page="perf"] .perf-mobile-input td:nth-child(5)::before { content:'下班'; }
  body[data-page="perf"] .perf-mobile-staff td:nth-child(1)::before { content:'姓名'; } body[data-page="perf"] .perf-mobile-staff td:nth-child(2)::before { content:'角色'; } body[data-page="perf"] .perf-mobile-staff td:nth-child(3)::before { content:'门店'; } body[data-page="perf"] .perf-mobile-staff td:nth-child(4)::before { content:'基准提成'; } body[data-page="perf"] .perf-mobile-staff td:nth-child(5)::before { content:'每日餐补'; } body[data-page="perf"] .perf-mobile-staff td:nth-child(6)::before { content:'住宿'; } body[data-page="perf"] .perf-mobile-staff td:nth-child(7)::before { content:'保底'; } body[data-page="perf"] .perf-mobile-staff td:nth-child(8)::before { content:'应出勤'; } body[data-page="perf"] .perf-mobile-staff td:nth-child(9)::before { content:'实际出勤'; } body[data-page="perf"] .perf-mobile-staff td:nth-child(10)::before { content:'每天保底'; } body[data-page="perf"] .perf-mobile-staff td:nth-child(11)::before { content:'备注'; } body[data-page="perf"] .perf-mobile-staff td:nth-child(12)::before { content:'操作'; }
  body[data-page="perf"] .perf-mobile-employee td[colspan] { grid-column:1 / -1; justify-content:center; } body[data-page="perf"] .perf-mobile-employee td[colspan]::before { display:none; }
}

/* All-system finishing pass: shared compositional rhythm for home, performance, leave, daily and attendance. */
body[data-page="performance"] .perf-app,
body[data-page="leave"] .container,
body[data-page="clock"] .clock-container { position:relative; z-index:1; }
body[data-page="performance"] .login-grid {
  width:min(620px,calc(100% - 32px)); margin:34px auto; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px;
}
body[data-page="performance"] .login-card {
  min-height:136px; display:flex; flex-direction:column; justify-content:center; border:1px solid rgba(255,255,255,.84) !important;
  border-radius:22px !important; background:linear-gradient(145deg,rgba(255,255,255,.72),rgba(242,246,255,.42)) !important;
  box-shadow:0 14px 32px rgba(70,88,160,.13),inset 0 1px 0 rgba(255,255,255,.86) !important;
}
body[data-page="performance"] .login-card:hover { transform:translateY(-4px); box-shadow:0 20px 42px rgba(70,88,160,.19),inset 0 1px 0 rgba(255,255,255,.9) !important; }
body[data-page="performance"] .login-card .avatar { box-shadow:0 8px 18px rgba(87,102,201,.24),inset 0 1px 0 rgba(255,255,255,.42); }
body[data-page="performance"] .perf-tabs { gap:7px; padding:5px; border-radius:18px; background:rgba(255,255,255,.40); border:1px solid rgba(255,255,255,.72); }
body[data-page="performance"] .perf-tab { border-radius:13px !important; }
body[data-page="performance"] .perf-tab.active { background:linear-gradient(135deg,#5268dd,#9178e6) !important; box-shadow:0 7px 16px rgba(74,93,206,.24); }
body[data-page="performance"] .perf-table { overflow:hidden; border:1px solid rgba(255,255,255,.78); border-radius:18px; }
body[data-page="performance"] .salary-detail { border:1px solid rgba(255,255,255,.78); border-radius:20px; background:rgba(255,255,255,.48); box-shadow:var(--hg-shadow); }

body[data-page="leave"] .leave-page-bar { gap:12px; }
body[data-page="leave"] .leave-control-strip { padding:9px 12px; border:1px solid rgba(255,255,255,.74); border-radius:18px; background:rgba(255,255,255,.34); }
body[data-page="leave"] .overview-item { min-height:88px; display:flex; flex-direction:column; justify-content:center; }
body[data-page="leave"] .overview-value { color:#5168dc !important; font-weight:760; }
body[data-page="leave"] .calendar { border-radius:22px; overflow:auto; border:1px solid rgba(255,255,255,.78); box-shadow:var(--hg-shadow); }
body[data-page="leave"] .calendar th { background:linear-gradient(135deg,rgba(78,96,203,.92),rgba(137,115,220,.86)) !important; }
body[data-page="leave"] .leave-badge { box-shadow:0 4px 10px rgba(111,97,173,.18); }

body[data-page="daily"] .dm-toolbar { position:relative; padding:15px 18px !important; }
body[data-page="daily"] .stats-row .stat-card { min-height:72px; border-radius:18px !important; }
body[data-page="daily"] .stat-card .stat-icon { border-radius:13px; }
body[data-page="daily"] .dm-table th { letter-spacing:.15px; }
body[data-page="daily"] .dm-table tbody tr:hover td { background:rgba(235,240,255,.72) !important; }
body[data-page="daily"] .sum-row td { background:rgba(224,230,255,.72) !important; }

body[data-page="clock"] .clock-container { width:min(980px,calc(100% - 32px)); margin:0 auto; padding:34px 0 112px; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(300px,.85fr); gap:22px; }
body[data-page="clock"] .clock-card { min-height:338px; border-radius:28px !important; background:linear-gradient(145deg,rgba(255,255,255,.74),rgba(244,247,255,.42)) !important; box-shadow:0 22px 48px rgba(70,88,160,.15),inset 0 1px 0 rgba(255,255,255,.9) !important; }
body[data-page="clock"] .clock-time { color:#3e51b8 !important; letter-spacing:-1px; }
body[data-page="clock"] .btn-clock { border-radius:17px !important; background:linear-gradient(135deg,#5268dd,#9178e6) !important; box-shadow:0 12px 22px rgba(74,93,206,.25),inset 0 1px 0 rgba(255,255,255,.44); }
body[data-page="clock"] .history-card { border:1px solid rgba(255,255,255,.78); border-radius:17px !important; background:rgba(255,255,255,.48) !important; }

@media (max-width:768px) {
  body[data-page="performance"] .login-grid { width:calc(100% - 28px); grid-template-columns:repeat(2,minmax(0,1fr)); margin:22px auto 100px; gap:11px; }
  body[data-page="performance"] .login-card { min-height:122px; border-radius:19px !important; }
  body[data-page="performance"] .perf-tabs { overflow-x:auto; padding:4px; }
  body[data-page="performance"] .perf-tab { white-space:nowrap; flex:0 0 auto; }
  body[data-page="leave"] .container { padding:14px 12px 100px !important; }
  body[data-page="leave"] .overview { grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:9px !important; }
  body[data-page="leave"] .overview-item { min-height:76px; padding:11px !important; }
  body[data-page="daily"] .dm-container { padding:12px 10px 100px !important; }
  body[data-page="daily"] .stats-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px !important; }
  body[data-page="daily"] .stats-row .stat-card { min-height:65px; padding:10px !important; }
  body[data-page="clock"] .clock-container { width:100%; box-sizing:border-box; margin:0; padding:16px 13px 102px; display:block; }
  body[data-page="clock"] .clock-card { min-height:0; padding:25px 18px !important; border-radius:23px !important; }
  body[data-page="clock"] .history-title { margin-top:18px; }
}

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

/* 欢迎页：独立的高通透液态玻璃欢迎层。 */
.welcome-glass-overlay {
  position:fixed; inset:0; z-index:10000; display:flex; align-items:center; justify-content:center;
  overflow:hidden; cursor:pointer;
  background:
    radial-gradient(circle at 8% 10%, rgba(130,157,255,.72), transparent 28rem),
    radial-gradient(circle at 91% 8%, rgba(229,182,255,.65), transparent 31rem),
    radial-gradient(circle at 82% 88%, rgba(135,229,213,.60), transparent 30rem),
    radial-gradient(circle at 12% 84%, rgba(255,211,168,.52), transparent 27rem),
    linear-gradient(135deg,#DDE7FF 0%,#F9EEFF 48%,#DDF8F2 100%);
}
.welcome-glass-card {
  position:relative; width:min(410px, calc(100vw - 40px)); overflow:hidden;
  padding:46px 36px 38px; text-align:center; color:#263044; cursor:default;
  border:1px solid rgba(255,255,255,.78); border-radius:32px;
  background:linear-gradient(145deg,rgba(255,255,255,.60),rgba(255,255,255,.28));
  box-shadow:0 28px 70px rgba(61,76,133,.24), inset 0 1px 0 rgba(255,255,255,.88);
  backdrop-filter:blur(30px) saturate(155%); -webkit-backdrop-filter:blur(30px) saturate(155%);
}
.welcome-glass-card::before { content:""; position:absolute; inset:0; background:linear-gradient(135deg,rgba(255,255,255,.35),transparent 38%); pointer-events:none; }
.welcome-orb { position:absolute; border-radius:50%; filter:blur(1px); opacity:.7; pointer-events:none; }
.welcome-orb-a { width:180px; height:180px; top:-76px; left:-70px; background:radial-gradient(circle at 40% 40%,rgba(255,255,255,.9),rgba(132,153,250,.30) 46%,transparent 70%); }
.welcome-orb-b { width:170px; height:170px; right:-70px; bottom:-76px; background:radial-gradient(circle at 40% 40%,rgba(255,255,255,.9),rgba(121,220,203,.30) 46%,transparent 70%); }
.welcome-logo { position:relative; z-index:1; width:88px; height:88px; object-fit:contain; padding:10px; margin:0 auto 20px; display:block; border-radius:28px; background:rgba(255,255,255,.72); border:1px solid rgba(255,255,255,.88); box-shadow:0 12px 24px rgba(65,82,150,.17), inset 0 1px 0 #fff; }
.welcome-brand { position:relative; z-index:1; font-size:30px; line-height:1.1; font-weight:850; letter-spacing:3px; color:#293450; }
.welcome-slogan { position:relative; z-index:1; margin-top:12px; color:#596681; font-size:17px; letter-spacing:4px; font-weight:500; }
.welcome-divider { position:relative; z-index:1; width:54px; height:2px; margin:24px auto 20px; border-radius:9px; background:linear-gradient(90deg,#6679DD,#A999E9); }
.welcome-note { position:relative; z-index:1; color:#68738A; font-size:14px; letter-spacing:.8px; }
.welcome-enter { position:relative; z-index:1; width:100%; margin-top:30px; padding:14px 20px; border:1px solid rgba(255,255,255,.70); border-radius:17px; color:white; background:linear-gradient(135deg,#6477D8,#9B8CE3); box-shadow:0 14px 26px rgba(100,119,216,.30), inset 0 1px 0 rgba(255,255,255,.38); font:700 15px/1 inherit; letter-spacing:1px; cursor:pointer; transition:transform .18s ease, box-shadow .18s ease; }
.welcome-enter:hover { transform:translateY(-2px); box-shadow:0 18px 30px rgba(100,119,216,.38), inset 0 1px 0 rgba(255,255,255,.42); }
.welcome-enter span { margin-left:8px; font-size:18px; vertical-align:-1px; }
@media (max-width:480px) {
  .welcome-glass-card { width:calc(100vw - 42px); padding:40px 26px 30px; border-radius:28px; backdrop-filter:none; -webkit-backdrop-filter:none; background:rgba(255,255,255,.82); }
  .welcome-logo { width:78px; height:78px; border-radius:24px; }
  .welcome-brand { font-size:25px; letter-spacing:2.5px; }
  .welcome-slogan { font-size:15px; letter-spacing:3px; }
}

/* 手机欢迎页是独立的入场画面：整屏承载，而不是悬在背景上的半张卡片。 */
@media (max-width:768px) {
  .welcome-glass-overlay { align-items:stretch; min-height:100dvh; }
  .welcome-glass-card {
    width:100vw; min-height:100dvh; box-sizing:border-box; margin:0; padding:calc(env(safe-area-inset-top) + 82px) 32px calc(env(safe-area-inset-bottom) + 58px);
    border:0; border-radius:0; background:linear-gradient(145deg,rgba(255,255,255,.48),rgba(255,255,255,.18));
    box-shadow:none; display:flex; flex-direction:column; justify-content:center;
  }
  .welcome-logo { width:92px; height:92px; padding:11px; margin-bottom:23px; }
  .welcome-enter { margin-top:42px; min-height:58px; border-radius:20px; font-size:16px; }
}

/* 通用高通透玻璃语言 */
.header,
.view-tabs,
.card,
.calendar,
.today-leaves,
.staff-card,
.overview-item,
.modal,
.login-box,
.admin-section,
.dm-toolbar,
.table-card,
.search-box,
.login-card,
.stat-card,
.clock-card,
.history-card,
.member-detail,
.member-card,
.perf-panel,
.chart-card,
.summary-card,
#attendanceBoard {
  color: var(--hg-ink) !important;
  background: var(--hg-glass) !important;
  border: 1px solid var(--hg-line) !important;
  box-shadow: var(--hg-shadow) !important;
  backdrop-filter: blur(var(--hg-blur)) saturate(145%);
  -webkit-backdrop-filter: blur(var(--hg-blur)) saturate(145%);
}

/* 现网底部导航由 tabbar.js 注入：将其纳入玻璃风格，而不是重复创建导航。 */
#om-tabbar { background: rgba(255,255,255,.54) !important; border-top: 1px solid rgba(255,255,255,.78) !important; box-shadow: 0 -10px 28px rgba(65,82,150,.12) !important; backdrop-filter: blur(20px) saturate(150%); -webkit-backdrop-filter: blur(20px) saturate(150%); }
#om-tabbar a { color: var(--hg-muted) !important; }
#om-tabbar a[style*="color:#C9A876"] { color: var(--hg-brand) !important; }
.toast { z-index: 10002 !important; }
.lock-overlay, .modal-overlay { z-index: 10001 !important; }

.header {
  background: rgba(255, 255, 255, 0.38) !important;
  color: var(--hg-ink) !important;
  border-radius: 0 0 var(--hg-radius) var(--hg-radius);
  box-shadow: 0 10px 34px rgba(76, 90, 160, 0.12) !important;
}
.header *, .header .month-label, .header .user-selector, .header .sync-status { color: var(--hg-ink) !important; }
.month-nav, .user-selector {
  background: rgba(255, 255, 255, 0.34) !important;
  border: 1px solid rgba(255, 255, 255, 0.66) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.7);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
.month-nav button { background: rgba(255,255,255,.48) !important; color: var(--hg-ink) !important; padding:8px 16px !important; min-width:64px !important; white-space:nowrap !important; }

.btn-primary, .login-btn, .save-btn, .today-btn, .add-row button {
  background: linear-gradient(135deg, #6477D8, #9B8CE3) !important;
  color: #fff !important;
  border: 1px solid rgba(255, 255, 255, .48) !important;
  border-radius: 14px !important;
  box-shadow: 0 12px 24px rgba(100,119,216,.28), inset 0 1px 0 rgba(255,255,255,.35) !important;
}
.btn-outline, .logout-btn, .nav-btn, .unlock-btn {
  color: var(--hg-ink) !important;
  background: rgba(255,255,255,.38) !important;
  border: 1px solid rgba(255,255,255,.7) !important;
  border-radius: 13px !important;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.form-control, .login-input, .search-input, .admin-table td input, .add-account input, .date-section input {
  color: var(--hg-ink) !important;
  background: rgba(255,255,255,.50) !important;
  border: 1px solid rgba(255,255,255,.76) !important;
  border-radius: 14px !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.68);
}
.form-control:focus, .login-input:focus, .search-input:focus, .date-section input:focus {
  box-shadow: 0 0 0 4px rgba(100,119,216,.17), inset 0 1px 0 rgba(255,255,255,.8) !important;
  border-color: rgba(100,119,216,.45) !important;
}

.modal-overlay, .lock-overlay {
  background: rgba(50, 61, 116, 0.22) !important;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.modal, .lock-dialog { background: var(--hg-glass-strong) !important; border: 1px solid var(--hg-line) !important; box-shadow: var(--hg-shadow-float) !important; }

/* 门户桌面端：不再是色块磁贴，改为玻璃工作台入口。 */
.portal { max-width: 1180px !important; padding: 34px 28px 90px !important; }
.portal-header { text-align: left !important; margin-bottom: 28px !important; padding: 24px 26px !important; border-radius: var(--hg-radius) !important; background: var(--hg-glass) !important; border: 1px solid var(--hg-line) !important; box-shadow: var(--hg-shadow) !important; backdrop-filter: blur(var(--hg-blur)) saturate(145%); -webkit-backdrop-filter: blur(var(--hg-blur)) saturate(145%); }
.portal-logo { width: 56px !important; height: 56px !important; float: left; margin: 0 16px 0 0 !important; background: rgba(255,255,255,.58) !important; border: 1px solid var(--hg-line); box-shadow: none !important; }
.portal-title { font-size: 25px !important; color: var(--hg-ink) !important; letter-spacing: .5px !important; padding-top: 2px; }
.portal-subtitle { color: var(--hg-muted) !important; font-size: 13px !important; }
.portal-header::after { content: "电脑端 · 门店工作台"; display: block; clear: both; color: var(--hg-brand); font-size: 12px; margin-top: 11px; }
.top-bar { background: rgba(255,255,255,.32); border: 1px solid var(--hg-line); padding: 10px 14px !important; border-radius: 15px; margin-bottom: 18px !important; backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); }
.portal-cards { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px !important; }
.portal-group-title { grid-column: 1 / -1; color: var(--hg-muted) !important; font-size: 13px !important; padding: 5px 2px !important; margin: 12px 0 -6px !important; text-transform: none !important; letter-spacing: .3px !important; }
.portal-card, .portal-card.t-gold, .portal-card.t-green, .portal-card.t-pink, .portal-card.t-brown {
  min-height: 156px !important;
  align-items: flex-end !important;
  padding: 20px !important;
  color: var(--hg-ink) !important;
  background: linear-gradient(145deg, rgba(255,255,255,.52), rgba(255,255,255,.22)) !important;
  border: 1px solid rgba(255,255,255,.70) !important;
  border-radius: var(--hg-radius) !important;
  box-shadow: var(--hg-shadow) !important;
  backdrop-filter: blur(var(--hg-blur)) saturate(145%);
  -webkit-backdrop-filter: blur(var(--hg-blur)) saturate(145%);
}
.portal-card::before { content: ""; position: absolute; width: 96px; height: 96px; top: 12px; right: 12px; border-radius: 50%; background: radial-gradient(circle at 30% 30%, rgba(255,255,255,.90), rgba(167,180,255,.22) 45%, transparent 68%); pointer-events:none; }
.portal-card:nth-of-type(2)::before { background: radial-gradient(circle at 30% 30%, rgba(255,255,255,.9), rgba(171,229,221,.25) 45%, transparent 68%); }
.portal-card:nth-of-type(3)::before { background: radial-gradient(circle at 30% 30%, rgba(255,255,255,.9), rgba(230,179,255,.26) 45%, transparent 68%); }
.portal-card:nth-of-type(4)::before { background: radial-gradient(circle at 30% 30%, rgba(255,255,255,.9), rgba(255,212,169,.25) 45%, transparent 68%); }
.portal-card:hover { transform: translateY(-4px) !important; opacity: 1 !important; box-shadow: var(--hg-shadow-float) !important; }
.portal-card-icon { position: absolute; top: 18px; left: 18px; width: 42px !important; height: 42px !important; background: rgba(255,255,255,.48) !important; color: transparent !important; border: 1px solid rgba(255,255,255,.72); border-radius: 14px !important; font-size: 0 !important; box-shadow: inset 0 1px 0 rgba(255,255,255,.7); }
.portal-card-icon::after { content: ""; display:block; width:15px; height:15px; margin:12px; border-radius: 5px; background: linear-gradient(135deg, var(--hg-brand), var(--hg-brand-2)); }
.portal-card-title { color: var(--hg-ink) !important; font-size: 18px !important; font-weight: 720 !important; z-index:1; }
.portal-card-desc { color: var(--hg-muted) !important; z-index:1; }
.portal-card-arrow { color: var(--hg-brand) !important; z-index:1; }
#attendanceBoard { grid-column: span 2; min-height: 156px; border-left: 1px solid var(--hg-line) !important; border-radius: var(--hg-radius) !important; padding: 20px !important; }
#attendanceBoard span { color: var(--hg-ink) !important; }

/* 业务页：桌面端统一为多栏工作台，表格/数据不做过度透明。 */
.container, .dm-container, .member-app, .perf-app { max-width: 1440px !important; }
.member-app { grid-template-columns: minmax(280px, 340px) minmax(0, 1fr) !important; gap: 20px !important; }
.dm-toolbar { border-radius: var(--hg-radius) !important; padding: 14px 18px !important; }
.store-tabs, .clock-status, .stat-item { background: rgba(255,255,255,.30) !important; border: 1px solid rgba(255,255,255,.58) !important; border-radius: 13px !important; }
.store-tab { color: var(--hg-muted) !important; border-radius: 11px !important; }
.store-tab.active { color:#fff !important; background: linear-gradient(135deg,#6477D8,#9B8CE3) !important; box-shadow: 0 7px 15px rgba(100,119,216,.24) !important; }
.stats-row, .stat-grid { gap: 14px !important; }
.stat-card, .stats-row .stat-card, .stat-grid .stat-card, .stats-row .stat-card:nth-child(n), .stat-grid .stat-card:nth-child(n) { background: rgba(255,255,255,.35) !important; color: var(--hg-ink) !important; }
.stats-row .stat-card .stat-val, .stats-row .stat-card .stat-lbl, .stat-grid .stat-card .stat-num, .stat-grid .stat-card .stat-label { color: var(--hg-ink) !important; text-shadow:none !important; }
.table-card { background: rgba(255,255,255,.46) !important; border-radius: var(--hg-radius) !important; }
table th, .dm-table th { background: rgba(77, 91, 157, .72) !important; backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); }
table td, .dm-table td { background: rgba(255,255,255,.55) !important; }
table tr:nth-child(even) td { background: rgba(255,255,255,.40) !important; }

/* 电脑端：固定侧边玻璃导航。手机端不显示此结构。 */
.desktop-glass-rail { display:none; }
@media (min-width: 769px) {
  .desktop-glass-rail { display:flex; position:fixed; z-index:9000; left:22px; top:50%; transform:translateY(-50%); width:76px; padding:13px 8px; flex-direction:column; gap:8px; border-radius:26px; background:rgba(255,255,255,.42); border:1px solid rgba(255,255,255,.72); box-shadow:var(--hg-shadow); backdrop-filter:blur(24px) saturate(150%); -webkit-backdrop-filter:blur(24px) saturate(150%); }
  .desktop-glass-rail .rail-brand { width:40px; height:40px; margin:0 auto 6px; border-radius:15px; background:linear-gradient(135deg,#6477D8,#9B8CE3); box-shadow:0 8px 16px rgba(100,119,216,.28); }
  .desktop-glass-rail a { width:58px; min-height:50px; padding:7px 2px; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:4px; border-radius:16px; color:var(--hg-muted); font-size:10px; text-decoration:none; transition:.2s ease; }
  .desktop-glass-rail a::before { content:""; width:17px; height:17px; border-radius:6px; background:rgba(100,119,216,.20); }
  .desktop-glass-rail a:hover, .desktop-glass-rail a.active { color:var(--hg-brand); background:rgba(255,255,255,.52); box-shadow:inset 0 1px 0 rgba(255,255,255,.7); }
  .desktop-glass-rail a.active::before { background:linear-gradient(135deg,#6477D8,#9B8CE3); box-shadow:0 4px 9px rgba(100,119,216,.24); }
  .desktop-glass-rail ~ .portal, .desktop-glass-rail ~ .container, .desktop-glass-rail ~ .dm-container, .desktop-glass-rail ~ .member-app, .desktop-glass-rail ~ .perf-app, .desktop-glass-rail ~ .clock-container, .desktop-glass-rail ~ #app .container, .desktop-glass-rail ~ #perfApp .perf-app { width:calc(100% - 128px) !important; margin-left:112px !important; margin-right:16px !important; }
  .desktop-glass-rail ~ .header { width:calc(100% - 128px) !important; margin-left:112px !important; margin-right:16px !important; }
  .desktop-glass-rail ~ #app .container, .desktop-glass-rail ~ #perfApp .perf-app { max-width:none !important; }
  .desktop-glass-rail ~ .member-app, .desktop-glass-rail ~ #perfApp .perf-app, .desktop-glass-rail ~ #app .container { margin-top:16px !important; }
  /* 日报桌面工作区：不限制为居中窄栏，铺满左侧导航后的有效桌面宽度。 */
  .desktop-glass-rail ~ .dm-container { width:calc(100vw - 132px) !important; max-width:none !important; margin:16px 16px 16px 112px !important; padding:0 !important; }
  .desktop-glass-rail ~ .dm-container .dm-toolbar, .desktop-glass-rail ~ .dm-container .stats-row, .desktop-glass-rail ~ .dm-container .desktop-daily { width:100% !important; }
  .desktop-glass-rail ~ .dm-container .table-card { width:100% !important; }
}

/* 手机：不复用桌面网格。改为单列、底部玻璃导航、紧凑工具栏。 */
.mobile-glass-nav { display: none; }

@media (max-width: 768px) {
  :root { --hg-blur: 18px; --hg-radius: 19px; }
  body { background-attachment: scroll !important; }
  .portal { padding: 18px 14px 110px !important; }
  .container, .dm-container, .member-app, .perf-app, .clock-container { padding-bottom: 96px !important; }
  .portal-header { text-align: center !important; padding: 21px 16px !important; margin-bottom: 16px !important; }
  .portal-logo { float:none; display:block; margin:0 auto 9px !important; width:52px !important; height:52px !important; }
  .portal-title { font-size:21px !important; }
  .portal-header::after { content:"手机端 · 快捷入口"; margin-top:7px; }
  .portal-cards { grid-template-columns: 1fr 1fr !important; gap: 10px !important; }
  .portal-group-title { margin: 10px 2px -2px !important; }
  .portal-card, .portal-card.t-gold, .portal-card.t-green, .portal-card.t-pink, .portal-card.t-brown { min-height: 122px !important; padding: 15px !important; border-radius: 18px !important; }
  .portal-card:nth-child(2) { grid-column: span 2; min-height: 106px !important; }
  .portal-card-icon { top: 13px; left:13px; width:36px !important; height:36px !important; }
  .portal-card-icon::after { width:13px; height:13px; margin:10px; border-radius:4px; }
  .portal-card-title { font-size:15px !important; }
  .portal-card::before { transform: scale(.72); transform-origin: top right; }
  #attendanceBoard { grid-column: span 2; min-height: auto; padding: 15px !important; border-radius:18px !important; }

  .header { border-radius: 0 0 18px 18px; }
  .header-content { flex-wrap:wrap; }
  .member-app { display:block !important; padding: 12px !important; }
  .member-app > * { margin-bottom:12px; }
  .container, .dm-container, .perf-app { padding: 12px !important; }
  .dm-toolbar { gap:8px; padding:12px !important; }
  .date-section { order: 2; width:100%; margin-left:0 !important; justify-content:space-between; }
  .date-section input { flex:1; }
  .stats-row { display:grid !important; grid-template-columns:1fr 1fr !important; gap:10px !important; }
  .stat-grid { grid-template-columns:1fr 1fr !important; gap:10px !important; }
  .stat-card { min-width:0; padding:12px !important; border-radius:16px !important; }
  .table-card { border-radius:18px !important; max-height: none !important; }
  .clock-container { padding:14px !important; }
  .clock-card { padding:22px 16px !important; border-radius:20px !important; }
  .clock-time { font-size:42px !important; }

  .mobile-glass-nav { display:flex; position:fixed; left:14px; right:14px; bottom: max(12px, env(safe-area-inset-bottom)); height:64px; align-items:center; justify-content:space-around; border-radius:22px; background:rgba(255,255,255,.54); border:1px solid rgba(255,255,255,.78); box-shadow:var(--hg-shadow-float); backdrop-filter:blur(20px) saturate(150%); -webkit-backdrop-filter:blur(20px) saturate(150%); z-index:8000; }
  .mobile-glass-nav a { font-size:10px; color:var(--hg-muted); text-decoration:none; text-align:center; min-width:48px; }
  .mobile-glass-nav a::before { content:""; display:block; margin:0 auto 4px; width:17px; height:17px; border-radius:6px; background:rgba(100,119,216,.28); }
  .mobile-glass-nav a.active { color:var(--hg-brand); font-weight:700; }
  .mobile-glass-nav a.active::before { background:linear-gradient(135deg,#6477D8,#9B8CE3); box-shadow:0 4px 8px rgba(100,119,216,.27); }
}

@media (max-width: 480px) {
  :root { --hg-blur: 0px; }
  .header, .view-tabs, .card, .calendar, .today-leaves, .staff-card, .overview-item, .modal, .login-box, .admin-section, .dm-toolbar, .table-card, .search-box, .login-card, .stat-card, .clock-card, .history-card, .member-detail, .member-card, .perf-panel, .chart-card, .summary-card, #attendanceBoard, .portal-card, .portal-header, .top-bar {
    backdrop-filter:none !important; -webkit-backdrop-filter:none !important; background:rgba(255,255,255,.76) !important;
  }
  .portal-card::before { opacity:.5; }
  .mobile-glass-nav { backdrop-filter:none; -webkit-backdrop-filter:none; background:rgba(255,255,255,.88); }
}

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .header, .view-tabs, .card, .calendar, .today-leaves, .staff-card, .overview-item, .modal, .login-box, .admin-section, .dm-toolbar, .table-card, .search-box, .login-card, .stat-card, .clock-card, .history-card, .member-detail, .member-card, .perf-panel, .chart-card, .summary-card, #attendanceBoard, .portal-card, .portal-header, .top-bar { background:rgba(255,255,255,.88) !important; }
}

/* 日报手机端卡片录入：保留卡片模式，避免回退到横向 22 列工作台。 */
.mobile-record-card, .mobile-add-row, .mobile-editor, .mobile-field-group { border-color: rgba(255,255,255,.72) !important; box-shadow: 0 10px 26px rgba(65,82,150,.11); }
.mobile-record-card, .mobile-add-row, .mobile-field-group { background: rgba(255,255,255,.50) !important; backdrop-filter: blur(16px) saturate(140%); -webkit-backdrop-filter: blur(16px) saturate(140%); }
.mobile-editor { background: rgba(239,244,255,.88) !important; border: 1px solid rgba(255,255,255,.80); backdrop-filter: blur(28px) saturate(145%); -webkit-backdrop-filter: blur(28px) saturate(145%); }
.mobile-add-row, .mobile-done { background: linear-gradient(135deg,#6477D8,#9B8CE3) !important; color: #fff !important; }
.mobile-editor-mask { background: rgba(50,61,116,.26) !important; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.mobile-field input, .mobile-field select { border-color: rgba(255,255,255,.78) !important; background: rgba(255,255,255,.60) !important; }
@media (max-width:480px) {
  .mobile-record-card, .mobile-add-row, .mobile-field-group, .mobile-editor { backdrop-filter:none !important; -webkit-backdrop-filter:none !important; background:rgba(255,255,255,.84) !important; }
}

/* 首页门店通知：置于考勤展板上方，所有伙伴均可看到最新一条通知。 */
.notice-board {
  position:relative;
  overflow:hidden;
  margin:0 0 18px;
  padding:18px 20px;
  color:#263044;
  border:1px solid rgba(255,255,255,.80);
  border-radius:22px;
  background:linear-gradient(145deg,rgba(255,255,255,.62),rgba(255,255,255,.28));
  box-shadow:0 16px 38px rgba(61,76,133,.15), inset 0 1px 0 rgba(255,255,255,.84);
  backdrop-filter:blur(27px) saturate(155%);
  -webkit-backdrop-filter:blur(27px) saturate(155%);
}
.notice-board::before {
  content:"";
  position:absolute;
  width:210px;
  height:210px;
  top:-118px;
  right:-78px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.90) 0,rgba(160,146,235,.28) 35%,transparent 70%);
  pointer-events:none;
}
.notice-board::after {
  content:"";
  position:absolute;
  width:145px;
  height:145px;
  left:-58px;
  bottom:-104px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.74) 0,rgba(129,218,204,.22) 38%,transparent 70%);
  pointer-events:none;
}
.notice-board-head { position:relative; z-index:1; display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:13px; }
.notice-board-title-wrap { display:flex; align-items:center; gap:10px; }
.notice-bell { display:grid; place-items:center; flex:0 0 auto; width:40px; height:40px; border:1px solid rgba(255,255,255,.82); border-radius:14px; color:#fff; background:linear-gradient(135deg,#6477D8,#9B8CE3); box-shadow:0 8px 17px rgba(100,119,216,.28), inset 0 1px 0 rgba(255,255,255,.42); }
.notice-bell svg { width:20px; height:20px; }
.notice-eyebrow { color:#6477D8; font-size:10px; font-weight:800; letter-spacing:1.2px; line-height:1.1; }
.notice-title { margin-top:3px; color:#2D3A54; font-size:18px; font-weight:780; line-height:1.1; }
.notice-board-actions { display:flex; align-items:center; gap:9px; }
.notice-live { display:inline-flex; align-items:center; gap:5px; padding:6px 9px; border:1px solid rgba(255,255,255,.68); border-radius:999px; color:#5F6D85; background:rgba(255,255,255,.38); font-size:11px; font-weight:650; white-space:nowrap; }
.notice-live i { width:6px; height:6px; border-radius:50%; background:#72C9B5; box-shadow:0 0 0 3px rgba(114,201,181,.16); }
.notice-compose-toggle { min-height:31px; padding:0 11px; border:1px solid rgba(255,255,255,.76); border-radius:11px; color:#fff; background:linear-gradient(135deg,#6477D8,#9B8CE3); box-shadow:0 7px 14px rgba(100,119,216,.21); font:700 12px/1 inherit; cursor:pointer; }
.notice-board-content { position:relative; z-index:1; }
.notice-message { padding:12px 14px; border:1px solid rgba(255,255,255,.66); border-radius:15px; background:rgba(255,255,255,.30); box-shadow:inset 0 1px 0 rgba(255,255,255,.65); }
.notice-message-content { color:#35425C; font-size:14px; font-weight:560; line-height:1.7; word-break:break-word; }
.notice-message-meta { display:flex; gap:10px; margin-top:8px; color:#748199; font-size:11px; }
.notice-message-meta span + span::before { content:"·"; margin-right:10px; color:#A4AEC0; }
.notice-receipt { display:flex; align-items:center; justify-content:flex-end; min-height:30px; margin-top:9px; }
.notice-receive-btn { min-height:29px; padding:0 12px; border:1px solid rgba(100,119,216,.24); border-radius:999px; color:#5166C6; background:rgba(255,255,255,.58); box-shadow:inset 0 1px 0 rgba(255,255,255,.88),0 4px 10px rgba(100,119,216,.10); font:750 12px/1 inherit; cursor:pointer; }
.notice-receive-btn:active { transform:scale(.96); }
.notice-received { padding:6px 10px; border-radius:999px; color:#4F9B86; background:rgba(111,201,181,.13); font-size:11px; font-weight:750; }
.notice-receipt-admin { justify-content:flex-start; gap:8px; flex-wrap:wrap; padding-top:8px; border-top:1px solid rgba(100,119,216,.10); }
.notice-receipt-count { padding:5px 8px; border-radius:999px; color:#5668B4; background:rgba(100,119,216,.10); font-size:11px; font-weight:760; }
.notice-receipt-names { color:#718099; font-size:11px; line-height:1.5; }
.notice-receipt-names.is-empty { color:#A5AEBB; }
.notice-empty { display:flex; align-items:center; justify-content:center; min-height:42px; gap:8px; color:#748199; font-size:13px; }
.notice-empty-icon { display:grid; place-items:center; width:28px; height:28px; border-radius:10px; color:#6477D8; background:rgba(255,255,255,.50); font-size:10px; font-weight:750; }
.notice-admin-panel { position:relative; z-index:1; margin-top:12px; padding-top:13px; border-top:1px solid rgba(255,255,255,.58); }
.notice-admin-caption { margin:0 0 7px; color:#5B6982; font-size:12px; font-weight:720; }
.notice-admin-panel textarea { display:block; box-sizing:border-box; width:100%; min-height:76px; resize:vertical; padding:11px 12px; border:1px solid rgba(255,255,255,.78); border-radius:13px; outline:none; color:#33415C; background:rgba(255,255,255,.45); box-shadow:inset 0 1px 0 rgba(255,255,255,.74); font:13px/1.6 inherit; }
.notice-admin-panel textarea:focus { border-color:rgba(100,119,216,.48); box-shadow:0 0 0 3px rgba(100,119,216,.14), inset 0 1px 0 rgba(255,255,255,.78); }
.notice-admin-actions { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:8px; color:#77839A; font-size:11px; }
.notice-publish-btn { min-height:36px; padding:0 14px; border:1px solid rgba(255,255,255,.72); border-radius:12px; color:#fff; background:linear-gradient(135deg,#6477D8,#9B8CE3); box-shadow:0 8px 16px rgba(100,119,216,.22); font:700 13px/1 inherit; cursor:pointer; }
.notice-push-option { display:inline-flex; align-items:center; gap:5px; min-height:32px; padding:0 9px; border:1px solid rgba(105,126,216,.18); border-radius:11px; color:#5D6D8D; background:rgba(255,255,255,.42); font-size:11px; white-space:nowrap; }
.notice-push-option input { width:15px; height:15px; accent-color:#687BD8; }

/* Receipt state shares a compact footer with the publish metadata. */
.notice-message { padding-bottom:10px; }
.notice-message-content { line-height:1.58; }
.notice-message-footer { display:flex; align-items:center; gap:8px; min-height:16px; margin-top:7px; }
.notice-message-meta { display:inline-flex !important; align-items:center; gap:10px; flex:0 1 auto; margin:0 !important; color:#748199; font-size:11px; white-space:nowrap; }
.notice-receipt { display:inline-flex !important; align-items:center; min-height:0 !important; margin:0 0 0 auto !important; vertical-align:middle; color:#748199 !important; font-size:11px !important; font-weight:400 !important; line-height:1.3 !important; white-space:nowrap; }
.notice-received { display:inline !important; padding:0 !important; border:0 !important; border-radius:0 !important; background:transparent !important; color:#748199 !important; font-size:11px !important; font-weight:400 !important; line-height:1.3 !important; white-space:nowrap; box-shadow:none !important; }
.notice-message-footer .notice-receipt-admin { width:100%; margin:0 !important; padding-top:6px; }
.notice-history { display:grid; gap:7px; margin-top:12px; }
.notice-history-item { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:10px 11px; border:1px solid rgba(255,255,255,.54); border-radius:12px; background:rgba(255,255,255,.22); }
.notice-history-time { margin-bottom:3px; color:#7A879D; font-size:10px; }
.notice-history-content { color:#4B5870; font-size:12px; line-height:1.55; word-break:break-word; }
.notice-history-item button { flex:0 0 auto; padding:3px 7px; border:0; border-radius:8px; color:#B45E69; background:rgba(224,133,145,.13); font-size:11px; cursor:pointer; }
.notice-history-empty { padding:8px; color:#7A879D; font-size:12px; text-align:center; }

/* Confirmed daily performance is server-locked; make the same state unambiguous in the admin grid. */
.perf-row-locked { background:rgba(81,151,126,.08) !important; }
.perf-row-locked input,
.perf-row-locked select { pointer-events:none; opacity:.48; filter:saturate(.7); }

/* 会员、业绩与休假：移除重复页面标题，把操作收进内容区，留给数据更大的显示面积。 */
.leave-page-bar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin:0 0 12px;
}
.leave-page-bar .view-tabs {
  display:flex;
  align-items:stretch;
  gap:6px;
  padding:5px;
  margin:0 !important;
  flex:0 0 auto;
  border:1px solid rgba(255,255,255,.72);
  border-radius:16px;
  background:rgba(255,255,255,.32);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.76), 0 8px 18px rgba(61,76,133,.08);
  backdrop-filter:blur(18px) saturate(145%);
  -webkit-backdrop-filter:blur(18px) saturate(145%);
}
.leave-page-bar .view-tab {
  min-width:126px;
  min-height:38px;
  padding:0 16px;
  border:1px solid transparent !important;
  border-radius:11px !important;
  color:#65728A !important;
  background:transparent !important;
  box-shadow:none !important;
  font:700 14px/38px inherit;
  transition:color .18s ease, background .18s ease, box-shadow .18s ease, transform .18s ease;
}
.leave-page-bar .view-tab.active {
  color:#fff !important;
  background:linear-gradient(135deg,#6477D8,#9B8CE3) !important;
  border-color:rgba(255,255,255,.62) !important;
  box-shadow:0 8px 17px rgba(100,119,216,.28), inset 0 1px 0 rgba(255,255,255,.38) !important;
}
.leave-page-bar .view-tab:not(.active):hover { color:#465572 !important; background:rgba(255,255,255,.48) !important; transform:translateY(-1px); }
.leave-control-strip {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
  margin:0;
}
.leave-control-strip .month-nav {
  display:flex;
  align-items:center;
  gap:6px;
  padding:5px;
  border-radius:14px;
}
.leave-control-strip .month-nav button {
  width:30px;
  height:30px;
  padding:0;
  border:0;
  border-radius:9px;
  cursor:pointer;
  font-size:17px;
  line-height:1;
}
.leave-control-strip .month-nav .leave-today-btn {
  width:auto;
  padding:0 10px;
  font-size:12px;
  font-weight:650;
}
.leave-control-strip .month-label {
  min-width:86px;
  text-align:center;
  color:var(--hg-ink) !important;
  font-size:13px;
  font-weight:750;
}
.leave-control-strip .user-selector,
.leave-user-chip,
.leave-sync-chip {
  min-height:40px;
  box-sizing:border-box;
  padding:0 12px;
  border-radius:13px;
  color:var(--hg-ink) !important;
  background:rgba(255,255,255,.42) !important;
  border:1px solid rgba(255,255,255,.70) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.68);
  font:600 13px/38px inherit;
}
.leave-control-strip select.user-selector { line-height:normal; cursor:pointer; }
.leave-sync-chip { display:inline-flex; align-items:center; color:#427A70 !important; }
.leave-sync-chip::before { content:""; width:7px; height:7px; margin-right:6px; border-radius:50%; background:#71BFAE; box-shadow:0 0 0 3px rgba(113,191,174,.16); }

/* 会员页：独立的高通透档案工作台。 */
.member-glass-app {
  align-items:start;
  gap:18px !important;
}
.member-sidebar { min-width:0; }
.member-search-card,
.member-result-card,
.member-detail-panel .detail-card,
.member-detail-panel .chart-card {
  position:relative;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.72) !important;
  background:linear-gradient(145deg,rgba(255,255,255,.60),rgba(255,255,255,.26)) !important;
  box-shadow:0 16px 38px rgba(61,76,133,.14), inset 0 1px 0 rgba(255,255,255,.78) !important;
  backdrop-filter:blur(25px) saturate(155%);
  -webkit-backdrop-filter:blur(25px) saturate(155%);
}
.member-search-card::before,
.member-detail-panel .detail-card::before,
.member-detail-panel .chart-card::before {
  content:"";
  position:absolute;
  top:-75px;
  right:-62px;
  width:172px;
  height:172px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.84) 0,rgba(151,171,255,.24) 37%,transparent 70%);
  pointer-events:none;
}
.member-search-card { padding:18px !important; border-radius:22px !important; }
.member-search-label { position:relative; z-index:1; display:flex; align-items:center; gap:8px; margin:0 0 12px; color:#33415E; font-size:14px; font-weight:780; letter-spacing:.3px; }
.member-search-orb { width:10px; height:10px; border-radius:4px; background:linear-gradient(135deg,#6477D8,#A394E8); box-shadow:0 3px 8px rgba(100,119,216,.32); }
.member-search-card .search-input { position:relative; z-index:1; min-height:46px; border:1px solid rgba(255,255,255,.82) !important; background:rgba(255,255,255,.54) !important; box-shadow:inset 0 1px 0 rgba(255,255,255,.86); }
.member-search-card .search-hint { position:relative; z-index:1; margin-top:7px; color:#65728A !important; }
.member-search-card .type-tabs { position:relative; z-index:1; gap:7px; margin-top:14px; }
.member-search-card .type-tab { min-height:36px; display:flex; align-items:center; justify-content:center; border:1px solid rgba(255,255,255,.72) !important; background:rgba(255,255,255,.40) !important; color:#5D6B84 !important; border-radius:11px !important; font-weight:650; }
.member-search-card .type-tab.active { color:#fff !important; border-color:rgba(255,255,255,.64) !important; background:linear-gradient(135deg,#6477D8,#9B8CE3) !important; box-shadow:0 8px 16px rgba(100,119,216,.25); }
.member-search-card .dm-btn-add { position:relative; z-index:1; min-height:42px; border:1px solid rgba(255,255,255,.62) !important; border-radius:13px !important; background:linear-gradient(135deg,#6477D8,#9B8CE3) !important; box-shadow:0 10px 20px rgba(100,119,216,.25), inset 0 1px 0 rgba(255,255,255,.35); }
.member-result-card { border-radius:22px !important; }
.member-result-card .result-header { padding:13px 16px; border-bottom:1px solid rgba(255,255,255,.60) !important; color:#53617B !important; font-weight:700; }
.member-result-dot { display:inline-block; width:8px; height:8px; margin:0 7px 1px 0; border-radius:50%; background:#8BD1C2; box-shadow:0 0 0 3px rgba(139,209,194,.16); vertical-align:middle; }
.member-result-card .result-count { padding:3px 8px; border-radius:999px; color:#53617B !important; background:rgba(255,255,255,.50); }
.member-result-card .result-list { scrollbar-color:rgba(100,119,216,.35) transparent; scrollbar-width:thin; }
.member-result-card .member-item { min-height:56px; padding:11px 14px; border-bottom:1px solid rgba(255,255,255,.52) !important; background:rgba(255,255,255,.17); }
.member-result-card .member-item:hover { background:rgba(255,255,255,.52) !important; transform:translateX(2px); }
.member-result-card .member-item.active { border-left-color:#6477D8 !important; background:rgba(100,119,216,.12) !important; }
.member-result-card .member-info .name { color:#34415A; }
.member-result-card .member-info .meta,
.member-result-card .member-status .label { color:#748097 !important; }
.member-result-card .member-status .num { color:#6477D8 !important; }
.member-result-card .member-badge { border:1px solid rgba(255,255,255,.72); box-shadow:inset 0 1px 0 rgba(255,255,255,.76); }
.member-detail-panel { gap:16px !important; }
.member-detail-panel .detail-card,
.member-detail-panel .chart-card { padding:20px !important; border-radius:22px !important; }
.member-detail-panel .detail-empty { position:relative; z-index:1; min-height:260px; display:flex; flex-direction:column; align-items:center; justify-content:center; color:#63708A !important; }
.member-empty-orb { display:grid; place-items:center; width:58px; height:58px; margin:0 auto 14px; border:1px solid rgba(255,255,255,.82); border-radius:20px; color:#6477D8; background:rgba(255,255,255,.48); box-shadow:0 10px 20px rgba(83,100,170,.13), inset 0 1px 0 #fff; font-size:13px; font-weight:800; }
.member-detail-panel .member-header { position:relative; z-index:1; border-bottom-color:rgba(255,255,255,.65) !important; }
.member-detail-panel .member-header-left .name { color:#2E3B55; }
.member-detail-panel .section-title { position:relative; z-index:1; display:inline-block; padding:7px 11px; border:1px solid rgba(255,255,255,.72); border-radius:11px; background:linear-gradient(135deg,#6477D8,#9B8CE3) !important; box-shadow:0 7px 14px rgba(100,119,216,.20); }
.member-detail-panel .info-grid,
.member-detail-panel .progress-wrap,
.member-detail-panel .chart-title,
.member-detail-panel .stat-row,
.member-detail-panel .records-table { position:relative; z-index:1; }
.member-detail-panel .info-item { padding:10px; border:1px solid rgba(255,255,255,.58); border-radius:13px; background:rgba(255,255,255,.26); }
.member-detail-panel .info-item .label { color:#78849A !important; }
.member-detail-panel .info-item .value { color:#35415A; }
.member-detail-panel .chart-title { color:#35415A !important; }
.member-detail-panel .chart-title::before { background:linear-gradient(#6477D8,#9B8CE3) !important; }
.member-detail-panel .stat-box,
.member-detail-panel .freq-item { border:1px solid rgba(255,255,255,.58); background:rgba(255,255,255,.29) !important; box-shadow:inset 0 1px 0 rgba(255,255,255,.62); }
.member-detail-panel .records-table { overflow:hidden; border:1px solid rgba(255,255,255,.55); border-radius:13px; }
.member-detail-panel .records-table th { color:#52607A !important; background:rgba(255,255,255,.44) !important; }
.member-detail-panel .records-table td { background:rgba(255,255,255,.22) !important; border-bottom-color:rgba(255,255,255,.5) !important; }

/* 会员分类列表：用独立玻璃层承载每个类别，避免原米色条状底纹与整体主题割裂。 */
/* 日报桌面表格：从传统白色网格升级为连续的液态玻璃工作台。 */
body[data-page="daily"] .table-card {
  position:relative;
  overflow:auto;
  border:1px solid rgba(255,255,255,.84) !important;
  border-radius:22px !important;
  background:linear-gradient(145deg,rgba(255,255,255,.60),rgba(255,255,255,.26)) !important;
  box-shadow:0 18px 40px rgba(61,76,133,.16), inset 0 1px 0 rgba(255,255,255,.88) !important;
  backdrop-filter:blur(26px) saturate(155%);
  -webkit-backdrop-filter:blur(26px) saturate(155%);
}
body[data-page="daily"] .table-card::before {
  content:"";
  position:absolute;
  z-index:0;
  top:-100px;
  right:-70px;
  width:260px;
  height:260px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.88),rgba(150,170,255,.22) 42%,transparent 71%);
  pointer-events:none;
}
body[data-page="daily"] .table-card::after {
  z-index:20;
  width:30px;
  background:linear-gradient(90deg,transparent,rgba(226,235,255,.72)) !important;
}
body[data-page="daily"] .dm-table { position:relative; z-index:1; }
body[data-page="daily"] .dm-table th {
  color:#fff !important;
  background:linear-gradient(135deg,rgba(93,111,197,.93),rgba(139,125,213,.88)) !important;
  border-right-color:rgba(255,255,255,.26) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.30);
}
body[data-page="daily"] .dm-table th.group-start { border-left-color:rgba(255,255,255,.72) !important; }
body[data-page="daily"] .dm-table td {
  color:#34415A !important;
  border-bottom-color:rgba(255,255,255,.54) !important;
  border-right-color:rgba(255,255,255,.40) !important;
  background:rgba(255,255,255,.30) !important;
}
body[data-page="daily"] .dm-table tbody tr:nth-child(even) td { background:rgba(247,249,255,.42) !important; }
body[data-page="daily"] .dm-table tbody tr:hover td { background:rgba(255,255,255,.64) !important; }
body[data-page="daily"] .dm-table .sticky-col { background:rgba(249,251,255,.70) !important; }
body[data-page="daily"] .dm-table tr:hover .sticky-col { background:rgba(255,255,255,.80) !important; }
body[data-page="daily"] .dm-table th.sticky-col { background:linear-gradient(135deg,rgba(93,111,197,.96),rgba(139,125,213,.93)) !important; }
body[data-page="daily"] .dm-table .sticky-customer { box-shadow:4px 0 11px rgba(82,98,170,.12); }
body[data-page="daily"] .dm-table td input,
body[data-page="daily"] .dm-table td select { color:#33415C !important; background:transparent !important; }
body[data-page="daily"] .dm-table td input:focus,
body[data-page="daily"] .dm-table td select:focus { background:rgba(100,119,216,.12) !important; box-shadow:inset 0 0 0 1px rgba(100,119,216,.32); }
body[data-page="daily"] .dm-table .sum-row,
body[data-page="daily"] .dm-table .sum-row td { color:#5361A8 !important; background:rgba(232,237,255,.68) !important; border-top-color:rgba(100,119,216,.50) !important; }
body[data-page="daily"] .dm-table .add-row,
body[data-page="daily"] .dm-table .add-row td { background:rgba(255,255,255,.40) !important; }

/* 打卡：上下班按钮使用同一套柔和玻璃操作语言，保留状态辨识但去除生硬色块。 */
body[data-page="clock"] .btn-clock {
  position:relative;
  overflow:hidden;
  min-height:60px;
  border:1px solid rgba(255,255,255,.78) !important;
  color:#fff !important;
  box-shadow:0 14px 28px rgba(80,96,180,.21), inset 0 1px 0 rgba(255,255,255,.44) !important;
  backdrop-filter:blur(18px) saturate(150%);
  -webkit-backdrop-filter:blur(18px) saturate(150%);
}
body[data-page="clock"] .btn-clock::before { content:""; position:absolute; width:180px; height:100px; top:-64px; left:-34px; border-radius:50%; background:radial-gradient(circle,rgba(255,255,255,.58),transparent 68%); pointer-events:none; }
body[data-page="clock"] .btn-clock-in { background:linear-gradient(135deg,rgba(100,119,216,.94),rgba(155,140,227,.90)) !important; }
body[data-page="clock"] .btn-clock-out { background:linear-gradient(135deg,rgba(91,183,169,.90),rgba(104,151,218,.90)) !important; }
body[data-page="clock"] .btn-clock:hover { transform:translateY(-2px); box-shadow:0 18px 32px rgba(80,96,180,.28), inset 0 1px 0 rgba(255,255,255,.50) !important; }
body[data-page="clock"] .btn-clock:disabled { background:rgba(137,147,174,.46) !important; color:rgba(255,255,255,.76) !important; box-shadow:none !important; }

.member-detail-panel .member-category-card {
  padding:15px 16px !important;
  border-color:rgba(255,255,255,.78) !important;
  background:linear-gradient(145deg,rgba(255,255,255,.64),rgba(248,250,255,.30)) !important;
  box-shadow:0 14px 30px rgba(61,76,133,.11), inset 0 1px 0 rgba(255,255,255,.88) !important;
}
.member-category-card .card-header {
  position:relative;
  z-index:1;
  margin-bottom:10px;
  padding-bottom:10px;
  border-bottom:1px solid rgba(255,255,255,.66);
}
.member-category-card .card-count { color:#748097 !important; font-size:12px; }
.member-category-card .member-quick-list { position:relative; z-index:1; gap:7px; }
.member-category-card .member-quick-item {
  min-height:38px;
  padding:9px 12px;
  border:1px solid rgba(255,255,255,.72);
  border-radius:12px;
  color:#39465F !important;
  background:rgba(255,255,255,.38) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.74);
}
.member-category-card .member-quick-item:nth-child(odd) { background:rgba(255,255,255,.48) !important; }
.member-category-card .member-quick-item:hover {
  color:#33415E !important;
  background:rgba(255,255,255,.76) !important;
  box-shadow:0 7px 16px rgba(61,76,133,.12), inset 0 1px 0 rgba(255,255,255,.90);
  transform:translateY(-1px);
}
.member-category-card .member-quick-no { color:#758199 !important; }
.member-category-card .member-quick-more {
  color:#6477D8 !important;
  border-top-color:rgba(100,119,216,.18) !important;
}

@media (min-width:769px) {
  body[data-page="member"] .member-app,
  body[data-page="perf"] .perf-app { margin-top:24px !important; }
  body[data-page="leave"] #app .container { margin-top:24px !important; }
  body[data-page="leave"] .leave-control-strip { min-height:42px; }
  .member-glass-app .member-sidebar { position:sticky; top:18px; max-height:calc(100vh - 154px); overflow:auto; padding-right:3px; }
  .member-glass-app .result-list { max-height:calc(100vh - 390px); }
}

@media (max-width:768px) {
  .notice-board { margin:0 0 12px; padding:15px; border-radius:19px; }
  .notice-board-head { align-items:center; margin-bottom:10px; }
  .notice-bell { width:36px; height:36px; border-radius:13px; }
  .notice-bell svg { width:18px; height:18px; }
  .notice-title { font-size:16px; }
  .notice-live { padding:5px 7px; font-size:10px; }
  .notice-compose-toggle { min-height:30px; padding:0 9px; font-size:11px; }
  .notice-message { padding:11px 12px; border-radius:13px; }
  .notice-message-content { font-size:13px; }
  .notice-admin-actions { align-items:flex-start; flex-direction:column; }
  .member-glass-app { display:flex !important; flex-direction:column; gap:12px !important; padding:12px !important; }
  .member-glass-app .member-sidebar { display:contents; }
  .member-glass-app .member-search-card { order:1; margin:0 !important; padding:15px !important; border-radius:19px !important; }
  .member-glass-app .member-result-card { order:2; margin:0 !important; border-radius:19px !important; }
  .member-glass-app .member-detail-panel { order:3; }
  .member-glass-app .detail-card,
  .member-glass-app .chart-card { padding:15px !important; border-radius:19px !important; }
  .member-glass-app .result-list { max-height:42vh; }
  .member-glass-app .member-item { min-height:62px; padding:12px 13px; }
  .member-glass-app .member-search-card::before,
  .member-glass-app .member-detail-panel .detail-card::before,
  .member-glass-app .member-detail-panel .chart-card::before { opacity:.68; transform:scale(.75); transform-origin:top right; }
  /* 手机只保留检索与查询结果；会员档案与桌面分类列表不在窄屏重复呈现。 */
  body[data-page="member"] .member-glass-app {
    width:calc(100% - 24px) !important;
    max-width:560px !important;
    margin:0 auto !important;
    padding:12px 0 96px !important;
    align-items:stretch !important;
  }
  body[data-page="member"] .member-glass-app .member-search-card,
  body[data-page="member"] .member-glass-app .member-result-card {
    width:100% !important;
    box-sizing:border-box;
  }
  body[data-page="member"] .member-glass-app .member-detail-panel { display:none !important; }
  body[data-page="member"] .member-glass-app .member-search-card { padding:16px !important; }
  body[data-page="member"] .member-glass-app .member-result-card { min-height:0; }
  body[data-page="member"] .member-glass-app .result-list { max-height:calc(100vh - 350px); min-height:190px; }
  body[data-page="member"] .member-glass-app .member-item { min-height:64px; padding:13px 14px; }
  .leave-page-bar { display:block; margin:0 0 10px; }
  .leave-page-bar .view-tabs { margin:0 0 8px !important; }
  .leave-control-strip { justify-content:flex-start; gap:8px; margin:0; }
  .leave-control-strip .month-nav { width:100%; justify-content:space-between; }
  .leave-control-strip .user-selector,
  .leave-user-chip { flex:1 1 180px; }
  .leave-sync-chip { min-height:36px; font-size:12px; line-height:34px; }
}

/* 桌面端：macOS 风格底部 Dock。全站使用同一套六项导航，不再显示左侧导航轨道。 */
.desktop-glass-rail { display:none !important; }
@media (min-width:769px) {
  body { padding-bottom:116px !important; }
  #om-tabbar.om-dock {
    position:fixed !important;
    left:50% !important;
    right:auto !important;
    bottom:18px !important;
    width:min(720px, calc(100vw - 48px)) !important;
    min-height:72px;
    padding:8px 12px !important;
    transform:translateX(-50%);
    border:1px solid rgba(255,255,255,.82) !important;
    border-radius:24px !important;
    background:rgba(255,255,255,.58) !important;
    box-shadow:0 18px 42px rgba(61,76,133,.22), inset 0 1px 0 rgba(255,255,255,.74) !important;
    backdrop-filter:blur(26px) saturate(155%);
    -webkit-backdrop-filter:blur(26px) saturate(155%);
  }
  #om-tabbar.om-dock a { flex:1 1 0; padding:7px 5px 6px; border-radius:16px; transition:background .18s ease, transform .18s ease; }
  #om-tabbar.om-dock a:hover { background:rgba(255,255,255,.56); transform:translateY(-2px); }
  #om-tabbar.om-dock a[style*="color:#C9A876"] { background:rgba(255,255,255,.66); box-shadow:inset 0 1px 0 rgba(255,255,255,.82); }
  #om-tabbar.om-dock svg { width:21px; height:21px; }
  #om-tabbar.om-dock a div { font-size:11px !important; margin-top:3px !important; }

  /* 首页工作台铺满有效桌面宽度，避免出现左侧窄栏和大面积空白。 */
  .portal {
    width:calc(100vw - 48px) !important;
    max-width:none !important;
    margin:0 24px !important;
    padding:24px 0 24px !important;
  }
  .portal-header { margin-bottom:20px !important; padding:20px 24px !important; }
  .portal-header::after { content:"ONEMORE · 门店工作台"; }
  .portal-compact-bar {
    display:flex;
    align-items:center;
    justify-content:space-between;
    min-height:50px;
    margin:0 0 16px;
    padding:7px 8px 7px 16px;
    border:1px solid rgba(255,255,255,.68);
    border-radius:18px;
    background:rgba(255,255,255,.34);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.62);
  }
  .portal-date { color:#53617B; font-size:13px; font-weight:650; }
  .portal-account {
    position:relative;
    display:grid;
    place-items:center;
    width:48px;
    height:48px;
    padding:0;
    border:1px solid rgba(255,255,255,.86);
    border-radius:50%;
    color:#fff;
    background:linear-gradient(135deg,rgba(100,119,216,.96),rgba(155,140,227,.92));
    box-shadow:0 10px 20px rgba(82,98,184,.26), inset 0 1px 0 rgba(255,255,255,.48);
    cursor:pointer;
    font-family:inherit;
    transition:transform .18s ease, box-shadow .18s ease, filter .18s ease;
  }
  .portal-account::after { content:"退出"; position:absolute; margin-top:62px; padding:4px 7px; border-radius:8px; color:#53617B; background:rgba(255,255,255,.78); box-shadow:0 4px 10px rgba(61,76,133,.10); font-size:10px; font-weight:700; opacity:0; pointer-events:none; transform:translateY(-3px); transition:opacity .18s ease, transform .18s ease; }
  .portal-account:hover { transform:translateY(-2px) scale(1.04); filter:saturate(1.08); box-shadow:0 14px 25px rgba(82,98,184,.34), inset 0 1px 0 rgba(255,255,255,.54); }
  .portal-account:hover::after { opacity:1; transform:translateY(0); }
  .portal-account-name { max-width:42px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12px; font-weight:800; letter-spacing:.15px; text-transform:lowercase; }
  .portal-account-id, .portal-account-action { display:none !important; }
  #userName { font-size:inherit; }
  .portal #portalView > div[style*="display:grid"] { gap:14px !important; margin-bottom:24px !important; }
  .portal #portalView > div[style*="display:grid"] > a {
    min-height:128px !important;
    padding:18px !important;
    border-radius:18px !important;
    border:1px solid rgba(255,255,255,.58);
    box-shadow:0 14px 32px rgba(61,76,133,.13);
  }

  /* 所有业务页：全宽工作台。留出 24px 两侧呼吸空间和底部 Dock 空间。 */
  .container,
  .dm-container,
  .member-app,
  .perf-app,
  .clock-container,
  #app .container,
  #perfApp .perf-app {
    width:calc(100vw - 48px) !important;
    max-width:none !important;
    margin-left:24px !important;
    margin-right:24px !important;
  }
  .dm-container { margin-top:16px !important; padding:0 0 18px !important; }
  .member-app, .perf-app, .clock-container, #app .container, #perfApp .perf-app { margin-top:16px !important; }
  .clock-container { max-width:none !important; display:grid; grid-template-columns:minmax(360px, 1fr) minmax(320px, .8fr); gap:18px; align-items:start; }
  .clock-container #loginView, .clock-container #clockView { grid-column:1; grid-row:1 / span 2; margin-bottom:0 !important; }
  .clock-container .history-title, .clock-container #historyList { grid-column:2; }
  .clock-container .history-title { margin:0 0 -10px !important; }
  .clock-container #historyList .history-card { margin-bottom:8px !important; }
  .member-app { grid-template-columns:minmax(320px, 28%) minmax(0, 1fr) !important; }
  .perf-app { padding:0 0 18px !important; }
  .header { width:100% !important; max-width:none !important; margin:0 !important; }
  #app .container { padding-left:0 !important; padding-right:0 !important; }

  /* 考勤信息采用高对比玻璃卡，避免浅色背景上看不清文字。 */
  #attendanceBoard.attendance-board {
    grid-column:auto !important;
    min-height:0 !important;
    margin:0 0 20px !important;
    padding:20px 22px !important;
    color:#263044 !important;
    background:rgba(255,255,255,.72) !important;
    border:1px solid rgba(255,255,255,.90) !important;
    box-shadow:0 16px 38px rgba(61,76,133,.15) !important;
  }
  .attendance-board-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:14px; }
  .attendance-eyebrow { color:#6477D8; font-size:10px; font-weight:800; letter-spacing:1.2px; margin-bottom:2px; }
  .attendance-title { color:#263044 !important; font-size:20px !important; font-weight:760 !important; }
  .attendance-date { color:#53617B !important; font-size:13px !important; font-weight:650; padding:6px 10px; border-radius:10px; background:rgba(100,119,216,.12); }
  .attendance-date-controls { display:flex; align-items:center; justify-content:flex-end; gap:6px; }
  .attendance-date-switch { min-height:29px; padding:0 9px; border:1px solid rgba(100,119,216,.18); border-radius:9px; color:#5B6982; background:rgba(255,255,255,.54); font:700 11px/1 inherit; cursor:pointer; }
  .attendance-date-switch.active { color:#fff; border-color:rgba(255,255,255,.72); background:linear-gradient(135deg,#6477D8,#9B8CE3); box-shadow:0 5px 12px rgba(100,119,216,.22); }
  .attendance-list { font-size:14px !important; color:#263044 !important; }
  .attendance-list > div { gap:16px !important; align-items:stretch !important; }
  .attendance-list > div > div {
    padding:13px 14px !important;
    border:1px solid rgba(100,119,216,.14);
    border-radius:14px;
    background:rgba(255,255,255,.60) !important;
  }
  #attendanceBoard span, #attendanceBoard b, #attendanceBoard div { color:#263044 !important; }
  #attendanceBoard [style*="color:rgba"] { color:#53617B !important; }
  #attendanceBoard [style*="background:rgba"] { background:rgba(100,119,216,.09) !important; }
  #attendanceBoard select {
    min-height:28px;
    color:#263044 !important;
    background:rgba(255,255,255,.92) !important;
    border:1px solid rgba(100,119,216,.24) !important;
  }
  #attendanceBoard option { color:#263044; background:#fff; }
  .attendance-save {
    width:100%; margin-top:12px; padding:10px; border:0; border-radius:12px;
    color:white; background:linear-gradient(135deg,#6477D8,#9B8CE3); font-size:14px; font-weight:700; cursor:pointer;
  }
}

/* 首页考勤展板：门店与排班标签建立清晰的信息层级。 */
#attendanceBoard .attendance-store-name {
  display:inline-flex;
  align-items:center;
  min-height:29px;
  margin:0 0 8px;
  padding:0 11px;
  border:1px solid rgba(100,119,216,.20);
  border-radius:10px;
  color:#4054B8 !important;
  background:linear-gradient(135deg,rgba(100,119,216,.15),rgba(155,140,227,.10));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.72);
  font-size:16px !important;
  font-weight:800 !important;
  letter-spacing:.8px;
  line-height:29px;
}
#attendanceBoard .attendance-shift-label {
  margin-top:9px;
  padding-top:8px;
  border-top:1px dashed rgba(100,119,216,.30);
  color:#5667BD !important;
  font-size:13px !important;
  font-weight:800 !important;
  letter-spacing:.3px;
}

/* Attendance roster: store-specific service order is part of the daily schedule, not a hidden setting. */
#attendanceBoard .attendance-roster-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
#attendanceBoard .attendance-store-card { min-width:0; padding:14px !important; border:1px solid rgba(100,119,216,.16) !important; border-radius:16px !important; background:linear-gradient(145deg,rgba(255,255,255,.87),rgba(242,245,255,.74)) !important; box-shadow:inset 0 1px 0 rgba(255,255,255,.9); }
#attendanceBoard .attendance-store-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; margin-bottom:11px; }
#attendanceBoard .attendance-store-subtitle { margin:2px 0 0 2px; color:#7B879E !important; font-size:11px !important; font-weight:650; }
#attendanceBoard .attendance-store-count { flex:0 0 auto; padding:4px 7px; border-radius:8px; color:#5B68A8 !important; background:rgba(100,119,216,.10) !important; font-size:10px !important; font-weight:800; }
#attendanceBoard .attendance-roster-columns, #attendanceBoard .attendance-roster-row { display:grid; grid-template-columns:minmax(82px,1.05fr) minmax(88px,1fr) minmax(88px,1fr) 56px; gap:7px; align-items:center; }
#attendanceBoard .attendance-roster-columns { margin-bottom:5px; padding:0 7px; color:#8490A8 !important; font-size:10px !important; font-weight:800; letter-spacing:.25px; }
#attendanceBoard .attendance-roster-row { min-height:45px; margin:5px 0; padding:5px 7px; border-radius:11px; background:rgba(100,119,216,.07) !important; }
#attendanceBoard .attendance-teacher { display:flex; align-items:center; min-width:0; gap:7px; font-size:13px !important; font-weight:800; }
#attendanceBoard .attendance-teacher b { display:grid; place-items:center; flex:0 0 23px; width:23px; height:23px; border-radius:8px; color:#5367CF !important; background:rgba(255,255,255,.92) !important; font-size:10px !important; }
#attendanceBoard .attendance-teacher span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#attendanceBoard .attendance-roster-row select { width:100%; min-width:0; min-height:33px; padding:0 7px; border-radius:9px !important; font-size:12px !important; }
#attendanceBoard .attendance-order-actions { display:flex; justify-content:flex-end; gap:4px; }
#attendanceBoard .attendance-order-actions button { display:grid; place-items:center; width:24px; height:28px; padding:0; border:1px solid rgba(100,119,216,.20); border-radius:8px; color:#5669CB !important; background:rgba(255,255,255,.86) !important; font-size:14px; font-weight:800; cursor:pointer; }
#attendanceBoard .attendance-order-actions button:active { transform:translateY(1px); background:rgba(225,230,255,.96) !important; }
#attendanceBoard .attendance-shift-chip, #attendanceBoard .attendance-status-chip { display:inline-flex; align-items:center; min-height:28px; padding:0 8px; border-radius:8px; color:#51607B !important; background:rgba(255,255,255,.74) !important; font-size:12px !important; font-weight:750; }
#attendanceBoard .attendance-status-chip.is-leave { color:#B16678 !important; background:rgba(255,225,232,.80) !important; }
#attendanceBoard .attendance-roster-readonly { grid-template-columns:minmax(82px,1.05fr) minmax(88px,1fr) minmax(88px,1fr); }
#attendanceBoard .attendance-order-note { margin-top:9px; padding-top:9px; border-top:1px dashed rgba(100,119,216,.24); color:#74809A !important; font-size:11px !important; line-height:1.45; }
/* Performance administrators keep their complete worksheet on compact screens; only employee views become cards. */
@media (max-width:1200px) {
  body[data-page="perf"] .perf-app.perf-admin-table .perf-admin-table-scroll,
  body[data-page="perf"] .perf-app.perf-admin-table [style*="overflow-x:auto"] { overflow-x:auto !important; -webkit-overflow-scrolling:touch; }
  body[data-page="perf"] .perf-app.perf-admin-table .perf-mobile-today,
  body[data-page="perf"] .perf-app.perf-admin-table .perf-mobile-dashboard,
  body[data-page="perf"] .perf-app.perf-admin-table .perf-mobile-input,
  body[data-page="perf"] .perf-app.perf-admin-table .perf-mobile-staff { display:table !important; width:100% !important; background:rgba(255,255,255,.90) !important; box-shadow:0 5px 14px rgba(61,76,133,.07) !important; }
  body[data-page="perf"] .perf-app.perf-admin-table .perf-mobile-today { min-width:1050px !important; }
  body[data-page="perf"] .perf-app.perf-admin-table .perf-mobile-dashboard { min-width:1000px !important; }
  body[data-page="perf"] .perf-app.perf-admin-table .perf-mobile-input { min-width:1230px !important; }
  body[data-page="perf"] .perf-app.perf-admin-table .perf-mobile-staff { min-width:1000px !important; }
  body[data-page="perf"] .perf-app.perf-admin-table .perf-mobile-today thead,
  body[data-page="perf"] .perf-app.perf-admin-table .perf-mobile-dashboard thead,
  body[data-page="perf"] .perf-app.perf-admin-table .perf-mobile-input thead,
  body[data-page="perf"] .perf-app.perf-admin-table .perf-mobile-staff thead { display:table-header-group !important; }
  body[data-page="perf"] .perf-app.perf-admin-table .perf-mobile-today tbody,
  body[data-page="perf"] .perf-app.perf-admin-table .perf-mobile-dashboard tbody,
  body[data-page="perf"] .perf-app.perf-admin-table .perf-mobile-input tbody,
  body[data-page="perf"] .perf-app.perf-admin-table .perf-mobile-staff tbody { display:table-row-group !important; }
  body[data-page="perf"] .perf-app.perf-admin-table .perf-mobile-today tr,
  body[data-page="perf"] .perf-app.perf-admin-table .perf-mobile-dashboard tr,
  body[data-page="perf"] .perf-app.perf-admin-table .perf-mobile-input tr,
  body[data-page="perf"] .perf-app.perf-admin-table .perf-mobile-staff tr { display:table-row !important; margin:0 !important; padding:0 !important; border:0 !important; border-radius:0 !important; box-shadow:none !important; }
  body[data-page="perf"] .perf-app.perf-admin-table .perf-mobile-today td,
  body[data-page="perf"] .perf-app.perf-admin-table .perf-mobile-dashboard td,
  body[data-page="perf"] .perf-app.perf-admin-table .perf-mobile-input td,
  body[data-page="perf"] .perf-app.perf-admin-table .perf-mobile-staff td { display:table-cell !important; min-height:0 !important; padding:6px !important; border:1px solid var(--border) !important; border-radius:0 !important; white-space:nowrap !important; text-align:center !important; font-size:12px !important; }
  body[data-page="perf"] .perf-app.perf-admin-table .perf-mobile-today td::before,
  body[data-page="perf"] .perf-app.perf-admin-table .perf-mobile-dashboard td::before,
  body[data-page="perf"] .perf-app.perf-admin-table .perf-mobile-input td::before,
  body[data-page="perf"] .perf-app.perf-admin-table .perf-mobile-staff td::before { display:none !important; }
  body[data-page="perf"] .perf-app.perf-admin-table .perf-mobile-today td:first-child,
  body[data-page="perf"] .perf-app.perf-admin-table .perf-mobile-dashboard td:first-child,
  body[data-page="perf"] .perf-app.perf-admin-table .perf-mobile-input td:first-child,
  body[data-page="perf"] .perf-app.perf-admin-table .perf-mobile-staff td:first-child { font-size:12px !important; background:transparent !important; }
  body[data-page="perf"] .perf-app.perf-admin-table .perf-mobile-input td input,
  body[data-page="perf"] .perf-app.perf-admin-table .perf-mobile-input td select,
  body[data-page="perf"] .perf-app.perf-admin-table .perf-mobile-staff td input { width:auto !important; max-width:none !important; min-height:26px; font-size:11px !important; }
}
@media (max-width:768px) {
  #attendanceBoard .attendance-roster-grid { grid-template-columns:1fr; gap:10px; }
  #attendanceBoard .attendance-store-card { padding:12px !important; border-radius:14px !important; }
  #attendanceBoard .attendance-roster-columns, #attendanceBoard .attendance-roster-row { grid-template-columns:minmax(74px,1fr) minmax(76px,.95fr) minmax(76px,.95fr) 52px; gap:5px; }
  #attendanceBoard .attendance-roster-columns { padding:0 4px; font-size:9px !important; }
  #attendanceBoard .attendance-roster-row { min-height:42px; padding:4px; }
  #attendanceBoard .attendance-teacher { gap:5px; font-size:12px !important; }
  #attendanceBoard .attendance-roster-row select { min-height:31px; padding:0 4px; font-size:11px !important; }
  #attendanceBoard .attendance-order-actions button { width:22px; height:27px; }
  #attendanceBoard .attendance-roster-readonly { grid-template-columns:minmax(74px,1fr) minmax(76px,.95fr) minmax(76px,.95fr); }
}
@media (max-width:768px) {
  #attendanceBoard .attendance-store-name { min-height:27px; margin-bottom:7px; padding:0 10px; border-radius:9px; font-size:15px !important; line-height:27px; }
  #attendanceBoard .attendance-shift-label { margin-top:8px; padding-top:7px; font-size:12px !important; }
}

/* Dock v3：独立的 macOS 液态玻璃组件，六项入口始终作为一组固定在底部中央。 */
#om-tabbar.om-dock-v3 {
  position:fixed !important;
  z-index:9999 !important;
  display:flex !important;
  align-items:flex-end !important;
  justify-content:center !important;
  gap:8px !important;
  box-sizing:border-box !important;
  border:1px solid rgba(255,255,255,.82) !important;
  background:rgba(255,255,255,.54) !important;
  box-shadow:0 18px 42px rgba(61,76,133,.25), inset 0 1px 0 rgba(255,255,255,.80) !important;
  backdrop-filter:blur(28px) saturate(165%) !important;
  -webkit-backdrop-filter:blur(28px) saturate(165%) !important;
}
#om-tabbar.om-dock-v3 .om-dock-item {
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  text-decoration:none !important;
  color:#8E97AC !important;
  border-radius:14px !important;
  transition:transform .18s ease, color .18s ease !important;
  background:transparent !important;
}
#om-tabbar.om-dock-v3 .om-dock-icon {
  position:relative;
  display:grid;
  place-items:center;
  background:transparent !important;
  border:none !important;
  box-shadow:none !important;
}
#om-tabbar.om-dock-v3 .om-dock-icon::after { display:none !important; }
#om-tabbar.om-dock-v3 .om-dock-icon svg { width:100%; height:100%; position:relative; z-index:1; }
#om-tabbar.om-dock-v3 .om-dock-label { font-weight:600; letter-spacing:.1px; white-space:nowrap; opacity:.85; }
#om-tabbar.om-dock-v3 .om-dock-item:hover { transform:translateY(-3px); }
#om-tabbar.om-dock-v3 .om-dock-item.is-active { color:#3D50BC !important; background:transparent !important; }
#om-tabbar.om-dock-v3 .om-dock-item.is-active .om-dock-label { opacity:1; font-weight:700; }
#om-tabbar.om-dock-v3 .om-dock-item.is-active .om-dock-icon { background:transparent !important; box-shadow:none !important; }
#om-tabbar.om-dock-v3 .icon-home { color:#6579E1; }
#om-tabbar.om-dock-v3 .icon-daily { color:#A977D6; }
#om-tabbar.om-dock-v3 .icon-member { color:#37A79B; }
#om-tabbar.om-dock-v3 .icon-clock { color:#DB8C65; }
#om-tabbar.om-dock-v3 .icon-perf { color:#D3658B; }
#om-tabbar.om-dock-v3 .icon-leave { color:#6D86C9; }

/* 手机仍为紧凑底部导航；考勤使用单列，防止两家店信息挤在一起。 */
@media (min-width:769px) {
  #om-tabbar.om-dock-v3 {
    left:50% !important;
    right:auto !important;
    bottom:18px !important;
    width:auto !important;
    min-width:680px !important;
    height:88px !important;
    padding:10px 14px 9px !important;
    transform:translateX(-50%) !important;
    border-radius:28px !important;
  }
  #om-tabbar.om-dock-v3 .om-dock-item { width:auto !important; height:62px !important; padding:4px 14px 3px !important; }
  #om-tabbar.om-dock-v3 .om-dock-icon { width:30px; height:30px; }
  #om-tabbar.om-dock-v3 .om-dock-label { margin-top:3px; font-size:12px; }
}

@media (max-width:768px) {
  #om-tabbar.om-dock-v3 {
    left:12px !important;
    right:12px !important;
    bottom:max(10px, env(safe-area-inset-bottom)) !important;
    height:66px !important;
    padding:6px 4px !important;
    border-radius:21px !important;
    gap:1px !important;
  }
  #om-tabbar.om-dock-v3 .om-dock-item { flex:1 1 0; height:52px; min-width:0; padding:3px 1px; }
  #om-tabbar.om-dock-v3 .om-dock-icon { width:26px; height:26px; }
  #om-tabbar.om-dock-v3 .om-dock-label { margin-top:3px; font-size:10px; }
  /* 手机首页顶部必须是一行：日期固定左侧，账户圆圈固定最右侧。 */
  .portal-compact-bar {
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    width:100%;
    box-sizing:border-box;
    min-height:48px;
    margin-bottom:12px;
    padding:5px 7px 5px 12px;
    border-radius:15px;
  }
  .portal-date { font-size:11px; white-space:nowrap; }
  .portal-account { margin-left:auto; flex:0 0 auto; }
  .portal-account {
    display:grid;
    place-items:center;
    width:38px;
    height:38px;
    min-height:38px;
    padding:0;
    border:1px solid rgba(255,255,255,.86);
    border-radius:50%;
    color:#fff;
    background:linear-gradient(135deg,rgba(100,119,216,.96),rgba(155,140,227,.92));
    box-shadow:0 8px 16px rgba(82,98,184,.24), inset 0 1px 0 rgba(255,255,255,.46);
  }
  .portal-account-name { max-width:33px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:10px; font-weight:800; text-transform:lowercase; }
  .portal-account-id, .portal-account-action, .portal-account::after { display:none !important; }
  .leave-page-bar .view-tabs { width:100%; box-sizing:border-box; gap:5px; }
  .leave-page-bar .view-tab { flex:1 1 0; min-width:0; min-height:36px; padding:0 8px; font-size:13px; line-height:36px; }
  #attendanceBoard.attendance-board { background:rgba(255,255,255,.82) !important; color:#263044 !important; }
  .attendance-board-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:12px; }
  .attendance-eyebrow { color:#6477D8; font-size:9px; font-weight:800; letter-spacing:1px; }
  .attendance-title, .attendance-date { color:#263044 !important; }
  .attendance-date-controls { width:100%; justify-content:flex-start; flex-wrap:wrap; margin-top:7px; }
  .attendance-date { font-size:11px !important; }
  .attendance-date-switch { min-height:28px; padding:0 9px; font-size:11px; }
  .attendance-list > div { display:block !important; }
  .attendance-list > div > div { margin-bottom:8px; padding:10px !important; border-radius:10px; background:rgba(100,119,216,.08) !important; }
  #attendanceBoard span, #attendanceBoard b, #attendanceBoard div { color:#263044 !important; }
  #attendanceBoard [style*="color:rgba"] { color:#53617B !important; }
  #attendanceBoard [style*="background:rgba"] { background:rgba(100,119,216,.08) !important; }
  #attendanceBoard select { color:#263044 !important; background:rgba(255,255,255,.94) !important; }
}

/* 最终性能覆盖：手机端 Dock 和列表不再做实时背景采样，减少点击切换时的 GPU 合成压力。 */
#om-tabbar.om-dock-v3 {
  contain: layout paint style;
  will-change: transform;
}
#om-tabbar.om-dock-v3 .om-dock-item { -webkit-tap-highlight-color: transparent; touch-action: manipulation; }

/* Compact attendance header mirrors the announcement board hierarchy. */
#attendanceBoard.attendance-board { padding:16px 18px !important; margin-bottom:14px !important; }
#attendanceBoard .attendance-board-head { align-items:center; margin-bottom:10px; }
#attendanceBoard .attendance-heading { display:flex; align-items:center; gap:10px; min-width:0; }
#attendanceBoard .attendance-heading-icon { display:grid; place-items:center; flex:0 0 38px; width:38px; height:38px; border-radius:13px; color:#fff !important; background:linear-gradient(135deg,#6477D8,#9B8CE3) !important; box-shadow:0 8px 16px rgba(100,119,216,.22); font-size:21px; font-weight:800; }
#attendanceBoard .attendance-eyebrow { margin:0 0 1px; font-size:9px; letter-spacing:1.1px; }
#attendanceBoard .attendance-title { font-size:18px !important; line-height:1.1; }
#attendanceBoard .attendance-date-controls { margin-left:auto; width:auto; flex-wrap:nowrap; justify-content:flex-end; }
#attendanceBoard .attendance-date { padding:5px 8px; font-size:11px !important; white-space:nowrap; }
#attendanceBoard .attendance-store-card { padding:11px !important; border-radius:14px !important; }
#attendanceBoard .attendance-store-card-head { margin-bottom:7px; }
#attendanceBoard .attendance-store-name { min-height:25px; margin:0; padding:0 9px; font-size:14px !important; line-height:25px; }
#attendanceBoard .attendance-roster-columns { margin-bottom:2px; }
#attendanceBoard .attendance-roster-row { min-height:39px; margin:4px 0; padding:4px 6px; }
#attendanceBoard .attendance-teacher { font-size:12px !important; }
#attendanceBoard .attendance-shift-chip, #attendanceBoard .attendance-status-chip { min-height:25px; font-size:11px !important; }
#attendanceBoard .attendance-title { color:#2D3A54 !important; font-size:18px !important; font-weight:780 !important; }
#attendanceBoard .attendance-roster-row { min-height:35px; margin:3px 0; padding:3px 6px; }
#attendanceBoard .attendance-teacher b { flex-basis:21px; width:21px; height:21px; font-size:9px !important; }
#attendanceBoard .attendance-shift-chip, #attendanceBoard .attendance-status-chip { min-height:23px; }
@media (max-width:768px) {
  #attendanceBoard.attendance-board { padding:14px 13px !important; margin-bottom:10px !important; }
  #attendanceBoard .attendance-board-head { gap:7px; }
  #attendanceBoard .attendance-heading-icon { flex-basis:34px; width:34px; height:34px; border-radius:11px; font-size:18px; }
  #attendanceBoard .attendance-title { font-size:17px !important; }
  #attendanceBoard .attendance-date-controls { margin-top:0; gap:4px; }
  #attendanceBoard .attendance-date-switch { min-height:26px; padding:0 7px; font-size:10px; }
  #attendanceBoard .attendance-date { padding:4px 6px; font-size:10px !important; }
  #attendanceBoard .attendance-list > div > div { margin-bottom:6px; padding:0 !important; background:transparent !important; }
  #attendanceBoard .attendance-store-card { padding:10px !important; }
  #attendanceBoard .attendance-title { color:#2D3A54 !important; font-size:16px !important; font-weight:780 !important; }
  #attendanceBoard .attendance-roster-row { min-height:33px; margin:3px 0; padding:3px 5px; }
  #attendanceBoard .attendance-shift-chip, #attendanceBoard .attendance-status-chip { min-height:22px; padding:0 7px; }
}
@media (min-width:769px) {
  #om-tabbar.om-dock-v3 { backdrop-filter:blur(16px) saturate(140%) !important; -webkit-backdrop-filter:blur(16px) saturate(140%) !important; box-shadow:0 12px 30px rgba(61,76,133,.18), inset 0 1px 0 rgba(255,255,255,.76) !important; }
  body[data-page="daily"] .table-card { backdrop-filter:blur(12px) saturate(125%); -webkit-backdrop-filter:blur(12px) saturate(125%); box-shadow:0 12px 28px rgba(61,76,133,.12), inset 0 1px 0 rgba(255,255,255,.82) !important; }
}
@media (max-width:768px) {
  #om-tabbar.om-dock-v3 { backdrop-filter:none !important; -webkit-backdrop-filter:none !important; background:rgba(255,255,255,.86) !important; box-shadow:0 10px 24px rgba(61,76,133,.16), inset 0 1px 0 rgba(255,255,255,.80) !important; }
  body[data-page="daily"] .table-card, .mobile-record-card, .mobile-add-row, .mobile-field-group, .mobile-editor, .mobile-editor-mask { backdrop-filter:none !important; -webkit-backdrop-filter:none !important; }
  body[data-page="daily"] .table-card { background:rgba(255,255,255,.78) !important; box-shadow:0 10px 24px rgba(61,76,133,.10) !important; }
  body[data-page="daily"] .mobile-record-card {
    border-color:rgba(255,255,255,.84) !important;
    background:rgba(255,255,255,.88) !important;
    box-shadow:0 6px 16px rgba(61,76,133,.08) !important;
  }
  body[data-page="daily"] .mobile-record-card:active { background:rgba(235,239,255,.96) !important; }
}

/* 手机版日报高通透液态玻璃：不改变三行紧凑清单，只增强层次、边界和高光。 */
@media (max-width:768px) {
  body[data-page="daily"] .dm-container {
    position:relative;
    isolation:isolate;
  }
  body[data-page="daily"] .dm-container::before,
  body[data-page="daily"] .dm-container::after {
    content:"";
    position:fixed;
    z-index:-1;
    border-radius:50%;
    pointer-events:none;
  }
  body[data-page="daily"] .dm-container::before {
    width:240px;
    height:240px;
    top:74px;
    right:-126px;
    background:radial-gradient(circle,rgba(155,140,227,.34) 0,rgba(155,140,227,.12) 42%,transparent 71%);
  }
  body[data-page="daily"] .dm-container::after {
    width:210px;
    height:210px;
    top:48%;
    left:-125px;
    background:radial-gradient(circle,rgba(101,203,187,.25) 0,rgba(101,203,187,.08) 44%,transparent 72%);
  }
  body[data-page="daily"] .dm-toolbar {
    position:relative;
    overflow:hidden;
    border:1px solid rgba(255,255,255,.88) !important;
    border-radius:18px !important;
    background:linear-gradient(145deg,rgba(255,255,255,.75),rgba(245,248,255,.45)) !important;
    box-shadow:0 14px 30px rgba(70,85,158,.16),inset 0 1px 0 rgba(255,255,255,.92) !important;
    backdrop-filter:blur(18px) saturate(145%) !important;
    -webkit-backdrop-filter:blur(18px) saturate(145%) !important;
  }
  body[data-page="daily"] .dm-toolbar::after {
    content:"";
    position:absolute;
    top:0;
    left:12%;
    width:62%;
    height:1px;
    background:rgba(255,255,255,.92);
    pointer-events:none;
  }
  body[data-page="daily"] .store-tabs {
    border:1px solid rgba(255,255,255,.68) !important;
    background:rgba(100,119,216,.10) !important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.66);
  }
  body[data-page="daily"] .store-tab { color:#596681 !important; }
  body[data-page="daily"] .store-tab.active {
    background:linear-gradient(135deg,#7183E7,#A294E6) !important;
    box-shadow:0 6px 13px rgba(100,119,216,.26),inset 0 1px 0 rgba(255,255,255,.48) !important;
  }
  body[data-page="daily"] .date-section input,
  body[data-page="daily"] .nav-btn,
  body[data-page="daily"] .today-btn,
  body[data-page="daily"] .btn-save {
    border:1px solid rgba(255,255,255,.76) !important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.78),0 4px 10px rgba(70,85,158,.09);
  }
  body[data-page="daily"] .stats-row { gap:8px !important; }
  body[data-page="daily"] .stat-card {
    overflow:hidden;
    border:1px solid rgba(255,255,255,.78) !important;
    background:linear-gradient(145deg,rgba(255,255,255,.66),rgba(238,242,255,.35)) !important;
    box-shadow:0 9px 20px rgba(70,85,158,.10),inset 0 1px 0 rgba(255,255,255,.88) !important;
    backdrop-filter:blur(15px) saturate(140%) !important;
    -webkit-backdrop-filter:blur(15px) saturate(140%) !important;
  }
  body[data-page="daily"] .stat-icon {
    border:1px solid rgba(255,255,255,.72);
    background:linear-gradient(135deg,rgba(100,119,216,.78),rgba(155,140,227,.68)) !important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.45);
  }
  body[data-page="daily"] .mobile-add-row,
  body[data-page="daily"] .mobile-record-card {
    position:relative;
    overflow:hidden;
    border:1px solid rgba(255,255,255,.86) !important;
    background:linear-gradient(145deg,rgba(255,255,255,.72),rgba(244,247,255,.44)) !important;
    box-shadow:0 11px 24px rgba(70,85,158,.13),inset 0 1px 0 rgba(255,255,255,.90) !important;
    backdrop-filter:blur(17px) saturate(148%) !important;
    -webkit-backdrop-filter:blur(17px) saturate(148%) !important;
  }
  body[data-page="daily"] .mobile-record-card::before {
    content:"";
    position:absolute;
    top:0;
    left:10px;
    right:32%;
    height:1px;
    background:rgba(255,255,255,.92);
    pointer-events:none;
  }
  body[data-page="daily"] .mobile-record-card:active {
    transform:scale(.99);
    background:linear-gradient(145deg,rgba(238,241,255,.94),rgba(255,255,255,.68)) !important;
  }
  body[data-page="daily"] .mobile-editor-mask {
    background:rgba(55,65,118,.29) !important;
    backdrop-filter:blur(10px) saturate(125%) !important;
    -webkit-backdrop-filter:blur(10px) saturate(125%) !important;
  }
  body[data-page="daily"] .mobile-editor {
    border:1px solid rgba(255,255,255,.86) !important;
    background:linear-gradient(150deg,rgba(249,250,255,.93),rgba(229,235,255,.78)) !important;
    box-shadow:0 -14px 36px rgba(55,65,118,.22),inset 0 1px 0 rgba(255,255,255,.92) !important;
    backdrop-filter:blur(24px) saturate(150%) !important;
    -webkit-backdrop-filter:blur(24px) saturate(150%) !important;
  }
  body[data-page="daily"] .mobile-field-group {
    border:1px solid rgba(255,255,255,.80) !important;
    background:rgba(255,255,255,.50) !important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.82);
  }
  body[data-page="daily"] .mobile-field input,
  body[data-page="daily"] .mobile-field select {
    border-color:rgba(255,255,255,.82) !important;
    background:rgba(255,255,255,.68) !important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.78);
  }
}
@media (max-width:480px) {
  /* 小屏手机用更高不透明度模拟玻璃，避免实时模糊拖慢操作。 */
  body[data-page="daily"] .dm-toolbar,
  body[data-page="daily"] .stat-card,
  body[data-page="daily"] .mobile-add-row,
  body[data-page="daily"] .mobile-record-card,
  body[data-page="daily"] .mobile-editor,
  body[data-page="daily"] .mobile-field-group {
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
  }
  body[data-page="daily"] .dm-toolbar { background:linear-gradient(145deg,rgba(255,255,255,.91),rgba(244,247,255,.82)) !important; }
  body[data-page="daily"] .stat-card,
  body[data-page="daily"] .mobile-add-row,
  body[data-page="daily"] .mobile-record-card { background:linear-gradient(145deg,rgba(255,255,255,.90),rgba(245,248,255,.80)) !important; }
  body[data-page="daily"] .mobile-editor { background:linear-gradient(150deg,rgba(250,251,255,.97),rgba(232,237,255,.93)) !important; }
}

/* 移动端最终性能覆盖：不使用实时背景模糊、固定伪元素或重阴影。
   用不透明玻璃色和彩色渐变保留当前视觉，减少每帧合成与重绘。 */
@media (max-width:768px) {
  body { background-attachment:scroll !important; }
  body::before, body::after,
  body[data-page="daily"] .dm-container::before,
  body[data-page="daily"] .dm-container::after { display:none !important; }
  .header, .view-tabs, .card, .calendar, .today-leaves, .staff-card, .overview-item,
  .modal, .login-box, .admin-section, .dm-toolbar, .table-card, .search-box,
  .login-card, .stat-card, .clock-card, .history-card, .member-detail, .member-card,
  .perf-panel, .chart-card, .summary-card, #attendanceBoard,
  body[data-page="daily"] .mobile-record-card, body[data-page="daily"] .mobile-add-row,
  body[data-page="daily"] .mobile-editor, body[data-page="daily"] .mobile-editor-mask,
  body[data-page="daily"] .mobile-field-group {
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
    box-shadow:0 4px 12px rgba(61,76,133,.07) !important;
  }
  #om-tabbar.om-dock-v3 {
    contain:layout paint style;
    transform:translateZ(0);
    backface-visibility:hidden;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
    box-shadow:0 6px 16px rgba(61,76,133,.12) !important;
  }
  #om-tabbar.om-dock-v3 .om-dock-item { transition:transform .1s ease,background .1s ease,color .1s ease !important; }
  #om-nav-hint {
    position:fixed; left:50%; bottom:98px; width:38px; height:3px; border-radius:8px;
    transform:translateX(-50%); z-index:9999; pointer-events:none;
    background:linear-gradient(90deg,#6477D8,#9B8CE3); opacity:.7;
    animation:om-nav-pulse .42s ease-out both;
  }
}
@keyframes om-nav-pulse { 0%{opacity:0;transform:translateX(-50%) scaleX(.25);} 35%{opacity:.82;} 100%{opacity:0;transform:translateX(-50%) scaleX(1);} }

@media (prefers-reduced-motion: no-preference) {
  #om-tabbar.om-dock-v3 .om-dock-item { transition:transform .14s ease, background .14s ease, color .14s ease !important; }
}

/* 日报桌面自适应：工作区固定在可视区域内，表格内部滚动，避免 12 寸笔记本出现整页上下滚动。
   Dock 顶部预留 124px；dvh 会随浏览器工具栏、缩放及不同分辨率实时调整。 */
@media (min-width:769px) {
  html:has(body[data-page="daily"]), body[data-page="daily"] { height:100%; overflow:hidden; }
  body[data-page="daily"] .dm-container {
    box-sizing:border-box;
    display:grid;
    grid-template-rows:auto auto minmax(0,1fr);
    gap:10px;
    height:calc(100dvh - 124px) !important;
    min-height:0;
    margin-top:12px !important;
    margin-bottom:0 !important;
    padding-bottom:0 !important;
  }
  body[data-page="daily"] .dm-toolbar,
  body[data-page="daily"] .stats-row { margin-bottom:0 !important; }
  body[data-page="daily"] .desktop-daily { min-height:0; overflow:hidden; }
  body[data-page="daily"] .desktop-daily .table-card {
    box-sizing:border-box;
    height:100% !important;
    min-height:0;
    max-height:none !important;
    overflow:auto !important;
  }
}

/* 典型 12-13 寸笔记本（约 768-820px 高）使用紧凑密度，但仍保持桌面宽表与全部字段。 */
@media (min-width:769px) and (max-height:820px) {
  body[data-page="daily"] .dm-container { gap:7px; height:calc(100dvh - 116px) !important; margin-top:8px !important; }
  body[data-page="daily"] .dm-toolbar { min-height:42px; padding:8px 12px !important; }
  body[data-page="daily"] .store-tab { padding:6px 13px; }
  body[data-page="daily"] .date-section input { padding:5px 8px; }
  body[data-page="daily"] .nav-btn,
  body[data-page="daily"] .today-btn,
  body[data-page="daily"] .btn { padding:5px 10px; }
  body[data-page="daily"] .stats-row { gap:7px !important; }
  body[data-page="daily"] .stat-card { min-height:48px; padding:8px 11px; gap:8px; }
  body[data-page="daily"] .stat-icon { width:28px; height:28px; font-size:14px; }
  body[data-page="daily"] .stat-val { font-size:18px; }
  body[data-page="daily"] .stat-lbl { font-size:10px; }
  body[data-page="daily"] .dm-table th { padding:6px 4px; }
  body[data-page="daily"] .dm-table td input,
  body[data-page="daily"] .dm-table td select { padding:6px 3px; }
}

/* v4 · ice-blue Apple liquid glass. Visual-only overrides: no page structure, API, or data field changes. */
:root { --hg-ink:#24314c; --hg-muted:#6b7894; --hg-brand:#5368d8; --hg-brand-2:#9375e5; --hg-glass:rgba(255,255,255,.43); --hg-glass-strong:rgba(255,255,255,.70); --hg-line:rgba(255,255,255,.82); --hg-shadow:0 18px 48px rgba(71,88,160,.14), inset 0 1px 0 rgba(255,255,255,.84); }
body { background:radial-gradient(ellipse 44rem 30rem at 7% -8%,rgba(119,148,255,.45),transparent 66%),radial-gradient(ellipse 38rem 27rem at 92% 4%,rgba(184,174,255,.42),transparent 68%),radial-gradient(ellipse 42rem 30rem at 78% 102%,rgba(153,219,246,.34),transparent 68%),linear-gradient(135deg,#eaf0ff 0%,#f8f9ff 47%,#e8f3ff 100%) !important; }
.portal-header,.dm-toolbar,.search-box,.result-box,.detail-card,.table-card,.perf-panel,.chart-card,.summary-card,.member-detail,.card,.calendar,.today-leaves,.staff-card,.overview-item { position:relative; overflow:hidden; border-color:rgba(255,255,255,.86) !important; background:linear-gradient(145deg,rgba(255,255,255,.66),rgba(245,248,255,.30)) !important; box-shadow:var(--hg-shadow) !important; }
.portal-header::before,.dm-toolbar::before,.search-box::before,.result-box::before,.detail-card::before,.table-card::before,.perf-panel::before,.chart-card::before,.summary-card::before,.member-detail::before { content:""; position:absolute; left:8%; top:0; width:54%; height:1px; background:rgba(255,255,255,.96); pointer-events:none; }
.member-item,.member-quick-item,.mobile-record-card,.stat-box { border:1px solid rgba(255,255,255,.72) !important; background:rgba(255,255,255,.46) !important; box-shadow:inset 0 1px 0 rgba(255,255,255,.78); }
.member-item:hover,.member-quick-item:hover { transform:translateY(-1px); background:rgba(242,245,255,.90) !important; }
.member-item.active { background:linear-gradient(135deg,rgba(238,241,255,.94),rgba(250,247,255,.78)) !important; border-left:3px solid #6477e5 !important; }
.stat-card,.stats-row .stat-card,.stat-grid .stat-card { background:linear-gradient(145deg,rgba(255,255,255,.61),rgba(235,240,255,.33)) !important; }
.btn-primary,.login-btn,.save-btn,.today-btn,.add-row button,.btn-save { background:linear-gradient(135deg,#5067d8 0%,#8876e4 100%) !important; box-shadow:0 10px 20px rgba(74,93,206,.27),inset 0 1px 0 rgba(255,255,255,.46) !important; }
table th,.dm-table th { background:linear-gradient(135deg,rgba(70,88,176,.90),rgba(112,101,191,.84)) !important; }
table td,.dm-table td { background:rgba(255,255,255,.66) !important; }
@media (min-width:769px) { .desktop-glass-rail { width:72px; padding:12px 7px; background:rgba(255,255,255,.52); box-shadow:0 18px 46px rgba(70,88,160,.18),inset 0 1px 0 rgba(255,255,255,.88); } .desktop-glass-rail .rail-brand { background:linear-gradient(145deg,#5368d8,#9979e8); } #om-tabbar.om-dock-v3 { background:rgba(255,255,255,.66) !important; border-color:rgba(255,255,255,.90) !important; } }
@media (max-width:768px) { body { background:linear-gradient(150deg,#eef2ff 0%,#fafbff 52%,#eaf4ff 100%) !important; } .portal-header,.dm-toolbar,.search-box,.result-box,.detail-card,.table-card,.perf-panel,.chart-card,.summary-card,.member-detail,.card,.calendar,.today-leaves,.staff-card,.overview-item { background:linear-gradient(145deg,rgba(255,255,255,.92),rgba(244,247,255,.80)) !important; box-shadow:0 8px 22px rgba(71,88,160,.10),inset 0 1px 0 rgba(255,255,255,.9) !important; } .member-app,.perf-app,.dm-container,.container { width:100% !important; max-width:100% !important; box-sizing:border-box; } .member-item { min-height:66px; } .member-status .num,.balance-big { color:#5267d7 !important; } #om-tabbar.om-dock-v3 { background:rgba(255,255,255,.92) !important; border-color:rgba(255,255,255,.94) !important; } }

/* Member workspace: promote the existing data into a clear desktop master-detail experience. */
@media (min-width:901px) {
  body[data-page="member"] .member-app { grid-template-columns:330px minmax(0,1fr) !important; gap:22px !important; padding:26px 32px 116px !important; }
  body[data-page="member"] .member-sidebar { position:sticky; top:24px; align-self:start; max-height:calc(100dvh - 48px); display:flex; flex-direction:column; }
  body[data-page="member"] .member-search-card { flex:0 0 auto; }
  body[data-page="member"] .member-result-card { min-height:0; flex:1; display:flex; flex-direction:column; }
  body[data-page="member"] .result-list { max-height:none; flex:1; }
  body[data-page="member"] .detail-panel { min-width:0; }
  body[data-page="member"] .detail-card { padding:24px !important; border-radius:25px !important; }
  body[data-page="member"] .member-header { padding-bottom:18px; margin-bottom:18px; }
  body[data-page="member"] .member-header-left .name { font-size:27px; letter-spacing:-.3px; }
  body[data-page="member"] .balance-big { font-size:32px; color:#5168dc; }
  body[data-page="member"] .info-grid { gap:10px; }
  body[data-page="member"] .info-item { padding:12px 14px; border-radius:15px; background:rgba(255,255,255,.42); border:1px solid rgba(255,255,255,.7); }
  body[data-page="member"] .chart-card { border-radius:25px !important; }
}

/* 手机日期控件：文字始终在按钮正中央，避免不同 WebView 的默认基线造成视觉偏移。 */
@media (max-width:768px) {
  body[data-page="perf"] .month-nav .perf-date-button {
    display:grid !important;
    place-items:center !important;
    text-align:center !important;
    line-height:1 !important;
  }

  /* 日报：门店独占第一行；第二行左侧日期/今天，右侧老师筛选。 */
  body[data-page="daily"] .dm-toolbar {
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto !important;
    grid-template-areas:"stores stores" "date therapist" !important;
    align-items:center !important;
    gap:8px 9px !important;
  }
  body[data-page="daily"] .store-tabs { grid-area:stores; justify-self:start; }
  body[data-page="daily"] .date-section {
    grid-area:date;
    width:auto !important;
    margin:0 !important;
    justify-content:flex-start !important;
    gap:4px !important;
  }
  body[data-page="daily"] .therapist-filter { grid-area:therapist; justify-self:end; white-space:nowrap; }
  body[data-page="daily"] .date-display {
    width:110px !important;
    min-width:110px !important;
    box-sizing:border-box !important;
    padding:7px 3px !important;
    display:grid !important;
    place-items:center !important;
    text-align:center !important;
    line-height:1 !important;
    white-space:nowrap !important;
    font-size:12px !important;
  }
  body[data-page="daily"] .nav-btn { width:26px; min-width:26px; padding:7px 0 !important; }
  body[data-page="daily"] .today-btn { margin-left:0 !important; min-width:38px; padding:7px 7px !important; font-size:11px !important; }
}
body[data-page="member"] .member-search-label { font-weight:750; letter-spacing:.2px; }
body[data-page="member"] .search-input { border-radius:16px !important; }
body[data-page="member"] .type-tabs { padding:3px; border-radius:15px; background:rgba(235,239,255,.58); }
body[data-page="member"] .type-tab { min-width:0; border-radius:12px; }
body[data-page="member"] .type-tab.active { background:linear-gradient(135deg,#5268dd,#9178e6); box-shadow:0 8px 16px rgba(78,96,206,.25); }
body[data-page="member"] .member-category-card { margin-bottom:15px; }
body[data-page="member"] .card-header { padding-bottom:11px; border-bottom:1px solid rgba(103,122,191,.11); }
body[data-page="member"] .detail-empty { min-height:390px; display:grid; place-items:center; align-content:center; gap:13px; }
@media (max-width:768px) {
  body[data-page="member"] .member-app { display:flex !important; flex-direction:column; padding:12px !important; gap:12px !important; overflow-x:hidden; }
  body[data-page="member"] .member-app > div:first-child { order:1; width:100%; min-width:0; }
  body[data-page="member"] .member-app > div:last-child { order:2; width:100%; min-width:0; }
  body[data-page="member"] .type-tabs { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:5px; overflow:hidden; }
  body[data-page="member"] .type-tab { width:100%; padding:9px 2px; font-size:13px; white-space:nowrap; }
  body[data-page="member"] .member-result-card { max-height:48dvh; }
  body[data-page="member"] .result-list { max-height:calc(48dvh - 54px); }
  body[data-page="member"] .member-item { padding:13px 12px; }
  body[data-page="member"] .detail-card { padding:17px !important; border-radius:20px !important; }
  body[data-page="member"] .member-header { gap:12px; align-items:flex-start; }
  body[data-page="member"] .member-header-left .name { font-size:23px; }
  body[data-page="member"] .balance-big { font-size:27px; }
  body[data-page="member"] .info-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  body[data-page="member"] .info-item { min-width:0; overflow:hidden; }
  body[data-page="member"] .info-item .value { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
}

/* Performance finishing pass (2026-07-20).
   Preserve the glass language while avoiding costly live blur during scrolling. */
@media (min-width:769px) {
  .header, .view-tabs, .card, .calendar, .today-leaves, .staff-card, .overview-item,
  .modal, .login-box, .admin-section, .dm-toolbar, .table-card, .search-box,
  .login-card, .stat-card, .clock-card, .history-card, .member-detail, .member-card,
  .perf-panel, .chart-card, .summary-card, #attendanceBoard {
    backdrop-filter:blur(6px) saturate(116%) !important;
    -webkit-backdrop-filter:blur(6px) saturate(116%) !important;
    box-shadow:0 9px 22px rgba(55,73,137,.10), 0 2px 6px rgba(61,76,133,.05) !important;
  }
  #om-tabbar.om-dock, #om-tabbar.om-dock-v3 {
    backdrop-filter:blur(8px) saturate(122%) !important;
    -webkit-backdrop-filter:blur(8px) saturate(122%) !important;
    box-shadow:0 12px 28px rgba(61,76,133,.15), inset 0 1px 0 rgba(255,255,255,.76) !important;
  }
  body[data-page="daily"] .dm-table,
  body[data-page="performance"] .perf-table,
  body[data-page="leave"] .calendar { contain:paint; }
}

/* Android app shells sometimes report a tablet-width viewport on a phone.  Capability
   detection ensures that those touch devices still get the low-compositing mobile style. */
@media (hover:none) and (pointer:coarse) {
  .header, .view-tabs, .card, .calendar, .today-leaves, .staff-card, .overview-item,
  .modal, .login-box, .admin-section, .dm-toolbar, .table-card, .search-box,
  .login-card, .stat-card, .clock-card, .history-card, .member-detail, .member-card,
  .perf-panel, .chart-card, .summary-card, #attendanceBoard,
  .mobile-record-card, .mobile-add-row, .mobile-editor, .mobile-editor-mask,
  .mobile-field-group, .portal-header, .result-box, .detail-card {
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
    box-shadow:0 4px 12px rgba(61,76,133,.08) !important;
  }
  #om-tabbar.om-dock, #om-tabbar.om-dock-v3, .mobile-glass-nav {
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
    background:rgba(255,255,255,.90) !important;
    box-shadow:0 7px 18px rgba(61,76,133,.13) !important;
  }
  .dm-table, .calendar table, .perf-table { contain:paint; }

  /* Keep mobile content clear of the persistent dock. */
  body[data-page="clock"] .clock-page,
  body[data-page="leave"] .leave-page,
  body[data-page="perf"] .perf-page,
  body[data-page="member"] .member-glass-app,
  body[data-page="daily"] .daily-page { padding-bottom:132px !important; }

  /* Home notification: preserve the title hierarchy on narrow admin screens. */
  .notice-board-head { align-items:flex-start; gap:10px; }
  .notice-board-actions { gap:7px; flex-shrink:0; }
  .notice-eyebrow { font-size:10px; letter-spacing:1.1px; white-space:nowrap; }
  .notice-compose-toggle { min-width:72px; padding:8px 10px; font-size:12px; }

  /* Member search should reveal results without an unnecessary oversized hero. */
  .member-search-card { padding:14px !important; }
  .member-search-card .add-member-btn, .member-search-card .add-btn { min-height:42px; }

  /* Keep administrator performance navigation readable and let the table scroll intentionally. */
  .perf-tabs { overflow-x:auto; scrollbar-width:none; white-space:nowrap; }
  .perf-tabs::-webkit-scrollbar { display:none; }
  .perf-tabs > * { flex:0 0 auto; }
  .perf-table { min-width:max-content; }

  /* Leave calendar labels and the staff selector must not be hidden by the dock. */
  body[data-page="leave"] .calendar, body[data-page="leave"] .today-leaves { margin-bottom:20px; }
}

/* Mobile home refinement: quiet pearl/lilac glass, dense information and a true icon dock. */
body.profile-sheet-open { overflow:hidden; }
body[data-page="home"] .home-leaderboard { display:none; }
body[data-page="home"] .home-clock-entry { display:none; }
body[data-page="home"] .home-overview { display:none; }
.portal-avatar { width:34px; height:34px; border-radius:50%; display:grid; place-items:center; flex:0 0 34px; color:#fff; font:700 14px/1 -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif; background:linear-gradient(135deg,#8d9ce9,#b18add); background-size:cover; background-position:center; border:1px solid rgba(255,255,255,.85); box-shadow:0 5px 15px rgba(87,104,184,.24), inset 0 1px 1px rgba(255,255,255,.48); }
.profile-sheet-mask { position:fixed; inset:0; z-index:12000; display:grid; align-items:end; background:rgba(35,42,87,.24); }
.profile-sheet-mask[hidden] { display:none !important; }
.profile-sheet { width:min(100%,560px); margin:0 auto; padding:10px 18px calc(20px + env(safe-area-inset-bottom)); border-radius:28px 28px 0 0; color:#26315b; background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(241,244,255,.94)); border:1px solid rgba(255,255,255,.95); box-shadow:0 -18px 55px rgba(45,58,125,.20); }
.profile-sheet-handle { width:38px; height:4px; border-radius:99px; margin:0 auto 17px; background:rgba(99,112,168,.24); }
.profile-sheet-hero { display:flex; align-items:center; gap:13px; min-height:66px; margin-bottom:17px; }
.profile-avatar-button { position:relative; width:62px; height:62px; padding:0; flex:0 0 62px; border:0; background:transparent; cursor:pointer; }
.profile-avatar-input { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); border:0; white-space:nowrap; }
.profile-avatar-large { width:62px; height:62px; border-radius:50%; display:grid; place-items:center; color:#fff; font:700 23px/1 -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif; background:linear-gradient(135deg,#8d9ce9,#b18add); background-size:cover; background-position:center; border:2px solid rgba(255,255,255,.92); box-shadow:0 8px 20px rgba(87,104,184,.22); overflow:hidden; }
.profile-avatar-button i { position:absolute; right:-5px; bottom:-2px; padding:3px 5px; border-radius:8px; color:#fff; font:600 9px/1 -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif; font-style:normal; background:#6477d8; box-shadow:0 3px 8px rgba(67,83,180,.25); }
.profile-user-name { font-size:19px; font-weight:760; letter-spacing:-.25px; }
.profile-user-role { margin-top:4px; color:#7b87aa; font:600 10px/1.2 -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif; letter-spacing:.75px; }
.profile-close { margin-left:auto; width:38px; height:38px; border:0; border-radius:50%; color:#7580a5; font-size:26px; line-height:1; background:rgba(235,239,255,.72); cursor:pointer; }
.profile-action-group { display:flex; align-items:center; gap:12px; min-height:69px; padding:12px 13px 12px 15px; border:1px solid rgba(255,255,255,.9); border-radius:18px; background:rgba(245,247,255,.72); box-shadow:inset 0 1px 0 rgba(255,255,255,.9); }
.profile-action-copy { display:grid; min-width:0; gap:5px; }
.profile-action-copy b { font-size:14px; }
.profile-action-copy span { color:#7d88aa; font-size:11px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.profile-action-button { margin-left:auto; min-width:64px; height:34px; border:0; border-radius:12px; color:#5367cc; font-weight:700; background:rgba(220,226,255,.76); }
.phone-binding-panel { display:grid; grid-template-columns:minmax(0,1fr) 92px; gap:9px; margin-top:10px; padding:13px; border-radius:17px; background:rgba(237,241,255,.7); }
.phone-binding-panel label { display:grid; gap:5px; color:#68769c; font-size:11px; }
.phone-binding-panel input { width:100%; box-sizing:border-box; height:37px; padding:0 10px; border:1px solid rgba(174,185,231,.48); border-radius:11px; outline:0; color:#354164; background:rgba(255,255,255,.88); }
.phone-binding-panel button { align-self:end; height:37px; border:0; border-radius:11px; color:#fff; font-size:12px; background:linear-gradient(135deg,#6a7fe2,#9079d4); }
.phone-binding-panel p { grid-column:1/-1; margin:0; color:#8993b1; font-size:10px; line-height:1.45; }
.profile-logout { width:100%; height:45px; margin-top:12px; border:1px solid rgba(232,133,156,.2); border-radius:15px; color:#c76580; font-weight:700; background:rgba(255,239,243,.76); }

@media (max-width:768px) {
  body[data-page="home"] .home-leaderboard { display:block; position:relative; overflow:hidden; margin:0 0 12px; padding:14px; border:1px solid rgba(255,255,255,.88); border-radius:22px; background:linear-gradient(145deg,rgba(255,255,255,.78),rgba(236,240,255,.55)); box-shadow:0 9px 25px rgba(82,95,162,.11),inset 0 1px 0 rgba(255,255,255,.86); }
  body[data-page="home"] .home-leaderboard::before { content:""; position:absolute; width:150px; height:150px; right:-68px; top:-84px; border-radius:50%; background:radial-gradient(circle,rgba(202,180,255,.32),rgba(202,180,255,0) 70%); pointer-events:none; }
  body[data-page="home"] .home-leaderboard-head { position:relative; z-index:1; display:flex; align-items:center; justify-content:space-between; gap:10px; margin:0 2px 11px; }
  body[data-page="home"] .home-leaderboard-eyebrow { color:#7785c7; font-size:9px; font-weight:800; letter-spacing:1.1px; }
  body[data-page="home"] .home-leaderboard h2 { margin:3px 0 0; color:#303c6c; font-size:16px; font-weight:780; line-height:1.1; }
  body[data-page="home"] .home-leaderboard-live { display:inline-flex; align-items:center; gap:5px; padding:5px 8px; color:#71809d; border:1px solid rgba(255,255,255,.68); border-radius:999px; background:rgba(255,255,255,.38); font-size:10px; font-weight:700; white-space:nowrap; }
  body[data-page="home"] .home-leaderboard-live i { width:5px; height:5px; border-radius:50%; background:#70c5aa; box-shadow:0 0 0 3px rgba(112,197,170,.14); }
  body[data-page="home"] .home-leaderboard-list { position:relative; z-index:1; display:grid; gap:7px; }
  body[data-page="home"] .home-leader-card { display:flex; align-items:center; min-height:50px; gap:9px; padding:7px 9px; border:1px solid rgba(255,255,255,.72); border-radius:16px; background:rgba(255,255,255,.35); box-shadow:inset 0 1px 0 rgba(255,255,255,.66); }
  body[data-page="home"] .home-leader-rank { display:grid; place-items:center; width:28px; height:28px; flex:0 0 28px; border-radius:10px; color:#fff; font-size:14px; background:linear-gradient(135deg,#e6ae63,#cc8d56); box-shadow:0 5px 11px rgba(208,147,83,.2); }
  body[data-page="home"] .home-leader-recharge .home-leader-rank { background:linear-gradient(135deg,#aa83df,#7f86db); }
  body[data-page="home"] .home-leader-overtime .home-leader-rank { background:linear-gradient(135deg,#dc997a,#ca7279); }
  body[data-page="home"] .home-leader-avatar { display:grid; place-items:center; width:33px; height:33px; flex:0 0 33px; overflow:hidden; color:#fff; border:1.5px solid rgba(255,255,255,.92); border-radius:50%; background:#8d9ce9 linear-gradient(135deg,#8d9ce9,#b18add); background-size:cover; background-position:center; box-shadow:0 3px 8px rgba(87,104,184,.17); font-size:12px; font-weight:750; }
  body[data-page="home"] .home-leader-copy { display:grid; gap:2px; min-width:0; }
  body[data-page="home"] .home-leader-copy small { color:#8993ae; font-size:9px; font-weight:650; line-height:1.1; }
  body[data-page="home"] .home-leader-copy b { overflow:hidden; color:#35416d; font-size:13px; font-weight:780; line-height:1.15; text-overflow:ellipsis; white-space:nowrap; }
  body[data-page="home"] .home-leader-card strong { margin-left:auto; color:#5b69b4; font-size:14px; font-weight:800; white-space:nowrap; }
  body[data-page="home"] .home-leader-card.is-empty { opacity:.72; }
  body[data-page="home"] .home-leader-card.is-empty .home-leader-copy { flex:1; }
  body[data-page="home"] .home-leader-card.is-empty strong { color:#9aa2b5; font-size:11px; font-weight:650; }
  body[data-page="home"] .home-leaderboard-empty { padding:15px; text-align:center; color:#8e98b2; font-size:12px; }
  body[data-page="home"] .portal { position:relative; }
  body[data-page="home"] .portal-compact-bar { position:absolute !important; top:11px; right:14px; z-index:2; width:46px; min-height:46px !important; margin:0 !important; }
  body[data-page="home"] .portal-date { display:none !important; }
  body[data-page="home"] .home-overview { display:block; margin:3px 0 17px; padding:12px 2px 0; }
  body[data-page="home"] .home-overview-hero { padding:0 9px; }
  body[data-page="home"] .home-overview-date { display:block; margin-bottom:7px; color:#8793bd; font-size:11px; font-weight:700; letter-spacing:.4px; }
  body[data-page="home"] .home-overview h1 { margin:0; color:#242f65; font-size:31px; line-height:1.12; font-weight:820; letter-spacing:-1px; }
  body[data-page="home"] .home-overview p { margin:8px 0 18px; color:#7785b5; font-size:13px; }
  body[data-page="home"] .home-status-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  body[data-page="home"] .home-status-card { display:flex; align-items:center; gap:10px; min-width:0; min-height:66px; padding:10px 10px; box-sizing:border-box; border:1px solid rgba(255,255,255,.88); border-radius:20px; background:linear-gradient(145deg,rgba(255,255,255,.78),rgba(235,240,255,.55)); box-shadow:0 8px 20px rgba(76,91,159,.09),inset 0 1px 0 rgba(255,255,255,.9); }
  body[data-page="home"] a.home-status-card { text-decoration:none; }
  body[data-page="home"] .home-status-icon { display:grid; place-items:center; width:34px; height:34px; flex:0 0 34px; border-radius:50%; color:#fff; font-size:20px; line-height:1; background:linear-gradient(135deg,#8c99ed,#aa89df); box-shadow:0 5px 13px rgba(92,104,211,.25),inset 0 1px 1px rgba(255,255,255,.55); }
  body[data-page="home"] .home-status-icon svg { width:19px; height:19px; }
  body[data-page="home"] .home-status-card div { display:grid; gap:4px; min-width:0; }
  body[data-page="home"] .home-status-card small { color:#7d89b0; font-size:10px; white-space:nowrap; }
  body[data-page="home"] .home-status-card b { color:#34416f; font-size:13px; white-space:nowrap; }
  body[data-page="home"] .home-status-card i { display:inline-block; width:8px; height:8px; margin-left:4px; border-radius:50%; background:#43bc61; }
  body[data-page="home"] .home-status-card i.is-rest { background:#91a0c8; }
  body[data-page="home"] .home-status-card i.is-leave { background:#d49bad; }
  body[data-page="home"] .home-revenue-card { position:relative; display:flex; justify-content:space-between; align-items:center; min-height:142px; margin-top:12px; padding:21px; box-sizing:border-box; overflow:hidden; text-decoration:none; border:1px solid rgba(255,255,255,.94); border-radius:25px; background:linear-gradient(135deg,rgba(255,255,255,.85),rgba(235,240,255,.6)); box-shadow:0 12px 28px rgba(74,88,163,.13),inset 0 1px 0 rgba(255,255,255,.94); }
  body[data-page="home"] .home-revenue-card div { position:relative; z-index:1; display:grid; gap:7px; }
  body[data-page="home"] .home-revenue-card small { color:#7280b1; font-size:13px; }
  body[data-page="home"] .home-revenue-card b { color:#27346e; font-size:36px; line-height:1; letter-spacing:-1px; }
  body[data-page="home"] .home-revenue-card span { color:#7d8bd0; font-size:11px; }
  body[data-page="home"] .home-revenue-line { position:absolute !important; right:18px; bottom:30px; display:flex !important; align-items:end; gap:5px; height:58px; opacity:.92; }
  body[data-page="home"] .home-revenue-line i { display:block; width:13px; border-radius:10px 10px 3px 3px; background:linear-gradient(#6c7ee5,rgba(127,142,242,.18)); }
  body[data-page="home"] .home-revenue-line i:nth-child(1){height:20px}.home-revenue-line i:nth-child(2){height:31px}.home-revenue-line i:nth-child(3){height:43px}.home-revenue-line i:nth-child(4){height:57px}
  body[data-page="home"] .home-revenue-card { min-height:66px; height:66px; margin-top:10px; padding:6px 4px; justify-content:stretch; border-radius:20px; }
  body[data-page="home"] .home-revenue-card .home-metric { flex:1 1 0; display:grid; grid-template-columns:34px minmax(0,1fr); grid-template-rows:auto auto; column-gap:8px; row-gap:1px; min-width:0; padding:0 8px; }
  body[data-page="home"] .home-revenue-card .home-metric + .home-metric { border-left:1px solid rgba(116,130,197,.14); }
  body[data-page="home"] .home-revenue-card .home-metric-icon { grid-row:1 / 3; display:grid; place-items:center; width:32px; height:32px; align-self:center; border-radius:12px; color:#6578dd; background:linear-gradient(135deg,rgba(221,227,255,.95),rgba(244,238,255,.82)); }
  body[data-page="home"] .home-revenue-card .home-contribution .home-metric-icon { color:#bd75a1; background:linear-gradient(135deg,rgba(255,228,240,.92),rgba(247,235,255,.8)); }
  body[data-page="home"] .home-revenue-card .home-metric-icon svg { width:18px; height:18px; }
  body[data-page="home"] .home-revenue-card .home-metric small { align-self:end; font-size:11px; white-space:nowrap; }
  body[data-page="home"] .home-revenue-card .home-metric b { align-self:start; font-size:18px; letter-spacing:-.35px; white-space:nowrap; }
  body[data-page="home"] .home-revenue-card .home-revenue-line { display:none !important; }
  body[data-page="home"] { min-height:100dvh; background:radial-gradient(circle at 94% 3%,rgba(182,199,255,.54),transparent 33%),radial-gradient(circle at 0 45%,rgba(238,210,255,.39),transparent 32%),linear-gradient(160deg,#f7f8ff 0%,#edf2ff 48%,#f8f6fe 100%); }
  body[data-page="home"] .portal { max-width:650px !important; padding:14px 13px calc(94px + env(safe-area-inset-bottom)) !important; }
  body[data-page="home"] .portal-compact-bar { min-height:48px; margin:0 1px 13px !important; }
  body[data-page="home"] .portal-date { color:#2f3a67; font-size:14px !important; font-weight:740; letter-spacing:-.15px; }
  body[data-page="home"] .portal-account { display:flex !important; align-items:center; gap:8px; min-width:44px; min-height:44px; padding:3px !important; border-radius:50% !important; background:transparent !important; }
  body[data-page="home"] .portal-account-name { display:none !important; }
  body[data-page="home"] .notice-board, body[data-page="home"] #attendanceBoard.attendance-board { overflow:hidden; border:1px solid rgba(255,255,255,.88) !important; background:linear-gradient(145deg,rgba(255,255,255,.76),rgba(238,242,255,.49)) !important; box-shadow:0 9px 25px rgba(82,95,162,.11),inset 0 1px 0 rgba(255,255,255,.84) !important; }
body[data-page="home"] .notice-board { padding:15px 15px 13px !important; margin-bottom:12px !important; border-radius:22px !important; }
  body[data-page="home"] .notice-board-head { margin-bottom:10px !important; }
  body[data-page="home"] .notice-bell, body[data-page="home"] .attendance-heading-icon { width:32px !important; height:32px !important; border-radius:12px !important; }
  body[data-page="home"] .notice-title, body[data-page="home"] .attendance-title { color:#303c6c !important; font-size:16px !important; font-weight:780 !important; }
  body[data-page="home"] .notice-eyebrow, body[data-page="home"] .attendance-eyebrow { color:#8490b9 !important; font-size:9px !important; letter-spacing:1px !important; }
body[data-page="home"] .notice-live { padding:5px 7px !important; color:#8590b4 !important; font-size:10px !important; background:rgba(245,247,255,.7); }

/* 首页首屏优先让关键信息一眼可见：通知保持完整内容，但收紧标题、正文和外框。 */
body[data-page="home"] .notice-board { padding:11px 12px 10px !important; margin-bottom:9px !important; border-radius:18px !important; }
body[data-page="home"] .notice-board-head { gap:9px; margin-bottom:6px !important; }
body[data-page="home"] .notice-bell { width:28px !important; height:28px !important; border-radius:10px !important; }
body[data-page="home"] .notice-bell svg { width:15px; height:15px; }
body[data-page="home"] .notice-title { font-size:14px !important; }
body[data-page="home"] .notice-eyebrow { font-size:8px !important; letter-spacing:.85px !important; }
body[data-page="home"] .notice-live { padding:4px 6px !important; font-size:9px !important; }
body[data-page="home"] .notice-message { padding:8px 10px 7px !important; border-radius:12px; }
body[data-page="home"] .notice-message-content { font-size:12px; line-height:1.45; }
body[data-page="home"] .notice-message-footer { margin-top:5px; }
body[data-page="home"] .notice-message-meta,
body[data-page="home"] .notice-receipt,
body[data-page="home"] .notice-received { font-size:10px !important; }
  body[data-page="home"] #attendanceBoard.attendance-board { padding:14px 14px 12px !important; margin-bottom:10px !important; border-radius:22px !important; }
  body[data-page="home"] #attendanceBoard .attendance-board-head { margin-bottom:8px !important; }
  body[data-page="home"] .attendance-date { color:#6171b6 !important; font-size:11px !important; }
  body[data-page="home"] .attendance-store-card { padding:11px !important; margin-top:8px !important; border-radius:16px !important; background:rgba(255,255,255,.48) !important; border-color:rgba(255,255,255,.72) !important; }
  body[data-page="home"] .attendance-store-card-head { min-height:24px; }
  body[data-page="home"] .attendance-store-name { color:#3f4d82; font-size:13px !important; font-weight:760; }
  body[data-page="home"] .attendance-roster-columns { margin-top:6px !important; padding:0 4px 4px !important; font-size:9px !important; }
  body[data-page="home"] .attendance-roster-row { min-height:38px !important; padding:4px 4px !important; }
  body[data-page="home"] .attendance-teacher b { width:22px !important; height:22px !important; font-size:9px !important; }
  body[data-page="home"] .attendance-teacher span { font-size:12px !important; }
  body[data-page="home"] .attendance-shift-chip, body[data-page="home"] .attendance-status-chip { min-height:24px !important; padding:3px 6px !important; font-size:10px !important; }
  body[data-page="home"] #attendanceBoard:not(.is-expanded) .attendance-list { max-height:none; overflow:visible; mask-image:none; -webkit-mask-image:none; }
  body[data-page="home"] .attendance-expand { display:none; }
  body[data-page="home"] .attendance-expand span { margin-left:4px; font-size:18px; vertical-align:-1px; }
  #om-tabbar.om-dock-v3 { height:62px !important; padding:5px max(10px,env(safe-area-inset-right)) calc(5px + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left)) !important; border-radius:22px 22px 0 0 !important; }
  #om-tabbar.om-dock-v3 .om-dock-item { height:52px !important; padding:0 !important; justify-content:center !important; }
  #om-tabbar.om-dock-v3 .om-dock-icon { width:25px !important; height:25px !important; }
  #om-tabbar.om-dock-v3 .om-dock-label { display:none !important; }
  #om-tabbar.om-dock-v3 .om-dock-item.is-active .om-dock-icon { transform:translateY(-1px) scale(1.08); }
}

/* Android WebView can report a non-zero safe-area while its system navigation bar is
   already outside the WebView. Keep the icon-only dock to one deliberate 64px rail. */
@media (max-width:768px) {
  #om-tabbar.om-dock-v3 {
    left:0 !important;
    right:0 !important;
    bottom:0 !important;
    width:auto !important;
    min-height:0 !important;
    max-height:64px !important;
    height:64px !important;
    padding:6px 12px !important;
    gap:0 !important;
    align-items:center !important;
    justify-content:space-around !important;
    border-radius:22px 22px 0 0 !important;
  }
  #om-tabbar.om-dock-v3 .om-dock-item {
    flex:1 1 0 !important;
    min-height:0 !important;
    height:48px !important;
    margin:0 !important;
    align-self:center !important;
  }
  #om-tabbar.om-dock-v3 .om-dock-icon { width:27px !important; height:27px !important; }
}

/* Home summary owns these functions; the detailed panels open only on demand. */
.attendance-detail-close { display:none; }
@media (max-width:768px) {
  body[data-page="home"] button.home-status-card { width:100%; text-align:left; font:inherit; cursor:pointer; }
  body[data-page="home"] .home-clock-entry { display:none !important; }
  body[data-page="home"] #attendanceBoard { display:none !important; }
  body[data-page="home"] #attendanceBoard.is-home-detail { display:block !important; }
  body[data-page="home"] .attendance-detail-close { display:none; }
  body[data-page="home"] #attendanceBoard.is-home-detail .attendance-detail-close { display:block; width:auto; margin:0 0 8px; padding:0; border:0; color:#6b7bd2; font-size:12px; font-weight:720; background:transparent; }
}

/* Desktop home uses its own alignment rules; do not inherit compact phone sizing. */
@media (min-width:769px) {
  body[data-page="home"] .portal-account {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    width:auto;
    min-width:88px;
    height:48px;
    padding:0 10px 0 6px;
    border-radius:16px;
  }
  body[data-page="home"] .portal-avatar { flex:0 0 34px; }
  body[data-page="home"] .portal-account-name { display:block; max-width:76px; line-height:1; }
  body[data-page="home"] .notice-board-actions { align-items:center; }
  body[data-page="home"] .notice-compose-toggle,
  body[data-page="home"] .attendance-date-switch {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    box-sizing:border-box;
  }
  body[data-page="home"] .notice-compose-toggle { min-width:104px; min-height:38px; }
  body[data-page="home"] .attendance-date-controls { align-items:center; }
  body[data-page="home"] .attendance-date-switch { min-width:48px; min-height:34px; }
  body[data-page="home"] .attendance-expand { display:none !important; }
}

@media (max-width:768px) {
  body.attendance-detail-route[data-page="home"] .home-overview,
  body.attendance-detail-route[data-page="home"] #noticeBoard { display:none !important; }
  body.attendance-detail-route[data-page="home"] #attendanceBoard { display:block !important; margin-top:54px !important; }
  body.attendance-detail-route[data-page="home"] #attendanceBoard .attendance-detail-close { display:block; width:auto; margin:0 0 8px; padding:0; border:0; color:#6b7bd2; font-size:12px; font-weight:720; background:transparent; }
  body.attendance-detail-route[data-page="home"] #attendanceBoard .attendance-expand { display:none; }
}

/* Attendance opens as a dedicated mobile subpage rather than expanding below Home. */
@media (max-width:768px) {
  body.attendance-detail-route[data-page="home"] .home-overview,
  body.attendance-detail-route[data-page="home"] #noticeBoard { display:none !important; }
  body.attendance-detail-route[data-page="home"] #attendanceBoard { display:block !important; margin-top:54px !important; }
  body.attendance-detail-route[data-page="home"] #attendanceBoard .attendance-detail-close { display:block; width:auto; margin:0 0 8px; padding:0; border:0; color:#6b7bd2; font-size:12px; font-weight:720; background:transparent; }
  body.attendance-detail-route[data-page="home"] #attendanceBoard .attendance-expand { display:none; }
}

/* The attendance route is a true subpage: no leaderboard/home content remains behind it. */
@media (max-width:768px) {
  body.attendance-detail-route[data-page="home"] .portal-compact-bar,
  body.attendance-detail-route[data-page="home"] .home-overview,
  body.attendance-detail-route[data-page="home"] #noticeBoard,
  body.attendance-detail-route[data-page="home"] #homeLeaderboard,
  body.attendance-detail-route[data-page="home"] .home-clock-entry { display:none !important; }
  body.attendance-detail-route[data-page="home"] #attendanceBoard { display:block !important; margin-top:10px !important; }
  body.attendance-detail-route[data-page="home"] #attendanceBoard .attendance-detail-close { display:block; }
}

/* 首页房间状态：两店并列，一眼区分使用、闲置和待打扫。 */
.home-room-board { margin:12px 0; padding:14px; border:1px solid rgba(255,255,255,.88); border-radius:22px; background:linear-gradient(145deg,rgba(255,255,255,.74),rgba(239,244,255,.48)); box-shadow:0 10px 25px rgba(71,88,160,.10),inset 0 1px 0 rgba(255,255,255,.94); }
.home-room-board-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:0 2px 11px; }
.home-room-board-head small { display:block; color:#8b96bb; font-size:9px; font-weight:800; letter-spacing:1.1px; }
.home-room-board-head h2 { margin:2px 0 0; color:#35416d; font-size:17px; line-height:1.12; }
.home-room-hint { color:#8190be; font-size:11px; font-weight:650; }
.home-room-board-content { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.room-store-card { min-width:0; padding:9px; border:1px solid rgba(255,255,255,.84); border-radius:17px; background:rgba(255,255,255,.48); box-shadow:inset 0 1px 0 rgba(255,255,255,.84); }
.room-store-title { margin:0 0 7px; color:#5368d8; font-size:13px; font-weight:780; }
.room-status-list { display:grid; gap:6px; }
.room-status-item { display:flex; align-items:center; justify-content:space-between; gap:5px; width:100%; min-height:33px; padding:6px 7px; box-sizing:border-box; color:#33405f; border:1px solid rgba(214,221,242,.70); border-radius:11px; background:rgba(255,255,255,.58); text-align:left; font:inherit; }
.room-status-item b { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12px; font-weight:720; }
.room-status-item.is-editable { cursor:pointer; transition:transform .14s ease,box-shadow .14s ease; }
.room-status-item.is-editable:active { transform:scale(.98); }
.room-status-tag { display:inline-flex; align-items:center; flex:0 0 auto; gap:3px; padding:3px 5px; border-radius:9px; font-size:9px; font-weight:750; white-space:nowrap; }
.room-status-tag i { width:6px; height:6px; border-radius:50%; background:currentColor; box-shadow:0 0 0 2px rgba(255,255,255,.7); }
.room-status-tag.in_use { color:#c75464; background:rgba(244,198,205,.66); }
.room-status-tag.idle { color:#328d64; background:rgba(194,235,212,.70); }
.room-status-tag.cleaning { color:#a97917; background:rgba(255,231,167,.74); }
.room-status-item.in_use.is-editable:hover { border-color:rgba(199,84,100,.42); box-shadow:0 5px 12px rgba(199,84,100,.12); }
.room-status-item.idle.is-editable:hover { border-color:rgba(50,141,100,.42); box-shadow:0 5px 12px rgba(50,141,100,.12); }
.room-status-item.cleaning.is-editable:hover { border-color:rgba(169,121,23,.42); box-shadow:0 5px 12px rgba(169,121,23,.12); }
.home-room-loading { grid-column:1/-1; padding:16px; color:#8793b7; text-align:center; font-size:12px; }

/* Room changes are deliberate: show a compact glass confirmation before writing shared status. */
body.room-status-confirm-open { overflow:hidden; }
.room-status-confirm-mask { position:fixed; z-index:13000; inset:0; display:grid; place-items:center; padding:20px; box-sizing:border-box; background:rgba(37,48,94,.26); backdrop-filter:blur(9px) saturate(125%); -webkit-backdrop-filter:blur(9px) saturate(125%); }
.room-status-confirm-mask[hidden] { display:none !important; }
.room-status-confirm-dialog { position:relative; box-sizing:border-box; width:min(100%,390px); padding:22px; overflow:hidden; border:1px solid rgba(255,255,255,.9); border-radius:24px; color:#33405f; background:linear-gradient(145deg,rgba(255,255,255,.92),rgba(235,240,255,.78)); box-shadow:0 22px 60px rgba(48,62,128,.28),inset 0 1px 0 rgba(255,255,255,.95); }
.room-status-confirm-dialog::before { content:""; position:absolute; width:130px; height:130px; top:-76px; right:-50px; border-radius:50%; background:rgba(172,185,255,.24); filter:blur(18px); pointer-events:none; }
.room-status-confirm-close { position:absolute; top:12px; right:12px; z-index:1; display:grid; place-items:center; width:30px; height:30px; padding:0; border:1px solid rgba(255,255,255,.82); border-radius:50%; color:#7180a7; background:rgba(255,255,255,.5); font-size:21px; line-height:1; cursor:pointer; }
.room-status-confirm-eyebrow { position:relative; color:#7785c7; font-size:9px; font-weight:800; letter-spacing:1.1px; }
.room-status-confirm-dialog h2 { position:relative; margin:5px 35px 0 0; color:#303d6a; font-size:19px; line-height:1.25; }
.room-status-confirm-room { position:relative; margin:7px 0 16px; color:#7b88aa; font-size:13px; font-weight:650; }
.room-status-confirm-flow { position:relative; display:flex; align-items:center; justify-content:center; gap:10px; padding:14px 10px; border:1px solid rgba(255,255,255,.8); border-radius:16px; background:rgba(255,255,255,.42); box-shadow:inset 0 1px 0 rgba(255,255,255,.8); }
.room-status-confirm-state { display:inline-flex; align-items:center; justify-content:center; min-width:66px; min-height:30px; padding:0 9px; border-radius:10px; font-size:12px; font-weight:760; }
.room-status-confirm-state.in_use { color:#b74759; background:rgba(244,198,205,.74); }
.room-status-confirm-state.idle { color:#287d58; background:rgba(194,235,212,.78); }
.room-status-confirm-state.cleaning { color:#936815; background:rgba(255,231,167,.82); }
.room-status-confirm-arrow { color:#8390bc; font-size:19px; }
.room-status-confirm-actions { display:grid; grid-template-columns:1fr 1.25fr; gap:9px; margin-top:17px; }
.room-status-confirm-actions button { min-height:42px; border-radius:13px; font:700 13px/1 inherit; cursor:pointer; }
.room-status-confirm-cancel { border:1px solid rgba(203,212,239,.8); color:#7180a4; background:rgba(255,255,255,.56); }
.room-status-confirm-save { border:1px solid rgba(255,255,255,.82); color:#fff; background:#687bd8; box-shadow:0 8px 16px rgba(93,108,204,.24); }
.room-status-confirm-actions button:disabled { cursor:wait; opacity:.6; }
@media (max-width:480px) { .home-room-board { margin:10px 0; padding:11px; border-radius:19px; } .home-room-board-content { gap:7px; } .room-store-card { padding:7px; border-radius:14px; } .room-status-list { gap:5px; } .room-status-item { min-height:31px; padding:5px 6px; } .room-status-item b { font-size:11px; } .room-status-tag { padding:3px 4px; font-size:8px; } }

/* Desktop homepage: the same live board sits below store notices, with both
   stores visible at once and no phone-style vertical stacking. */
@media (min-width:769px) {
  body[data-page="home"] .home-room-board { margin:0 0 18px; padding:18px 20px 20px; border-radius:24px; }
  body[data-page="home"] .home-room-board-head { margin:0 2px 14px; }
  body[data-page="home"] .home-room-board-head h2 { font-size:19px; }
  body[data-page="home"] .home-room-board-content { gap:14px; }
  body[data-page="home"] .room-store-card { padding:13px; border-radius:18px; }
  body[data-page="home"] .room-store-title { margin-bottom:10px; font-size:14px; }
  body[data-page="home"] .room-status-list { grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
  body[data-page="home"] .room-status-item { min-height:38px; padding:7px 9px; }
}

/* Leave calendar on phones: keep the calendar itself, move staff controls and explanations to desktop administration. */
@media (max-width:768px) {
  body[data-page="leave"] .leave-control-strip .user-selector,
  body[data-page="leave"] .leave-control-strip .leave-sync-chip,
  body[data-page="leave"] .leave-mobile-helper,
  body[data-page="leave"] .leave-mobile-legend { display:none !important; }
  body[data-page="leave"] .leave-control-strip { padding:8px 9px; }
}

/* Dense mobile leave calendar: surface more dates and staff before the dock. */
@media (max-width:768px) {
  body[data-page="leave"] .container { padding:8px 8px calc(82px + env(safe-area-inset-bottom)) !important; }
  body[data-page="leave"] .leave-page-bar { margin:0 0 6px; }
  body[data-page="leave"] .leave-page-bar .view-tabs { margin:0 0 6px !important; }
  body[data-page="leave"] .leave-page-bar .view-tab { min-height:42px; padding:0 8px; border-radius:15px; font-size:13px; line-height:42px; }
  body[data-page="leave"] .leave-control-strip { padding:5px 7px; border-radius:15px; }
  body[data-page="leave"] .leave-control-strip .month-nav { min-height:34px; }
  body[data-page="leave"] .leave-control-strip .month-nav button { width:28px; height:28px; min-width:28px !important; padding:0 !important; }
  body[data-page="leave"] .leave-control-strip .month-nav .leave-today-btn { width:auto; min-width:52px !important; padding:0 8px !important; }
  body[data-page="leave"] .leave-mobile-guide-card { display:none !important; }
  body[data-page="leave"] .overview { gap:6px !important; margin:0 0 8px; }
  body[data-page="leave"] .overview-item { min-height:60px; padding:7px 6px !important; border-radius:16px; }
  body[data-page="leave"] .overview-value { font-size:20px; line-height:1.05; }
  body[data-page="leave"] .overview-label { margin-top:2px; font-size:10px; line-height:1.25; }
  body[data-page="leave"] .calendar { margin:0; padding:0 !important; border-radius:18px; }
  body[data-page="leave"] .calendar table { min-width:620px !important; }
  body[data-page="leave"] .calendar th.sticky-col { width:82px !important; min-width:82px !important; padding:5px !important; font-size:12px !important; }
  body[data-page="leave"] .calendar th:not(.sticky-col) { width:34px !important; min-width:34px !important; padding:2px !important; font-size:10px !important; }
  body[data-page="leave"] .calendar td { min-width:34px !important; height:32px !important; padding:1px !important; }
  body[data-page="leave"] .calendar td.sticky-col { width:82px !important; min-width:82px !important; padding:4px 6px !important; }
  body[data-page="leave"] .calendar .leave-badge { padding:2px 5px !important; font-size:10px !important; }
}

/* The primary mobile navigation is a floating glass capsule, not a full-width footer. */
@media (max-width:768px) {
  #om-tabbar.om-dock-v3 {
    left:24px !important;
    right:24px !important;
    bottom:16px !important;
    height:72px !important;
    max-height:72px !important;
    padding:8px 12px !important;
    border:1px solid rgba(255,255,255,.94) !important;
    border-radius:36px !important;
    background:linear-gradient(145deg,rgba(255,255,255,.91),rgba(238,241,255,.78)) !important;
    box-shadow:0 14px 34px rgba(67,81,151,.17),inset 0 1px 0 rgba(255,255,255,.96) !important;
  }
  #om-tabbar.om-dock-v3 .om-dock-item { height:54px !important; border-radius:27px !important; }
  #om-tabbar.om-dock-v3 .om-dock-icon { width:28px !important; height:28px !important; }
  #om-tabbar.om-dock-v3 .om-dock-item.is-active .om-dock-icon { filter:drop-shadow(0 3px 5px rgba(82,99,205,.18)); }
  body[data-page="home"] .home-clock-entry { display:flex; align-items:center; gap:12px; min-height:68px; margin:0 0 12px; padding:11px 14px; box-sizing:border-box; text-decoration:none; color:#35416d; border:1px solid rgba(255,255,255,.9); border-radius:21px; background:linear-gradient(145deg,rgba(255,255,255,.76),rgba(238,242,255,.52)); box-shadow:0 8px 21px rgba(82,95,162,.09),inset 0 1px 0 rgba(255,255,255,.88); }
  body[data-page="home"] .home-clock-entry-icon { display:grid; place-items:center; width:38px; height:38px; flex:0 0 38px; color:#d28b64; border-radius:14px; background:linear-gradient(135deg,rgba(255,244,235,.98),rgba(255,224,205,.74)); box-shadow:inset 0 1px 0 rgba(255,255,255,.86); }
  body[data-page="home"] .home-clock-entry-icon svg { width:22px; height:22px; }
  body[data-page="home"] .home-clock-entry-copy { display:grid; gap:2px; min-width:0; }
  body[data-page="home"] .home-clock-entry-copy small { color:#9a8a8a; font-size:9px; font-weight:750; letter-spacing:1px; }
  body[data-page="home"] .home-clock-entry-copy b { color:#394674; font-size:15px; font-weight:780; }
  body[data-page="home"] .home-clock-entry-copy em { color:#8791ae; font-size:11px; font-style:normal; }
  body[data-page="home"] .home-clock-entry-arrow { margin-left:auto; color:#8290cf; font-size:30px; font-weight:300; line-height:1; }
  body[data-page="home"] .home-clock-entry { display:none !important; }
  body[data-page="home"] #attendanceBoard { display:none !important; }
  body[data-page="home"] #attendanceBoard.is-home-detail { display:block !important; }
  body[data-page="home"] .attendance-detail-close { display:none; }
  body[data-page="home"] #attendanceBoard.is-home-detail .attendance-detail-close { display:block; width:auto; margin:0 0 8px; padding:0; border:0; color:#6b7bd2; font-size:12px; font-weight:720; background:transparent; }
}
