/* /m 页面补充样式：只引用 shared/base.css 的令牌，不写死色值和像素；组件主体都在 base.css。 */

/* ---------- 登录与状态屏 ---------- */
.login{padding-top:var(--sp-8)}
.login-brand{display:flex;align-items:center;margin-bottom:var(--sp-6)}
.login-brand .logo{margin-right:var(--sp-2)}
.login-t{font-size:var(--fs-4);font-weight:var(--fw-h);line-height:var(--lh-tight)}
.login-s{margin-top:var(--sp-2);font-size:var(--fs-2);line-height:var(--lh-body);color:var(--c-text-2)}
.login-s b{color:var(--c-text);font-weight:var(--fw-b)}
.btns{display:flex;flex-direction:column;margin-top:var(--sp-6)}
.btns .btn{flex:none}
.btns .btn + .btn{margin-left:0;margin-top:var(--sp-2)}
.err{margin-top:var(--sp-2);font-size:var(--fs-2);line-height:var(--lh-body);color:var(--c-red)}
.err:empty{display:none}

/* ---------- 空状态、占位 ---------- */
.empty{padding:var(--sp-8) 0;text-align:center}
.empty .btn{display:inline-flex;margin-top:var(--sp-4);padding:0 var(--sp-6)}
.empty-t{font-size:var(--fs-2);line-height:var(--lh-body);color:var(--c-text-2)}
.body > .empty-t{padding-top:var(--sp-8);text-align:center}

/* ---------- 公示栏补充 ---------- */
.navbtn[disabled]{opacity:var(--op-disabled)}
.rec.is-tap{cursor:pointer}
.rec-pic{flex:none;align-self:center;display:flex;align-items:center;justify-content:center;min-width:var(--tap);height:var(--tap);margin:calc(var(--sp-rec) * -1) calc(var(--sp-2) * -1) calc(var(--sp-rec) * -1) var(--sp-1);font-size:var(--fs-1);font-weight:var(--fw-b);color:var(--c-text-2)}
.rec-pic .ic{margin-right:var(--sp-1)}
.week-cal{margin-top:var(--sp-1)}
.week-cal .cal-w{margin-top:var(--sp-3)}
button.d{display:block;padding:0}
.legend{margin-bottom:var(--sp-2)}

/* ---------- 看大图 ---------- */
.viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-sheet);display:flex;flex-direction:column;background:var(--c-bg)}
.viewer-bar{flex:none;display:flex;align-items:center;justify-content:space-between;max-width:var(--page-max);width:100%;margin:0 auto;padding:var(--sp-2) var(--sp-4)}
.viewer-n{font-size:var(--fs-2);color:var(--c-text-2)}
.viewer-img{flex:1 1 auto;display:flex;align-items:center;justify-content:center;min-height:0;padding:0 var(--sp-4)}
.viewer-img img{max-height:var(--sheet-max);object-fit:contain;border-radius:var(--r-4)}
.viewer-nav{flex:none;display:flex;justify-content:center;padding:var(--sp-4) 0 var(--sp-6)}
.viewer-nav .navbtn + .navbtn{margin-left:var(--sp-6)}

/* ---------- 记一条 ---------- */
.quick .opt[disabled]{opacity:var(--op-disabled)}
.qty-box{display:flex;align-items:center;min-width:0}
.qty-in{flex:1 1 0;width:0;min-width:0;height:100%;text-align:right;font-size:var(--fs-4);font-weight:var(--fw-b)}
.qty-box span{flex:1 1 0;text-align:left}
.input select{flex:1 1 auto;min-width:0;height:100%;font-size:var(--fs-2)}
.input select option{background:var(--c-panel);color:var(--c-text)}
.input-t.is-muted{color:var(--c-text-3)}
input.input,textarea.input{color:var(--c-text)}
.ph.is-busy{opacity:var(--op-disabled)}
.ph.is-add{cursor:pointer}
.file-in{display:none}
.void-note{margin-top:var(--sp-2);padding:var(--sp-3) var(--sp-4);background:var(--c-red-wash);border-radius:var(--r-3);font-size:var(--fs-2);line-height:var(--lh-body);color:var(--c-red)}

/* ---------- 任务：列表、详情、底部弹层、派任务 ---------- */
.task .status{margin-top:0}
.task-t{margin-top:var(--sp-2);font-size:var(--fs-3);font-weight:var(--fw-b);line-height:var(--lh-tight)}
.task-m{margin-top:var(--sp-1);font-size:var(--fs-2);line-height:var(--lh-body);color:var(--c-text-2)}
.status-due.is-red{color:var(--c-red)}
.kv-v.is-none{font-weight:var(--fw-m);color:var(--c-text-3)}
.pre{white-space:pre-wrap;overflow-wrap:break-word}
.sheet-t{font-size:var(--fs-3);font-weight:var(--fw-b);line-height:var(--lh-tight)}
.sheet-acts{display:flex;margin-top:var(--sp-5)}
.sheet-acts.is-top{margin-top:var(--sp-4)}
input.input[type="date"]{color-scheme:dark}

/* ---------- 我的：入口、报销、打卡、总结 ---------- */
.menu{margin-top:var(--sp-2);background:var(--c-panel);border:var(--hair) solid var(--c-line);border-radius:var(--r-5)}
.menu-i{display:flex;align-items:center;min-height:var(--tap);padding:var(--sp-4);border-bottom:var(--hair) solid var(--c-line);color:var(--c-text);text-decoration:none}
.menu-i:last-child{border-bottom:0}
.menu-t{flex:1 1 auto;min-width:0}
.menu-t b{display:block;font-size:var(--fs-3);font-weight:var(--fw-b);line-height:var(--lh-tight)}
.menu-t span{display:block;margin-top:var(--sp-1);font-size:var(--fs-2);line-height:var(--lh-body);color:var(--c-text-2)}
.menu-i .ic{flex:none;margin-left:var(--sp-2);color:var(--c-text-3)}
.exp-a{display:flex;align-items:baseline;justify-content:space-between;margin-top:var(--sp-2);font-size:var(--fs-3);line-height:var(--lh-tight)}
.exp-w{flex:1 1 auto;min-width:0;font-weight:var(--fw-b);overflow-wrap:break-word}
.exp-a b{flex:none;margin-left:var(--sp-3);font-weight:var(--fw-b)}
.card > .exp-a:first-child{margin-top:0}
.dup{margin-top:var(--sp-2);padding:var(--sp-3) var(--sp-4);background:var(--c-raised);border-radius:var(--r-3);font-size:var(--fs-2);line-height:var(--lh-body);color:var(--c-text)}
.att-n{margin-top:var(--sp-3)}
.att-h{display:flex;align-items:baseline;justify-content:space-between;padding-bottom:var(--sp-2);font-size:var(--fs-3)}
.att-h span{font-size:var(--fs-2);color:var(--c-text-2)}
.sum-notable{margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:var(--hair) solid var(--c-line);font-size:var(--fs-2);line-height:var(--lh-body);color:var(--c-text-2)}
.sum-s{padding:var(--sp-3) 0;border-bottom:var(--hair) solid var(--c-line);font-size:var(--fs-2);line-height:var(--lh-body)}
.sum-refs{display:flex;flex-wrap:wrap;margin-top:var(--sp-2)}
.sum-ref{min-height:var(--tap);margin:0 var(--sp-2) var(--sp-1) 0;padding:0 var(--sp-3);border:var(--hair) solid var(--c-line-strong);border-radius:var(--r-4);font-size:var(--fs-2);color:var(--c-text-2)}
.sum-ref.is-void{color:var(--c-red-dim)}
.sum-foot{margin:var(--sp-6) 0 var(--sp-4);font-size:var(--fs-2);line-height:var(--lh-body);color:var(--c-text-3)}

/* ---------- 管理：待处理卡片、列表行、人员、审核 ---------- */
.todo{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--sp-3)}
.todo-i{display:block;margin-bottom:0;color:var(--c-text);text-decoration:none}
.todo-n{display:block;font-size:var(--fs-5);font-weight:var(--fw-h);line-height:var(--lh-num);letter-spacing:var(--ls-num)}
.todo-n.is-zero{color:var(--c-text-3)}
.todo-l{display:block;margin-top:var(--sp-2);font-size:var(--fs-2);line-height:var(--lh-tight);color:var(--c-text-2)}
.todo > .empty-t,.todo > .empty{grid-column:1 / -1}
.filter{padding-top:var(--sp-2);margin-bottom:var(--sp-3)}
.filter .seg-i{font-size:var(--fs-2)}
.acts-top{display:flex;margin:var(--sp-2) 0 var(--sp-3)}
.card.row{display:flex;align-items:center}
.row-main{flex:1 1 auto;min-width:0}
.row-main .task-t{margin-top:0}
.btn.is-inline{flex:none;flex-grow:0;height:var(--tap);margin-left:var(--sp-3);padding:0 var(--sp-4);font-size:var(--fs-2)}
.card-acts{display:flex;margin-top:var(--sp-3)}
.card-acts .btn{height:var(--tap);font-size:var(--fs-2)}
.card-head + .void-note{margin-top:var(--sp-3)}
.blocked{margin-top:var(--sp-1)}
.blocked li{min-height:var(--tap);display:flex;align-items:center}
.blocked a{color:var(--c-text);text-decoration:underline}
.dup.is-cross{margin-bottom:var(--sp-2);border-left:var(--bold-line) solid var(--c-warn);color:var(--c-warn)}   /* 和别人截图相同：警示黄 */
.sys-t{font-size:var(--fs-2);line-height:var(--lh-body);color:var(--c-text-2)}
.sys-t.is-fail{color:var(--c-red)}
.rec-main .hist-t{white-space:normal}

/* ---------- 提示条（toast）与弹窗（UI.modal / UI.confirm） ---------- */
.toast-wrap{position:fixed;left:0;right:0;top:var(--sp-4);z-index:var(--z-toast);display:flex;flex-direction:column;align-items:center;padding:0 var(--sp-4);pointer-events:none}
.toast{max-width:var(--page-max);margin-bottom:var(--sp-2);padding:var(--sp-3) var(--sp-4);background:var(--c-raised);border:var(--hair) solid var(--c-line-strong);border-radius:var(--r-4);font-size:var(--fs-2);line-height:var(--lh-body);color:var(--c-text)}
.toast-ok{color:var(--c-green)}
.toast-err{color:var(--c-red)}
.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-sheet);display:flex;align-items:center;justify-content:center;padding:var(--sp-4);background:var(--c-scrim)}
.modal{width:100%;max-width:var(--page-max);background:var(--c-panel);border:var(--hair) solid var(--c-line-strong);border-radius:var(--r-5)}
.modal-head{padding:var(--sp-5) var(--sp-4) 0;font-size:var(--fs-3);font-weight:var(--fw-b)}
.modal-body{padding:var(--sp-3) var(--sp-4) var(--sp-4);font-size:var(--fs-2);line-height:var(--lh-body);color:var(--c-text-2)}
.modal-actions{display:flex;padding:0 var(--sp-4) var(--sp-4)}
