:root{--bg:#f4f6f4;--card:#fff;--ink:#333;--mut:#666;--pri:#01a446;--pri2:#028a3a;--ok:#2f855a;--warn:#c05621;--line:#e3e8ef}
*{box-sizing:border-box}
body{margin:0;font:15px/1.6 -apple-system,"PingFang SC","Microsoft YaHei",sans-serif;background:var(--bg);color:var(--ink);padding-bottom:64px}
a{color:var(--pri2);text-decoration:none}
b{font-weight:600}
.muted{color:var(--mut);font-size:.85em}
.err{color:var(--warn)}
.d{color:var(--mut);font-variant-numeric:tabular-nums}
.who{color:var(--pri2);font-size:.88em}
.due{color:var(--warn);font-size:.85em;border:1px solid var(--warn);border-radius:4px;padding:0 6px}
.src{font-size:.85em}
.play{color:var(--ok)}
/* 顶栏 */
.topbar{display:flex;align-items:center;gap:1rem;padding:.6rem 1rem;background:var(--pri);color:#fff;position:sticky;top:0;z-index:9}
.brand{color:#fff;font-weight:700;letter-spacing:.05em}
.topnav{display:flex;gap:.2rem;flex:1}
.topnav a{color:#cfe0f2;padding:.3rem .7rem;border-radius:6px}
.topnav a.on{background:rgba(255,255,255,.16);color:#fff}
.tools a{color:#cfe0f2;margin-left:.4rem}
.bottomnav{display:none}
@media(max-width:720px){
  .topnav{display:none}
  .bottomnav{display:flex;position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--line);z-index:9}
  .bottomnav a{flex:1;text-align:center;font-size:.72em;color:var(--mut);padding:.35rem 0 .45rem}
  .bottomnav a span{display:block;font-size:1.35em}
  .bottomnav a.on{color:var(--pri)}
}
/* 布局 */
main{max-width:980px;margin:0 auto;padding:1rem}
.pagehead{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin:.4rem 0 .8rem}
.pagehead h1{font-size:1.35rem;margin:0}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:1rem;margin-bottom:1rem}
.cardhead{display:flex;justify-content:space-between;align-items:baseline}
.cardhead h2,.card h3,.card h4{margin:.1rem 0 .6rem;font-size:1.02rem}
.more{font-size:.85em}
.tag{display:inline-block;background:#e6f6ec;color:var(--pri);border-radius:99px;padding:.05rem .6rem;font-size:.82em;margin-right:.2rem}
.tag.big{font-size:.95em;padding:.2rem .8rem}
.num{font-family:ui-monospace,monospace;background:#f0f3f7;border-radius:4px;padding:0 .4rem;font-size:.85em;color:var(--mut)}
/* 统计行 */
.statrow{display:flex;gap:.6rem;margin-bottom:1rem}
.stat{flex:1;background:var(--card);border:1px solid var(--line);border-radius:10px;text-align:center;padding:.7rem 0;color:var(--ink)}
.stat b{display:block;font-size:1.3rem;color:var(--pri)}
.stat{font-size:.82em;color:var(--mut)}
/* 搜索条 */
.searchbar{margin-bottom:1rem}
.searchlink,.searchbar input{display:block;width:100%;padding:.7rem 1rem;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--mut)}
.searchbar input{color:var(--ink);font-size:1rem}
/* 待办 */
.todolist{list-style:none;margin:0;padding:0}
.todolist li{padding:.45rem 0;border-bottom:1px dashed var(--line);display:flex;gap:.5rem;flex-wrap:wrap;align-items:baseline}
.todolist li:last-child{border-bottom:none}
/* 通话卡片 */
.callgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:.7rem}
.callcard{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:.7rem .85rem;color:var(--ink);display:block}
.callcard:hover{border-color:var(--pri2)}
.cc-top{display:flex;justify-content:space-between}
.cc-mid{font-size:.9em;color:#33414f;margin:.25rem 0;height:2.7em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.cc-bot{display:flex;gap:.5rem;align-items:center;font-size:.82em;color:var(--mut)}
/* 人卡 */
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.7rem}
.pcard{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:.7rem .8rem;color:var(--ink);display:flex;flex-direction:column;gap:.25rem}
.pcard:hover{border-color:var(--pri2)}
/* 筛选/表单 */
.filterbar{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem;align-items:center}
.filterbar input,.filterbar select{padding:.4rem .6rem;border:1px solid var(--line);border-radius:8px;background:#fff}
.filterbar button{padding:.4rem .9rem;border:none;border-radius:8px;background:var(--pri);color:#fff}
/* 表格 */
.tbl{width:100%;border-collapse:collapse;font-size:.92em}
.tbl th{color:var(--mut);text-align:left;font-weight:500;border-bottom:2px solid var(--line);padding:.35rem .5rem}
.tbl td{border-bottom:1px solid var(--line);padding:.4rem .5rem;vertical-align:top}
.tbl .brief{max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* 详情 */
.meta{display:flex;gap:1.2rem;flex-wrap:wrap;font-size:.85em;color:var(--mut)}
.sum-block{margin:.4rem 0}
.sum-block h4{margin:.2rem 0;color:var(--pri)}
.sum-block ul{margin:.2rem 0;padding-left:1.2rem}
.sum-todo{border-left:4px solid var(--warn);padding-left:.8rem;background:#fffaf5;border-radius:6px}
.sum-oneline{color:var(--pri);font-weight:600}
audio{width:100%;margin-top:.3rem}
.transcript{font-size:.9em;color:#2a3542}
.transcript p{margin:.35rem 0}
.stamp{color:#8aa;font-family:ui-monospace,monospace;font-size:.88em}
.pic{white-space:pre-wrap}
/* 翻页 */
.pager{display:flex;gap:1rem;justify-content:center;align-items:center;margin:1rem 0}
/* 登录 */
.loginbody{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--pri)}
.logincard{background:#fff;border-radius:14px;padding:2rem;width:min(340px,92vw)}
.logincard h1{margin:0 0 .2rem;text-align:center;color:var(--pri)}
.logincard .muted{text-align:center;margin:0 0 1rem}
.logincard input{display:block;width:100%;padding:.6rem .8rem;margin-bottom:.7rem;border:1px solid var(--line);border-radius:8px;font-size:1rem}
.logincard button{display:block;width:100%;padding:.65rem;border:none;border-radius:8px;background:var(--pri);color:#fff;font-size:1rem}
/* P0.1:日历/点云/页签/头像/模式切换/今日区 */
a{color:#028a3a}
.topbar{background:#026d36}
.modeswitch{margin-left:auto;display:flex;gap:0;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.modeswitch a{padding:.25rem .8rem;font-size:.9em;color:var(--mut);background:#fff}
.modeswitch a.on{background:#01a446;color:#fff}
.calhead{display:flex;justify-content:center;gap:1.2rem;align-items:center;margin:.6rem 0}
table.cal{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.cal th{font-size:.8em;color:var(--mut);padding:.3rem;background:#fafbfa}
.cal td{border:1px solid #eef1ee;text-align:center;padding:.35rem 0;position:relative;height:2.4rem}
.cal td.today{background:#e6f6ec;font-weight:700}
.cal td.sel{outline:2px solid #01a446;outline-offset:-2px}
.dot{font-size:.55em;color:#01a446;margin-left:2px}
.dot.late{color:#d64541}
.graphwrap{text-align:center}
svg.graph{width:min(420px,92vw);height:auto}
svg.graph a:hover circle{stroke:#333;stroke-width:2}
.avatar{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:50%;color:#fff;font-weight:700}
.avatar.big{width:3rem;height:3rem;font-size:1.3rem}
.weekstat{margin:.1rem 0 .6rem}
.card.focus{border-left:4px solid #d64541}
.tabs>input{display:none}
.tabs>label{display:inline-block;padding:.35rem 1rem;background:#fff;border:1px solid var(--line);border-bottom:none;border-radius:8px 8px 0 0;margin-right:.3rem;color:var(--mut);cursor:pointer}
.tabs>input:checked+label{background:#01a446;color:#fff}
.tabc{border-top-left-radius:0;margin-top:0}
#t2:not(:checked)~#c2,#t3:not(:checked)~#c3{display:none}
#t1:checked~#c2,#t1:checked~#c3{display:none}
#t2:checked~#c3{display:none}
#t2:checked~#c1{display:none}
#t3:checked~#c1,#t3:checked~#c2{display:none}
.stamp{color:#7a9;font-family:ui-monospace,monospace;font-size:.88em}
.stamp:hover{color:#01a446;text-decoration:underline}
.stamp.now{color:#01a446;font-weight:700;background:#e6f6ec;border-radius:3px}
