/* ===== Nicemu front-end panels ===== */
/* 变量声明在 .nm-panel/.nm-card/.nm-notice 三个根上：
   未登录/无权限时输出的独立 .nm-card 不在 .nm-panel 内，同样能取到变量 */
.nm-panel,.nm-card,.nm-notice{--nm-ink:#1f2328;--nm-muted:#6b7280;--nm-line:#e7e5e0;
  --nm-bg:#faf9f7;--nm-accent:#0f766e;--nm-accent-2:#134e4a;--nm-gold:#b45309}
.nm-panel{max-width:860px;margin:0 auto;color:var(--nm-ink);font-size:15px;line-height:1.6}
.nm-hello{font-size:26px;margin:20px 0 14px}
.nm-card{background:#fff;border:1px solid var(--nm-line);border-radius:14px;
  padding:22px 24px;margin-bottom:18px;box-shadow:0 1px 3px rgba(0,0,0,.04);color:var(--nm-ink)}
.nm-card h3{margin:0 0 14px;font-size:17px}
.nm-rules{background:var(--nm-bg);font-size:13.5px;color:var(--nm-muted);border-style:dashed}
.nm-muted{color:var(--nm-muted);font-size:13.5px}
.nm-empty{text-align:center;padding:40px}
/* Stat cards */
.nm-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}
.nm-stat{background:#fff;border:1px solid var(--nm-line);border-radius:14px;padding:18px;
  text-align:center;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.nm-stat-num{display:block;font-size:26px;font-weight:700;color:var(--nm-accent)}
.nm-stat-label{color:var(--nm-muted);font-size:13px}
/* Copy box */
.nm-copybox{display:flex;gap:10px;align-items:center;background:var(--nm-bg);
  border:1px solid var(--nm-line);border-radius:10px;padding:10px 14px}
.nm-copybox code{flex:1;background:none;font-size:14px;word-break:break-all}
/* Buttons */
.nm-btn{display:inline-block;background:#fff;border:1px solid var(--nm-line);border-radius:9px;
  padding:8px 16px;font-size:14px;cursor:pointer;transition:.15s;text-decoration:none;color:var(--nm-ink)}
.nm-btn:hover{border-color:var(--nm-accent);color:var(--nm-accent)}
.nm-btn-primary{background:var(--nm-accent);border-color:var(--nm-accent);color:#fff}
.nm-btn-primary:hover{background:var(--nm-accent-2);color:#fff}
.nm-btn-primary:disabled{background:#d1d5db;border-color:#d1d5db;cursor:not-allowed}
.nm-btn-sm{padding:6px 12px;font-size:13px}
/* Product grid */
.nm-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.nm-product{text-align:center}
.nm-product-img{display:block;aspect-ratio:1;background:var(--nm-bg);border-radius:12px;
  overflow:hidden;margin-bottom:8px}
.nm-product-img img{width:100%;height:100%;object-fit:cover}
.nm-noimg{display:flex;align-items:center;justify-content:center;height:100%;
  color:#d4d4d4;font-size:34px}
.nm-product-name{font-weight:600;font-size:14px;margin-bottom:2px}
.nm-product-comm{color:var(--nm-gold);font-size:13px;font-weight:600;margin-bottom:8px}
/* 4.8.1 素材库分页：1 2 3 … 直接翻，全站商品都能复制到链接 */
.nm-pager{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;
  gap:6px;margin-top:18px}
.nm-pager .page-numbers{display:inline-grid;place-items:center;min-width:34px;height:34px;
  padding:0 10px;border:1px solid var(--nm-line);border-radius:8px;background:#fff;
  color:var(--nm-ink);font-size:13px;line-height:1;text-decoration:none}
.nm-pager a.page-numbers:hover{border-color:var(--nm-ink)}
.nm-pager .page-numbers.current{background:var(--nm-ink);border-color:var(--nm-ink);color:#fff;font-weight:600}
.nm-pager .page-numbers.dots{border-color:transparent;background:none;color:var(--nm-muted)}
/* Tables */
.nm-table{width:100%;border-collapse:collapse;font-size:14px}
.nm-table th{text-align:left;color:var(--nm-muted);font-weight:600;font-size:12.5px;
  text-transform:uppercase;letter-spacing:.03em;padding:8px 10px;border-bottom:2px solid var(--nm-line)}
.nm-table td{padding:10px;border-bottom:1px solid var(--nm-line)}
.nm-balance{margin-top:12px;padding-top:12px;border-top:1px dashed var(--nm-line);font-size:14px}
/* Badges */
.nm-badge{display:inline-block;padding:2px 10px;border-radius:99px;font-size:12px;
  background:#f3f4f6;color:#374151}
.nm-badge-green,.nm-st-confirmed,.nm-st-approved{background:#ecfdf5;color:#047857}
.nm-st-pending{background:#fffbeb;color:#b45309}
.nm-st-paid{background:#eff6ff;color:#1d4ed8}
.nm-st-rejected{background:#fef2f2;color:#b91c1c}
/* Notices */
.nm-notice{border-radius:10px;padding:12px 16px;margin-bottom:16px;font-size:14px}
.nm-notice-ok{background:#ecfdf5;color:#047857;border:1px solid #a7f3d0}
.nm-notice-err{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}
/* Forms */
.nm-form label{display:block;margin-bottom:14px;font-weight:600;font-size:14px}
.nm-form input[type=text],.nm-form input[type=url],.nm-form input[type=email],
.nm-form input[type=number],.nm-form textarea,.nm-form select{
  display:block;width:100%;margin-top:5px;padding:9px 12px;font-size:14px;font-weight:400;
  border:1px solid var(--nm-line);border-radius:9px;background:#fff;color:var(--nm-ink);
  box-sizing:border-box}
.nm-form input:focus,.nm-form textarea:focus,.nm-form select:focus{
  outline:none;border-color:var(--nm-accent);box-shadow:0 0 0 3px rgba(15,118,110,.12)}
.nm-form input[type=file]{margin-top:5px;font-weight:400}
.nm-form button[type=submit]{margin-top:4px}
/* Field hint: sits outside <label> so theme label styling cannot shout at it */
.nm-form .nm-hint{display:block;margin:-9px 0 14px;font-size:12.5px;font-weight:400;
  line-height:1.55;letter-spacing:0;text-transform:none;color:var(--nm-muted)}
.nm-form .nm-hint code{padding:1px 5px;border-radius:5px;background:var(--nm-bg);
  font-size:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
/* Honeypot: off-screen rather than display:none, and never announced */
.nm-form .nm-hp{position:absolute!important;left:-9999px!important;top:auto!important;
  width:1px!important;height:1px!important;overflow:hidden!important}
/* Brand panel logo */
.nm-brand-logo{display:flex;gap:16px;align-items:center;margin-bottom:16px}
.nm-brand-logo img{width:72px;height:72px;border-radius:12px;object-fit:cover;
  border:1px solid var(--nm-line)}
.nm-brand-logo .nm-noimg{width:72px;height:72px;border-radius:12px;font-size:13px;
  border:1px dashed var(--nm-line)}
/* Contact block — [nicemu_contact] 的兜底样式，主题自己排版时用不到 */
.nm-contact dl{display:grid;grid-template-columns:auto 1fr;gap:10px 22px;margin:0}
.nm-contact dt{margin:0;color:var(--nm-muted);font-size:11.5px;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;padding-top:2px}
.nm-contact dd{margin:0;font-size:15px;line-height:1.55}
.nm-contact dd a{color:var(--nm-accent);text-decoration:none;border-bottom:1px solid currentColor}
.nm-contact dd a:hover{color:var(--nm-accent-2)}
/* Reviews */
.nm-review-head{display:flex;gap:10px;align-items:center;margin-bottom:8px;flex-wrap:wrap}
.nm-stars{color:var(--nm-gold);letter-spacing:2px;margin-left:auto}
/* Responsive */
@media (max-width:640px){
  .nm-stats{grid-template-columns:1fr}
  .nm-grid{grid-template-columns:repeat(2,1fr)}
  .nm-card{padding:16px}
  .nm-copybox{flex-direction:column;align-items:stretch}
  .nm-table{display:block;overflow-x:auto;white-space:nowrap}
  .nm-contact dl{grid-template-columns:1fr;gap:4px 0}
  .nm-contact dd{margin-bottom:12px}
  .nm-review-head .nm-stars{margin-left:0;width:100%}
}
/* 达人申请里的平台多选（4.5.0）
   插件自带表单的兜底样式；子主题有自己的一套，会覆盖这里。 */
.nm-platforms{margin:0 0 14px;padding:0;border:0;min-width:0}
.nm-platforms legend{padding:0;font-weight:600;font-size:14px}
.nm-platforms legend em{font-style:normal;font-weight:400;opacity:.65}
.nm-platforms .nm-chip{
    display:inline-flex;align-items:center;gap:7px;
    margin:8px 8px 0 0;padding:8px 12px;
    border:1px solid #d7d7d1;border-radius:4px;background:#fff;
    font-size:14px;font-weight:500;cursor:pointer;
}
.nm-platforms .nm-chip input[type=checkbox]{width:auto;margin:0;flex:0 0 auto}
.nm-platforms .nm-chip:has(input:checked){border-color:#111;background:#111;color:#fff}

/* 达人面板「Assigned to you」定向分配区（4.6.0）
   与下方公共素材库共用 .nm-grid / .nm-product，只是每张卡片多了一条
   自己的追踪链接 —— 达人不用点进详情页再去拼参数。 */
/* 选择器写得比子主题的 .nicemu-portal-card .nm-copybox 更具体：
   子主题的 frontend.css 排在插件样式之后，同权重会把这里的竖排布局覆盖回横排，
   而卡片格子只有三分之一宽，横排会把链接挤成一条看不清的窄条。 */
.nm-panel .nm-card.nm-assigned{border-color:var(--nm-accent)}
.nm-panel .nm-assigned .nm-product{text-align:left}
.nm-panel .nm-assigned .nm-copybox-sm{display:flex;flex-direction:column;align-items:stretch;
  gap:6px;padding:8px 10px;text-align:left}
.nm-panel .nm-assigned .nm-copybox-sm code{flex:none;font-size:11.5px;line-height:1.45;
  word-break:break-all;overflow-wrap:anywhere}
.nm-panel .nm-assigned .nm-copybox-sm .nm-btn{width:100%}
