/* 砚舟 · 邀请 / 账号 / 后台 共享组件 */
:root{--paper:#FAF8F3;--ink:#1C1B19;--muted:#6B675F;--line:#E6E1D6;--accent:#C8572A;--soft:#F3EEE4}
.card{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 1px 2px rgba(28,27,25,.03),0 8px 24px -12px rgba(28,27,25,.08)}
.card-flat{background:#fff;border:1px solid var(--line);border-radius:20px}
.eyebrow{font-size:11px;letter-spacing:.28em;color:var(--accent);text-transform:uppercase}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;height:44px;padding:0 1.25rem;border-radius:999px;font-size:14px;font-weight:500;transition:background .2s,color .2s,border-color .2s,box-shadow .2s,transform .1s;white-space:nowrap;cursor:pointer}
.btn:active{transform:translateY(1px)}
.btn:disabled{opacity:.55;cursor:not-allowed}
.btn-sm{height:34px;padding:0 .9rem;font-size:13px}
.btn-lg{height:52px;padding:0 1.75rem;font-size:15px}
.btn-ink{background:var(--ink);color:var(--paper)}.btn-ink:hover{background:var(--accent)}
.btn-accent{background:var(--accent);color:#fff}.btn-accent:hover{background:var(--ink)}
.btn-ghost{border:1px solid var(--line);background:#fff;color:var(--ink)}.btn-ghost:hover{border-color:var(--ink)}
.btn-line{border:1px solid var(--ink);color:var(--ink)}.btn-line:hover{background:var(--ink);color:var(--paper)}
.btn-danger{border:1px solid #F0CFC4;color:#B4401C;background:#fff}.btn-danger:hover{background:#FBEDE7}
.field{width:100%;height:48px;padding:0 1rem;border:1px solid var(--line);background:#fff;border-radius:14px;font-size:15px;outline:none;transition:border-color .15s,box-shadow .15s;color:var(--ink)}
.field::placeholder{color:#A39E93}
.field:focus{border-color:var(--ink);box-shadow:0 0 0 4px rgba(28,27,25,.06)}
.field.err{border-color:#C24A2A;box-shadow:0 0 0 4px rgba(200,87,42,.10)}
.field-sm{height:38px;font-size:14px;border-radius:12px;padding:0 .8rem}
.label{display:block;font-size:13px;color:var(--muted);margin-bottom:.4rem}
.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .55rem;border-radius:999px;font-size:12px;line-height:1.5;border:1px solid var(--line);color:var(--muted);background:var(--paper);white-space:nowrap}
.badge-ok{color:#3F6B33;background:#EEF4EA;border-color:#D6E4CF}
.badge-warn{color:#9A3F1C;background:#FBEDE7;border-color:#F0CFC4}
.badge-mute{color:var(--muted);background:var(--soft);border-color:var(--line)}
.badge-ink{color:var(--paper);background:var(--ink);border-color:var(--ink)}
.tbl{width:100%;border-collapse:separate;border-spacing:0;font-size:14px}
.tbl th{font-weight:500;font-size:12px;color:var(--muted);text-align:left;padding:.7rem 1rem;border-bottom:1px solid var(--line);background:var(--paper);white-space:nowrap}
.tbl td{padding:.8rem 1rem;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl tr:last-child td{border-bottom:0}
.tbl tbody tr:hover td{background:#FDFCF9}
.kpi{font-family:"Noto Serif SC",serif;font-weight:700;font-size:28px;line-height:1.1;letter-spacing:-.01em}
.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:2rem 1rem;color:#A39E93;font-size:13px;text-align:center}
.seg{display:grid;grid-template-columns:1fr 1fr;padding:4px;background:var(--soft);border-radius:999px}
.seg button{height:40px;border-radius:999px;font-size:14px;color:var(--muted);transition:all .2s}
.seg button.on{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(28,27,25,.1);font-weight:500}
.msg-err{display:flex;gap:.5rem;align-items:flex-start;background:#FBEDE7;color:#9A3F1C;border-radius:12px;padding:.7rem .9rem;font-size:13px}
.msg-ok{display:flex;gap:.5rem;align-items:flex-start;background:#EEF4EA;color:#3F6B33;border-radius:12px;padding:.7rem .9rem;font-size:13px}
.prog{height:8px;border-radius:999px;background:var(--soft);overflow:hidden;position:relative}
.prog>i{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,#E08A5F,var(--accent));border-radius:999px;transition:width .8s ease}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--ink);color:var(--paper);padding:.6rem 1.1rem;border-radius:999px;font-size:13px;box-shadow:0 10px 30px -10px rgba(0,0,0,.4);z-index:80}
.navlink{display:flex;align-items:center;gap:.65rem;width:100%;padding:.6rem .8rem;border-radius:12px;font-size:14px;color:var(--muted);transition:background .15s,color .15s}
.navlink:hover{color:var(--ink);background:var(--soft)}
.navlink.on{background:var(--ink);color:var(--paper)}
.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch}
