/* =====================================================================
   伟贤大学教务管理系统 - 手机端专用样式
   通过 <link media="(max-width:820px)"> 加载，仅小屏生效，配色与桌面端一致
   ===================================================================== */

/* ---------- 全局 ---------- */
body{font-size:14px;-webkit-text-size-adjust:100%}
input,select,textarea{font-size:16px;padding:10px 12px}   /* 16px 防 iOS 聚焦自动放大 */
.btn{padding:9px 14px}
.btn-mini{padding:4px 9px;font-size:12px}

/* ---------- 登录页 ---------- */
.login-topbar{padding:20px 18px 6px}
.login-brand{gap:10px}
.login-brand .logo{font-size:34px}
.login-brand h1{font-size:18px;letter-spacing:1px;line-height:1.4}
.login-brand p{font-size:9px;letter-spacing:0}
.login-main{flex-direction:column;gap:22px;padding:12px 16px 24px;align-items:stretch}
.login-banner{max-width:none;text-align:left}
.banner-slide{font-size:15px;min-height:auto;margin-bottom:12px;padding-left:12px;border-left-width:3px;line-height:1.6}
.login-points{font-size:13px;line-height:2;opacity:.9}
.login-card{width:100%;max-width:420px;margin:0 auto;padding:24px 20px;border-radius:10px}
.login-card h2{font-size:18px;letter-spacing:3px;margin-bottom:16px}
.role-tabs span{padding:10px 0;font-size:13px}
.btn-block{padding:12px;font-size:16px;letter-spacing:4px}
.login-footer{font-size:11px;padding:14px 16px;line-height:1.8}

/* ---------- 顶栏 ---------- */
.topbar{height:52px;padding:0 12px;gap:8px}
.menu-toggle{display:inline-flex!important;align-items:center;justify-content:center;width:38px;height:38px;border:none;background:rgba(255,255,255,.14);color:#fff;font-size:20px;border-radius:6px;flex-shrink:0}
.topbar-brand{font-size:15px;gap:6px;min-width:0;flex:1;overflow:hidden}
.topbar-brand>span:nth-child(2){white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topbar-brand .logo{font-size:20px}
.sem-badge{display:none}                    /* 学期徽章小屏隐藏，保标题可读 */
.topbar-user{gap:6px;flex-shrink:0}
.topbar-user #userInfo{display:none}        /* 用户名放进抽屉顶部显示 */

/* ---------- 抽屉式侧边栏 ---------- */
.layout{min-height:calc(100vh - 52px)}
.sidebar{
  position:fixed;top:0;left:0;bottom:0;z-index:900;
  width:76vw;max-width:300px;
  transform:translateX(-105%);
  transition:transform .25s ease;
  overflow-y:auto;-webkit-overflow-scrolling:touch;
  box-shadow:4px 0 24px rgba(0,20,60,.25);
  padding:0 0 30px;
}
.sidebar.open{transform:translateX(0)}
.sb-user{
  display:block;
  padding:18px;
  background:linear-gradient(135deg,var(--blue-deep),var(--blue));
  color:#fff;font-size:15px;line-height:1.7;
  margin-bottom:8px;
}
.sb-user span{font-size:12px;opacity:.8}
#sidebarMask{
  display:none;position:fixed;inset:0;z-index:850;
  background:rgba(10,30,60,.5);
}
#sidebarMask.show{display:block}
.menu-item{padding:12px 18px 12px 32px;font-size:14px}
.menu-group>.mg-title{padding:10px 18px 6px}

/* ---------- 内容区 ---------- */
.content{padding:12px;width:100%}
.page-title{font-size:16px;padding-bottom:10px;margin-bottom:12px}
.page-title .toolbar{width:100%;gap:6px}
.page-title .toolbar .btn{flex:1;min-width:0;white-space:nowrap;padding:8px 6px;font-size:13px}
.card{padding:12px;border-radius:8px;margin-bottom:12px}
.card h3{font-size:14px}

/* 栅格全部单列/双列 */
.grid2{grid-template-columns:1fr;gap:12px}
.grid3{grid-template-columns:repeat(2,1fr)!important;gap:10px}
.grid4{grid-template-columns:repeat(2,1fr)!important;gap:10px}
.stat-card{padding:14px}
.stat-card .num{font-size:24px}
.stat-card .lbl{font-size:12px}

/* ---------- 表格：横向滑动 ---------- */
.tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -12px;padding:0 12px}
table.tbl{min-width:640px}
.tbl th{padding:9px 6px;font-size:12px}
.tbl td{padding:8px 6px;font-size:12px}

/* ---------- 课表：横向滑动（课表同样包裹在 .tbl-wrap 内） ---------- */
.timetable{min-width:680px}
.timetable th{font-size:12px;padding:6px 2px}
.timetable .sec-col{width:56px;font-size:11px}
.tt-cell{font-size:11px;padding:3px 4px}

/* ---------- 弹窗：接近全屏 ---------- */
.modal-mask{padding:0;align-items:flex-end}
.modal,.modal.wide{
  width:100%!important;max-width:100%!important;
  max-height:92vh;
  border-radius:14px 14px 0 0;
  animation:slideUp .22s ease;
}
@keyframes slideUp{from{transform:translateY(40px);opacity:.6}to{transform:translateY(0);opacity:1}}
.modal-head{border-radius:14px 14px 0 0;padding:13px 16px}
.modal-body{padding:14px 16px}
.modal-foot{padding:12px 16px}
.modal-foot .btn{flex:1}
.form-row{flex-direction:column;gap:0}

/* ---------- 描述列表：单列 ---------- */
.desc{grid-template-columns:1fr}
.desc>div>span:first-child{width:104px;padding:9px 10px;font-size:12px}
.desc>div>span:last-child{padding:9px 10px;font-size:13px}

/* ---------- 其他组件 ---------- */
.search-bar{gap:8px}
.search-bar input,.search-bar select{flex:1;min-width:120px}
.tabs{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}
.tabs span{padding:9px 13px;white-space:nowrap;font-size:13px;flex-shrink:0}
.bar-row .bar-label{width:86px;font-size:12px}
.notice-item .n-title{font-size:13px;line-height:1.5}
.pager{justify-content:center}
#toastRoot{top:62px;width:calc(100vw - 24px)}
.toast{font-size:13px;padding:10px 14px;text-align:center}
