/* EMT 会议应用 · 通用样式（飞书内嵌网页 + 桌面浏览器） */
:root{
  --bg:#F4F5F7; --card:#FFFFFF; --line:#E3E6EB; --ink:#1F2329; --ink2:#51565D; --muted:#8F959E;
  --brand:#B2302A; --brand-soft:#FBEBEA; --blue:#3370FF; --blue-soft:#E8F0FF;
  --ok:#2EA25D; --ok-soft:#E3F5EA; --warn:#C7811A; --warn-soft:#FDF1DC; --bad:#D6403A; --bad-soft:#FBE7E6; --purple:#7A5AF8; --purple-soft:#EFEBFE;
  --r:8px; --font:"PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,-apple-system,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.6 var(--font);-webkit-font-smoothing:antialiased}
a{color:var(--blue);text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
.wrap{max-width:1080px;margin:0 auto;padding:16px}
.narrow{max-width:640px}
/* 顶栏 */
.topbar{position:sticky;top:0;z-index:20;background:var(--card);border-bottom:1px solid var(--line);height:52px;display:flex;align-items:center;padding:0 16px;gap:14px}
.topbar .brand{font-weight:700;letter-spacing:.02em;display:flex;align-items:center;gap:8px}
.topbar .brand i{width:10px;height:10px;border-radius:2px;background:var(--brand);display:inline-block}
.topbar .sp{flex:1}
.topbar nav a{color:var(--ink2);margin-right:14px}
.topbar nav a.on{color:var(--ink);font-weight:600}
.user{display:flex;align-items:center;gap:8px;color:var(--ink2);font-size:13px}
.user img{width:26px;height:26px;border-radius:50%;background:var(--line)}
/* 卡片与布局 */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px}
.card+.card{margin-top:12px}
.card h2{margin:0 0 10px;font-size:16px}
.card h3{margin:14px 0 8px;font-size:14px;color:var(--ink2)}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.grid{display:grid;gap:12px}
.grid.c2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.grid.c3{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.muted{color:var(--muted)} .small{font-size:12px} .b{font-weight:600}
.sp{flex:1}
hr{border:0;border-top:1px solid var(--line);margin:12px 0}
/* 表格 */
table{width:100%;border-collapse:collapse;font-size:13.5px}
th,td{padding:9px 10px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
th{color:var(--muted);font-weight:500;font-size:12px;white-space:nowrap}
tr:last-child td{border-bottom:0}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
.tablewrap{overflow-x:auto}
/* 状态 */
.tag{display:inline-block;font-size:12px;padding:1px 8px;border-radius:4px;background:#EEF0F3;color:var(--ink2);white-space:nowrap;line-height:1.7}
.tag.ok{background:var(--ok-soft);color:var(--ok)} .tag.warn{background:var(--warn-soft);color:var(--warn)} .tag.bad{background:var(--bad-soft);color:var(--bad)}
.tag.blue{background:var(--blue-soft);color:var(--blue)} .tag.red{background:var(--brand-soft);color:var(--brand)} .tag.purple{background:var(--purple-soft);color:var(--purple)}
/* 按钮 */
.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--card);border-radius:6px;padding:6px 12px;cursor:pointer;line-height:1.4;white-space:nowrap}
.btn:hover{border-color:#C9CED6}
.btn.p{background:var(--blue);border-color:var(--blue);color:#fff}
.btn.brand{background:var(--brand);border-color:var(--brand);color:#fff}
.btn.danger{color:var(--bad);border-color:#F1C4C2}
.btn.sm{padding:3px 9px;font-size:12.5px}
.btn.block{width:100%;justify-content:center;padding:10px}
.btn:disabled{opacity:.5;cursor:not-allowed}
/* 表单 */
label.f{display:block;margin:10px 0 4px;font-size:12.5px;color:var(--ink2)}
input.i,select.i,textarea.i{width:100%;border:1px solid var(--line);border-radius:6px;padding:8px 10px;background:#fff}
textarea.i{min-height:96px;resize:vertical}
input.i:focus,select.i:focus,textarea.i:focus{outline:2px solid var(--blue-soft);border-color:var(--blue)}
.hint{font-size:12px;color:var(--muted);margin-top:4px}
.err{color:var(--bad);font-size:13px}
/* 页签 */
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:12px 0}
.tabs a{padding:8px 12px;color:var(--ink2);border-bottom:2px solid transparent;margin-bottom:-1px}
.tabs a.on{color:var(--ink);border-bottom-color:var(--brand);font-weight:600}
/* 统计块 */
.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px}
.stat .n{font-size:24px;font-weight:700;font-variant-numeric:tabular-nums}
.stat .l{font-size:12px;color:var(--muted)}
/* 议程卡 */
.agenda{display:grid;grid-template-columns:44px 1fr auto;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}
.agenda:last-child{border-bottom:0}
.agenda .seq{width:36px;height:36px;border-radius:8px;background:var(--brand-soft);color:var(--brand);display:flex;align-items:center;justify-content:center;font-weight:700}
.agenda .t{font-weight:600;font-size:15px}
.agenda .meta{color:var(--muted);font-size:12.5px;margin-top:2px}
.agenda .ops{display:flex;flex-direction:column;gap:6px;align-items:flex-end}
/* 评分滑条 */
.score-dim{padding:12px 0;border-bottom:1px solid var(--line)}
.score-dim:last-child{border-bottom:0}
.score-dim .h{display:flex;justify-content:space-between;align-items:baseline}
.score-dim .v{font-size:26px;font-weight:700;color:var(--brand);font-variant-numeric:tabular-nums;min-width:56px;text-align:right}
.score-dim input[type=range]{width:100%;margin:8px 0 0;accent-color:var(--brand)}
.score-dim .ticks{display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}
/* 文件 */
.files li{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px dashed var(--line)}
.files li:last-child{border-bottom:0}
.drop{border:1.5px dashed #C9CED6;border-radius:8px;padding:22px;text-align:center;color:var(--ink2);background:#FAFBFC}
.drop.on{border-color:var(--blue);background:var(--blue-soft)}
/* 提示 */
.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);background:#1F2329;color:#fff;padding:10px 16px;border-radius:8px;font-size:13px;opacity:0;pointer-events:none;transition:opacity .2s;z-index:50;max-width:90vw}
.toast.on{opacity:1}
.empty{padding:28px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:8px}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.35);display:flex;align-items:center;justify-content:center;z-index:40;padding:16px}
.modal .box{background:#fff;border-radius:10px;padding:18px;width:100%;max-width:560px;max-height:90vh;overflow:auto}
@media (max-width:640px){ .wrap{padding:10px} .agenda{grid-template-columns:36px 1fr} .agenda .ops{grid-column:1/-1;flex-direction:row;flex-wrap:wrap;align-items:center} .topbar nav{display:none} }
