:root{
  --blue:#0d5b96; --blue-d:#084a82; --blue-l:#1d6fc4;
  --ink:#17293b; --sub:#7d8fa3; --line:#e9eef5;
  --bg:#f1f5fa; --card:#fff; --red:#d9533c; --green:#268a52;
  --shadow:0 4px 18px rgba(23,54,88,.07);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
body{background:#e7edf5;color:var(--ink);
  font-family:system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;
  font-size:15px;line-height:1.5}
button,input,select,textarea{font-family:inherit;font-size:inherit;outline:none}
button{cursor:pointer}
.loading{text-align:center;padding:80px 20px;color:var(--sub)}

/* ---------- 全站表头 / 版权（所有页面常驻） ---------- */
/* 蓝色填充只覆盖与下方表格同宽的区域：普通页 480px，全员月表 / 后台 1500px 自动跟随 */
.site-head{width:100%;max-width:480px;margin:0 auto;
  background:linear-gradient(160deg,#0d5b96 0%,#084a82 100%);color:#fff;
  text-align:center;font-size:26px;font-weight:800;letter-spacing:3px;
  padding:11px 12px;line-height:1.35}
.site-head.wide{max-width:1500px}
.site-foot{text-align:center;color:#8a9bad;font-size:12px;letter-spacing:.5px;
  padding:11px 10px 13px;background:#e7edf5;border-top:1px solid #dbe4ef}

/* ---------- 外壳 ---------- */
.shell{max-width:480px;margin:0 auto;min-height:calc(100vh - 92px);background:var(--bg);
  box-shadow:0 0 40px rgba(20,50,85,.10);position:relative}
.shell.wide{max-width:1500px}
.hdr{background:linear-gradient(160deg,#1168aa 0%,#0b538f 55%,#084a82 100%);color:#fff;
  padding:16px 14px 20px}
.hdr-inner{max-width:452px;margin:0 auto}
.shell.wide .hdr-inner{max-width:1472px}
.hdr-top{display:flex;align-items:center;gap:10px}
.plus{width:36px;height:36px;flex:none;border-radius:12px;border:0;
  background:rgba(255,255,255,.18);color:#fff;font-size:22px;line-height:1;
  display:flex;align-items:center;justify-content:center}
/* 页面标题明显小于总表头（26px），层级更清楚 */
.hdr h1{font-size:15px;font-weight:700;margin:0;letter-spacing:.5px}
.hdr .sub{font-size:12px;opacity:.85;margin-top:2px}
.hdr .sub b{font-weight:600}
#hdr-clock{font-variant-numeric:tabular-nums;letter-spacing:.2px}
.hdr-right{margin-left:auto;display:flex;gap:8px;align-items:center}
.hdr-btn{background:rgba(255,255,255,.16);border:0;color:#fff;border-radius:10px;
  padding:7px 11px;font-size:12px}
.tabs{margin-top:15px;background:rgba(0,0,0,.17);border-radius:14px;padding:5px;
  display:flex;gap:2px}
.tabs button{flex:1;min-width:0;border:0;background:transparent;color:rgba(255,255,255,.85);
  font-size:15px;padding:9px 2px;border-radius:11px;white-space:nowrap;transition:.15s}
.tabs button.on{background:#fff;color:var(--blue);font-weight:750;
  box-shadow:0 2px 9px rgba(0,0,0,.14)}
.body{padding:14px 14px 44px;max-width:452px;margin:0 auto}
.shell.wide .body{max-width:1472px}
.card{background:var(--card);border-radius:18px;box-shadow:var(--shadow)}

/* ---------- 顶部日期/月份卡 ---------- */
.panel{margin-top:14px;background:#fff;border-radius:18px;padding:14px;
  box-shadow:0 6px 22px rgba(0,20,50,.10);color:var(--ink)}
.panel+.panel{margin-top:10px}
.bar{display:flex;align-items:center;gap:8px}
.nav{width:38px;height:38px;flex:none;border:0;border-radius:12px;background:#f2f6fb;
  color:#5d7b99;font-size:19px;line-height:1}
.nav:hover{background:#e5eef8}
.today-btn{width:auto;padding:0 12px;height:38px;border:0;border-radius:12px;
  background:#eaf2fc;color:var(--blue);font-size:14px;font-weight:600;flex:none}
.bar-center{flex:1;text-align:center;min-width:0}
.bar-title{font-size:21px;font-weight:750;letter-spacing:.5px}
.bar-sub{font-size:12px;color:var(--sub);margin-top:2px}
.chips{display:flex;gap:8px;margin-top:13px;flex-wrap:wrap}
.chip{border:0;background:#f1f5fa;color:#6d7f92;border-radius:18px;
  padding:6px 13px;font-size:13px;white-space:nowrap}
.chip b{font-weight:700;margin-left:3px}
.chip.on{background:var(--blue-l);color:#fff}
.search{display:flex;align-items:center;gap:8px;background:#f5f8fc;border:1px solid #dfe8f2;
  border-radius:14px;padding:0 12px;height:48px}
.search:focus-within{border-color:var(--blue-l);background:#fff;box-shadow:0 0 0 3px rgba(29,111,196,.12)}
.search input{flex:1;border:0;background:transparent;font-size:16px;color:var(--ink);min-width:0}
.search input::placeholder{color:#a8b6c6}
.search .clr{border:0;background:transparent;color:#8fa1b3;font-size:19px;padding:4px}
.search .clr[hidden]{display:none}

/* ---------- 按日期：人员列表 ---------- */
.list{overflow:hidden}
.row{display:flex;align-items:center;gap:8px;padding:14px 14px;border-bottom:1px solid var(--line);
  cursor:pointer;transition:background .12s}
.row:last-child{border-bottom:0}
.row:active,.row:hover{background:#f7fafd}
.row .nm{font-size:16px;font-weight:700;white-space:nowrap}
.row .tag{font-size:12px;color:#7b8ca0;background:#f1f5fa;padding:3px 8px;
  border-radius:8px;white-space:nowrap;flex:none}
.row .tag.sec-tag{background:#e6f0fc;color:#0d5b96;font-weight:650}
.row .right{margin-left:auto;display:flex;align-items:center;gap:8px;flex:none}
.arrow{color:#c3cedb;font-size:18px;line-height:1}
.pill{display:inline-flex;align-items:center;justify-content:center;min-width:40px;
  padding:5px 11px;border-radius:16px;font-size:13px;font-weight:650;white-space:nowrap}
.pill.sm{min-width:0;padding:3px 8px;font-size:12px;border-radius:9px}
.pill.block{min-width:36px;height:20px;padding:0;border-radius:6px}
.pill.block.sm{min-width:22px;height:16px}
.row .nm small{font-size:11px;font-weight:400;color:#93a3b4;margin-left:2px}

/* ---------- 中午值班排班 + 原表备注 ---------- */
.notes-card{padding:16px;margin-top:14px}
.notes-h{font-size:14px;font-weight:700;color:#31465c;margin-bottom:10px}
.notes-h span{font-size:11px;font-weight:400;color:#8a9bad;margin-left:8px}
.noon-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;
  background:#f6f9fd;border-radius:12px;padding:10px 12px}
.noon-title{font-weight:700;color:#0d5b96;font-size:14px;margin-right:4px;white-space:nowrap}
.noon-cell{display:flex;flex-direction:column;gap:2px;align-items:center;min-width:62px}
.noon-day{font-size:11px;color:#8a9bad}
.noon-cell b{font-size:14px;color:#24384c}
.noon-sel{height:28px;max-width:96px;border:1px solid #dbe6f2;border-radius:8px;
  background:#fff;font-size:13px;padding:0 4px;color:#24384c}
.legend-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px}
.legend-group{font-size:12px;color:#8a9bad;min-width:70px}
.legend-item{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#3b5065;
  background:#f7fafd;border-radius:9px;padding:4px 10px}
.legend-item i{width:28px;height:22px;border-radius:4px;border:1px solid rgba(0,0,0,.08);
  display:inline-flex;align-items:center;justify-content:center}
.legend-sym{font-size:18px;font-weight:800;line-height:1;color:#25384a}
.note-lines{margin-top:12px;border-top:1px dashed #e3ebf4;padding-top:10px}
.note-line{font-size:12px;color:#7d8fa3;line-height:1.8}
.empty{text-align:center;color:var(--sub);padding:52px 20px;font-size:14px}
.foot-note{text-align:center;color:#9aa9b9;font-size:12px;padding:22px 10px 6px;line-height:1.7}
.admin-entry{text-align:center;margin-top:24px;padding-bottom:6px}
.admin-entry button{background:transparent;border:1px solid #d6e1ed;color:#8a9bad;
  font-size:13px;padding:9px 20px;border-radius:20px}
.admin-entry button:hover{border-color:var(--blue-l);color:var(--blue)}

/* ---------- 月历 ---------- */
.cal{padding:16px 14px 18px}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
.cal-h{text-align:center;color:#8494a6;font-size:13px;padding:2px 0 6px}
.cal-h.we{color:#d9533c}
.cal-cell{background:#f5f8fc;border:0;border-radius:13px;min-height:76px;padding:8px 3px;
  text-align:center;transition:.12s;color:var(--ink)}
.cal-cell:hover{background:#e8f1fb}
.cal-cell.blank{background:transparent;cursor:default}
.cal-cell.today{background:var(--blue-l);color:#fff;box-shadow:0 4px 12px rgba(29,111,196,.3)}
.cal-cell .d{font-size:16px;font-weight:750;line-height:1.2}
.cal-cell .d.we{color:#e0574a}
.cal-cell.today .d{color:#fff}
.cal-cell .n{font-size:12px;color:#8fa0b2;margin-top:6px;line-height:1.55}
.cal-cell.today .n{color:#dae9fb}

/* ---------- 按姓名：整月卡片 ---------- */
.person-head{padding:16px 16px 6px;font-size:17px}
.person-head b{font-size:19px;margin-right:8px}
.person-head span{font-size:12px;color:var(--sub);font-weight:400}
.nm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(106px,1fr));gap:10px;padding:10px 14px 16px}
.nm-card{background:#fff;border:1px solid #edf2f7;border-radius:14px;padding:10px;
  min-height:76px;box-shadow:0 2px 8px rgba(20,50,85,.04)}
.nm-card .dt{font-size:12px;color:#94a3b3;white-space:nowrap}
.nm-card .sh{font-size:15px;font-weight:700;margin-top:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nm-card.rest{background:#fff6f3;border-color:#ffe2d9}
.nm-card.rest .dt{color:#d99a8b}
.nm-card.rest .sh{color:#d9533c}
.nm-card.today{background:var(--blue-l);border-color:var(--blue-l);box-shadow:0 4px 12px rgba(29,111,196,.25)}
.nm-card.today .dt{color:#d5e6fa}
.nm-card.today .sh{color:#fff}
.match-list{overflow:hidden}
.match-list .row{padding:12px 14px}
.match-list .row .nm{font-size:15px;font-weight:650}

/* ---------- 全员整月总表 ---------- */
.matrix-wrap{overflow:auto;max-height:76vh;border-radius:16px;background:#fff;box-shadow:var(--shadow)}
table.matrix{border-collapse:separate;border-spacing:0;width:100%;font-size:13px}
table.matrix th,table.matrix td{border-right:1px solid #edf2f7;border-bottom:1px solid #edf2f7;
  padding:7px 4px;text-align:center;white-space:nowrap;min-width:40px}
table.matrix th{background:#f5f9fd;color:#61758b;font-weight:650;position:sticky;top:0;z-index:2;font-size:12px}
table.matrix th.we{background:#fdf0ec;color:#d9533c}
table.matrix td.nm,table.matrix th.nm{position:sticky;left:0;z-index:3;background:#fff;
  text-align:left;padding-left:12px;min-width:104px;font-weight:650;cursor:pointer}
table.matrix th.nm{z-index:4;background:#f5f9fd;cursor:default}
table.matrix td.nm:hover{background:#f3f8fe;color:var(--blue)}
.matrix-cell{display:inline-block;padding:2px 5px;border-radius:7px;font-size:12px;font-weight:600}
.matrix-cell.big{font-size:20px;font-weight:800;padding:0 4px}
.noon-mini{margin-top:4px;font-size:11px;color:#268a52;font-weight:700}
.assist{font-size:10px;font-weight:400;color:#9aa9b9;white-space:nowrap}
/* 医生 / 护士全员月表：科室 + 姓名 + 姓名2 三列依次固定 */
table.matrix.grp th.col-dept,table.matrix.grp td.col-dept{position:sticky;left:0;z-index:3;
  background:#fff;min-width:88px;width:88px;text-align:left;padding-left:10px;font-weight:650}
table.matrix.grp th.col-dept{z-index:4;background:#f5f9fd;cursor:default}
table.matrix.grp th.nm,table.matrix.grp td.nm{left:88px;min-width:100px;width:100px}
table.matrix.grp th.nm2,table.matrix.grp td.nm2{position:sticky;left:188px;z-index:3;
  background:#fff;min-width:88px;width:88px;font-weight:650;cursor:pointer}
table.matrix.grp th.nm2{z-index:4;background:#f5f9fd;cursor:default}
table.matrix.grp td.nm2:hover{background:#f3f8fe;color:var(--blue)}
/* 非医生/护士部门（实习生、咨询等）：姓名后固定一列科室，横向滚动时跟着姓名一起留着 */
table.matrix:not(.grp) td.nm,table.matrix:not(.grp) th.nm{width:104px}
table.matrix:not(.grp) th.col-dept,table.matrix:not(.grp) td.col-dept{position:sticky;left:104px;z-index:3;
  background:#fff;min-width:88px;width:88px;text-align:left;padding-left:10px;font-weight:650}
table.matrix:not(.grp) th.col-dept{z-index:4;background:#f5f9fd;cursor:default}
.brush-label{color:#657a90;font-size:13px;margin-right:4px;font-weight:600}
.brush-tip{color:#8a9bad;font-size:12px;margin-left:6px}
.rest-toggle{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#3b5065;
  background:#f7fafd;border-radius:9px;padding:5px 10px;cursor:pointer}
.sw{display:inline-block;width:14px;height:14px;border-radius:3px;
  border:1px solid rgba(0,0,0,.1);margin-right:6px;vertical-align:-2px}
.legend{display:flex;flex-wrap:wrap;gap:8px;padding:12px 4px 0}
.legend .pill{font-size:12px}

/* ---------- 登录 ---------- */
.login-wrap{min-height:calc(100vh - 92px);display:flex;align-items:center;justify-content:center;
  background:linear-gradient(160deg,#1168aa,#084a82);padding:20px}
.login-card{background:#fff;width:100%;max-width:380px;border-radius:22px;padding:30px 26px 26px;
  box-shadow:0 18px 50px rgba(0,20,50,.25)}
.login-card .ico{width:52px;height:52px;border-radius:16px;background:#eaf2fc;color:var(--blue);
  display:flex;align-items:center;justify-content:center;font-size:26px;margin-bottom:16px}
.login-card h2{margin:0;font-size:16px}
.login-card p{margin:6px 0 22px;color:var(--sub);font-size:13px}
.field{margin-bottom:14px}
.field label{display:block;font-size:13px;color:#657a90;margin-bottom:6px;font-weight:600}
.inp{width:100%;height:46px;border:1px solid #dde6f0;border-radius:12px;padding:0 13px;
  background:#f8fbfe;color:var(--ink)}
.inp:focus{border-color:var(--blue-l);background:#fff;box-shadow:0 0 0 3px rgba(29,111,196,.12)}
textarea.inp{height:auto;padding:11px 13px;resize:vertical;line-height:1.6}
.btn{width:100%;height:46px;border:0;border-radius:12px;background:var(--blue-l);color:#fff;
  font-size:16px;font-weight:700;margin-top:6px}
.btn:hover{background:#125eab}
.btn.ghost{background:#eef4fb;color:var(--blue)}
.btn.gray{background:#f1f5fa;color:#5c7086}
.btn.danger{background:#fdecea;color:#cf4632}
.btn.sm{width:auto;height:34px;padding:0 14px;font-size:13px;border-radius:10px;margin:0}
.btn-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.login-err{color:#d9533c;font-size:13px;min-height:20px;margin-top:8px}
.login-foot{text-align:center;margin-top:18px;font-size:12px;color:#9aa9b9}

/* ---------- 管理后台 ---------- */
.admin-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0}
.admin-tabs button{border:0;background:#e7eef7;color:#5e7590;padding:8px 15px;border-radius:11px;font-size:14px}
.admin-tabs button.on{background:var(--blue-l);color:#fff;font-weight:650}
.sec{background:#fff;border-radius:16px;box-shadow:var(--shadow);padding:18px;margin-bottom:14px}
.sec h3{margin:0 0 4px;font-size:16px}
.sec .hint{color:var(--sub);font-size:12px;margin-bottom:14px;line-height:1.7}
.grid-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;align-items:end}
table.grid{border-collapse:collapse;width:100%;font-size:13px}
table.grid th,table.grid td{border-bottom:1px solid var(--line);padding:9px 8px;text-align:left}
table.grid th{color:#71859b;font-weight:600;background:#f7fafd;font-size:12px}
table.grid td .inp{height:34px;border-radius:9px;font-size:13px}
table.grid td .btn.sm{height:30px}
.icon-btn{border:0;background:#f1f5fa;color:#5f7690;border-radius:8px;padding:5px 9px;font-size:12px;margin-right:4px}
.icon-btn.del{background:#fdecea;color:#cf4632}
.icon-btn:hover{filter:brightness(.96)}
.icon-btn.mv{padding:5px 8px;font-size:14px;font-weight:700;color:var(--blue)}
.icon-btn.mv.off{opacity:.38;cursor:default}
table.grid td.ord{color:#8ba0b5;font-weight:700;width:38px;text-align:center}
.scroll{overflow:auto;max-height:62vh}

/* 排班编辑网格 */
.sched-wrap{overflow:auto;max-height:66vh;border:1px solid var(--line);border-radius:12px}
table.sched{border-collapse:separate;border-spacing:0;font-size:12px;width:100%}
table.sched th,table.sched td{border-right:1px solid #edf2f7;border-bottom:1px solid #edf2f7;
  padding:0;text-align:center;min-width:38px;height:34px}
table.sched th{background:#f5f9fd;color:#61758b;position:sticky;top:0;z-index:2;font-size:11px;
  padding:4px 2px;box-sizing:border-box;height:34px}
table.sched th.nm,table.sched td.nm{position:sticky;left:0;z-index:3;background:#fff;
  text-align:left;padding-left:10px;min-width:100px;font-weight:600}
table.sched th.nm{z-index:4;background:#f5f9fd}
table.sched td .cellbtn{width:100%;height:34px;border:0;background:transparent;font-size:12px;
  font-weight:600;color:#3c5268;border-radius:0}
table.sched td .cellbtn:hover{background:#e9f2fc}
table.sched td .cellbtn.has{padding:0}
table.sched td.sel{background:#fff6e5}
table.sched th.we,table.sched td.we{background:#fff8f6}
.select-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:10px 0}
.select-row .opt{border:1px solid #dde6f0;background:#fff;border-radius:9px;padding:5px 11px;font-size:13px}
.select-row .opt.on{border-color:var(--blue-l);background:#eaf2fc;color:var(--blue);font-weight:650}
.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.toolbar .inp{width:auto;height:36px;font-size:13px}
.spacer{flex:1}

/* 排班页：医生/护士/实习生/咨询 分组间隔 */
table.sched tr.grp-sep td{background:#eaf2fc;color:#2b5b8f;font-weight:700;text-align:left;
  padding:9px 12px;border-top:2px solid #cfe0f2;border-bottom:1px solid #cfe0f2;height:auto}
table.sched tr.grp-sep td span{font-weight:400;color:#7d93a9;margin-left:8px;font-size:12px}
/* 两行表头都要吸顶：日期行 top:0，星期行排在它下面，避免滚动时互相盖住 */
table.sched tr.wk-row th{background:#f0f6fc;top:34px}
table.sched tr.wk-row th.nm,table.sched tr.wk-row th.dp{top:34px}
table.sched td.nm .row-del{float:right;border:0;background:transparent;color:#b6c4d3;
  font-size:15px;line-height:1;cursor:pointer;padding:2px 6px}
table.sched td.nm .row-del:hover{color:#d9533c}
table.sched td .cellbtn.tech-cell{height:26px;cursor:pointer}
table.sched td.empty-tip{padding:16px;color:#8ba0b5}

/* 初复诊周表 */
.first-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px}
table.first-grid{border-collapse:collapse;width:100%;font-size:13px;min-width:760px}
table.first-grid th,table.first-grid td{border:1px solid #e3ebf3;padding:6px 5px;
  text-align:center;height:34px}
table.first-grid th{background:#f5f9fd;color:#61758b;font-weight:650}
/* 初诊/复诊、星期两列按文字长度定宽，不被 width:100% 的表格平均拉开；
   剩余宽度全部留给 7 个医生列 */
table.first-grid th.fv-col-label,table.first-grid td.fv-label{
  width:76px;min-width:76px;max-width:76px;white-space:nowrap}
table.first-grid th.fv-col-week,table.first-grid td.fv-week{
  width:56px;min-width:56px;max-width:56px;white-space:normal}
table.first-grid td.fv-week,table.first-grid td.fv-label{background:#f5f9fd;
  font-weight:650}
.fv-sel{width:100%;min-width:92px;border:1px solid #dde6f0;border-radius:6px;
  padding:5px 3px;font-size:13px;background:#fff}
/* 查询页只读：医生姓名直接显示文字，不放下拉与色块 */
.fv-ro{font-size:13px;font-weight:650;color:#24384c;white-space:nowrap}
/* 周六 / 周日名单按周轮转：工具条与行标记 */
.fv-rot{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;
  margin:10px 0 8px;padding:10px 12px;background:#f2f8ff;border:1px solid #d8e8f7;
  border-radius:10px;font-size:12px;color:#4a6076;line-height:1.7}
.fv-rot-info{flex:1 1 420px}
.fv-rot-info b{color:#0d5b96;font-size:14px}
.fv-rot-btns{display:flex;gap:6px;flex-wrap:wrap}
/* 「每周轮」小标签换行显示，避免把星期列撑宽 */
.fv-rot-tag{display:block;margin:2px 0 0;padding:0 2px;border-radius:4px;
  background:#ffe8b8;color:#8a5b00;font-size:9px;font-weight:600}
tr.fv-rot-row td{background:#fffaf0}
tr.fv-rot-row td.fv-week,tr.fv-rot-row td.fv-label{background:#fff2d8}
.ok2{color:#1c7f4a}.off2{color:#a56a00}
table.sched.tech.ro td{cursor:default}

/* 实习生独立设置页：人员 / 科室 + 日期，格子可直接手输文字 */
table.sched.intern th:not(.nm):not(.dp),
table.sched.intern td:not(.nm):not(.dp){min-width:54px}
/* 「人员」「科室」上下合并成一格，文字垂直居中 */
table.sched.intern th[rowspan]{vertical-align:middle}
table.sched.intern th.dp,table.sched.intern td.dp{position:sticky;left:100px;z-index:3;
  background:#fff;min-width:78px;font-size:12px;color:#61758b;font-weight:600}
table.sched.intern th.dp{z-index:4;background:#f5f9fd}
table.sched.intern tr.wk-row th.dp{background:#f0f6fc}
.intern-inp{width:100%;min-width:50px;height:34px;border:0;background:transparent;
  text-align:center;font-size:12px;font-weight:600;color:#3c5268;padding:0 2px;outline:none}
.intern-inp:focus{background:#e9f2fc;box-shadow:inset 0 0 0 2px var(--blue-l);border-radius:5px}
/* 科室栏可直接编辑：外观与只读文字一致，聚焦时才显出输入框 */
.intern-dept{width:100%;min-width:70px;height:30px;border:1px solid transparent;border-radius:6px;
  background:transparent;text-align:center;font-size:12px;font-weight:600;color:#3c5268;padding:0 2px;outline:none}
.intern-dept:hover{border-color:#dde6f0;background:#f8fbfe}
.intern-dept:focus{border-color:var(--blue-l);background:#e9f2fc;box-shadow:0 0 0 2px rgba(29,111,196,.12)}
.intern-note{max-width:520px;height:34px;font-size:13px}
.noon-bar + .notes-h{margin-top:16px}

/* ---------- 弹窗 / 提示 ---------- */
.mask{position:fixed;inset:0;background:rgba(14,35,60,.46);display:flex;align-items:center;
  justify-content:center;z-index:60;padding:16px}
.modal{background:#fff;border-radius:18px;width:min(560px,100%);max-height:86vh;overflow:auto;
  padding:20px;box-shadow:0 20px 60px rgba(0,20,50,.28)}
.modal h3{margin:0 0 14px;font-size:17px}
.modal .btn-row{justify-content:flex-end;margin-top:16px}
#toast{position:fixed;left:50%;bottom:30px;transform:translateX(-50%);z-index:90;
  display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}
.toast-item{background:#1e3247;color:#fff;padding:10px 18px;border-radius:22px;font-size:13px;
  box-shadow:0 6px 20px rgba(0,0,0,.2);animation:tin .2s ease}
@keyframes tin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

@media (max-width:420px){
  .tabs button{font-size:13px;padding:8px 1px}
  .hdr h1{font-size:14px}
  .bar-title{font-size:19px}
  .cal-cell{min-height:66px;padding:6px 2px}
  .cal-cell .n{font-size:11px}
  .nm-grid{grid-template-columns:repeat(3,1fr)}
  .row .tag{font-size:11px}
}
@media print{
  .hdr .tabs,.admin-entry,.toolbar,.btn,.hdr-btn{display:none}
  .shell{max-width:none;min-height:0}.matrix-wrap{max-height:none;overflow:visible}
  .login-wrap{min-height:0}
  body{background:#fff}
  .site-head{background:#fff;color:#17293b;border-bottom:1px solid #dbe4ef}
  .site-foot{background:#fff;border-top:0;color:#657a90}
}
