/* 传习中心系统 v2 —— 公共样式（蓝白主题，与每日检视表一致） */
:root{
  --blue:#0D3B7A; --blue-l:#e8eef7; --blue-ll:#f4f7fc; --blue-lll:#fbfcfe;
  --gold:#b8860b; --green:#1e8e5a; --red:#c0392b; --line:#d7e0ec; --ink:#1c1f26;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{margin:0;padding:0;}
body{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","微软雅黑",sans-serif;background:#eef1f6;color:var(--ink);font-size:15px;line-height:1.55;}
.page{max-width:900px;margin:0 auto;padding:14px 12px 30px;}
a{color:var(--blue);text-decoration:none;}
/* 顶栏 */
.topbar{background:var(--blue);color:#fff;padding:12px 16px;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:20;box-shadow:0 2px 8px rgba(13,59,122,.25);}
.topbar .t{font-size:17px;font-weight:800;letter-spacing:1px;}
.topbar .u{font-size:13px;opacity:.92;}
/* 卡片 */
.card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin:12px 0;box-shadow:0 1px 6px rgba(13,59,122,.06);}
.card h3{margin:0 0 10px;font-size:16px;color:var(--blue);}
.muted{color:#7a8798;font-size:12px;}
/* 按钮 */
.btn{border:1px solid #b9c6d8;background:#fff;color:#33415c;border-radius:7px;padding:8px 14px;font-size:14px;cursor:pointer;}
.btn:hover{background:var(--blue-l);}
.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:700;}
.btn.small{padding:5px 10px;font-size:13px;}
.btn.warn{color:#a0301f;border-color:#e2b9b0;}
.btn:disabled{opacity:.5;cursor:default;}
/* 表单 */
input[type=text],input[type=number],input[type=date],input[type=time],select,textarea{
  padding:7px 9px;border:1px solid #b9c6d8;border-radius:7px;font-size:14px;background:#fff;color:#14213d;font-family:inherit;}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--blue);}
label.f{display:flex;flex-direction:column;gap:4px;font-size:13px;color:#33415c;font-weight:600;}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;}
/* 表格 */
table.tb{width:100%;border-collapse:collapse;font-size:13.5px;}
table.tb th{background:var(--blue-ll);color:var(--blue);padding:8px;border:1px solid var(--line);text-align:left;font-size:12.5px;}
table.tb td{border:1px solid var(--line);padding:7px 8px;}
/* 徽章 */
.badge{display:inline-block;padding:2px 10px;border-radius:12px;font-size:12px;font-weight:700;}
.badge.b{background:var(--blue);color:#fff;}
.badge.g{background:var(--gold);color:#fff;}
.badge.ok{background:#e5f4ec;color:#14532d;}
.badge.no{background:#fdeeea;color:#8a2318;}
.badge.gray{background:#eef2f7;color:#5a6b83;}
/* 首页导航 */
.nav-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px;}
.nav-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px 16px;display:flex;flex-direction:column;gap:6px;cursor:pointer;transition:.15s;box-shadow:0 1px 6px rgba(13,59,122,.06);}
.nav-card:active{transform:scale(.98);}
.nav-card .ic{font-size:26px;}
.nav-card .nm{font-weight:800;color:var(--blue);font-size:15.5px;}
.nav-card .ds{font-size:12px;color:#7a8798;}
.nav-card.hl{background:var(--blue);border-color:var(--blue);}
.nav-card.hl .nm{color:#fff;}
.nav-card.hl .ds{color:#c9d8ef;}
.nav-card.hl .ic{color:#e3c88f;}
/* 聊天室 */
.msg-list{display:flex;flex-direction:column;gap:10px;padding:4px 2px 12px;min-height:220px;max-height:46vh;overflow-y:auto;}
.msg{display:flex;gap:8px;align-items:flex-start;}
.msg .av{width:34px;height:34px;border-radius:17px;background:var(--blue-l);color:var(--blue);font-weight:800;font-size:14px;display:flex;align-items:center;justify-content:center;flex:none;}
.msg.mine{flex-direction:row-reverse;}
.msg .bd{max-width:72%;}
.msg .meta{font-size:11px;color:#9aa7b8;margin:0 2px 2px;}
.msg.mine .meta{text-align:right;}
.bubble{background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px 12px;font-size:14px;word-break:break-word;}
.msg.mine .bubble{background:var(--blue);color:#fff;border-color:var(--blue);}
.bubble.voice{display:flex;align-items:center;gap:8px;cursor:pointer;min-width:110px;}
.bubble.voice .tri{font-size:15px;}
.bubble.voice .dur{font-size:12px;opacity:.85;}
.input-bar{display:flex;gap:8px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:12px;padding:8px 10px;position:sticky;bottom:8px;}
.input-bar input[type=text]{flex:1;border:none;font-size:15px;padding:6px 4px;}
.input-bar input[type=text]:focus{border:none;}
.mic{width:42px;height:42px;border-radius:21px;border:none;background:var(--gold);color:#fff;font-size:19px;cursor:pointer;flex:none;display:flex;align-items:center;justify-content:center;}
.mic.rec{background:var(--red);animation:pulse 1s infinite;}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:.55;}}
.send{width:42px;height:42px;border-radius:21px;border:none;background:var(--blue);color:#fff;font-size:16px;cursor:pointer;flex:none;}
/* 概要卡 */
.sum-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;font-size:12px;margin-top:6px;}
.sum-it{text-align:center;background:var(--blue-lll);border:1px solid var(--line);border-radius:8px;padding:6px 2px;}
.sum-it .k{color:#7a8798;font-size:11px;}
.sum-it .v{font-weight:800;font-size:13px;margin-top:2px;}
.v.ok{color:var(--green);} .v.no{color:var(--red);}
/* tabs */
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0;}
.tabs button{border:1px solid #b9c6d8;background:#fff;border-radius:16px;padding:6px 16px;font-size:13.5px;color:#33415c;cursor:pointer;}
.tabs button.on{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:700;}
/* toast */
#toast{position:fixed;left:50%;bottom:44px;transform:translateX(-50%);background:#22304a;color:#fff;padding:9px 18px;border-radius:20px;font-size:13px;opacity:0;transition:.25s;z-index:99;pointer-events:none;max-width:86vw;}
#toast.show{opacity:.97;}
.empty{padding:22px;text-align:center;color:#9aa7b8;font-size:13.5px;}
@media(max-width:660px){.nav-cards{grid-template-columns:1fr 1fr;}}
