/* =====================================================================
   Coffee Token 店长页 / 运营台 / 海报工坊 → Monk UI
   最后加载：把各页原来的颜色变量映射到 Monk UI 的 --mk-* 令牌（亮暗双主题），
   统一字体、按钮、图标和卡片底色。海报作品本身（打印出来的那张）保持原样。
   ===================================================================== */

/* ---------- 变量映射（html.xxx 的优先级高于原来的 .xxx / :root） ---------- */
html.page-partner {
  --paper: var(--mk-bg); --ink: var(--mk-text); --muted: var(--mk-muted); --line: var(--mk-border-strong);
  --panel: var(--mk-surface-2); --accent: var(--mk-accent); --accent-ink: #fff; --danger: #EF4444;
  --partner-green: var(--mk-accent-ink);
  --sans: var(--mk-font); --mono: var(--mk-mono);
  --ui-canvas: var(--mk-bg); --ui-panel: var(--mk-surface-2); --ui-panel-strong: var(--mk-surface-3);
  --ui-ink: var(--mk-text); --ui-muted: var(--mk-muted); --ui-line: var(--mk-border-strong);
  --ui-accent: var(--mk-accent); --ui-accent-ink: #fff; --ui-icon-tile: transparent;
}
html.page-admin {
  color-scheme: inherit;
  --surface: var(--mk-bg); --surface-raised: var(--mk-surface); --surface-strong: var(--mk-surface-2);
  --text: var(--mk-text); --muted: var(--mk-muted); --line: var(--mk-border-strong);
  --accent: var(--mk-accent); --accent-text: #fff; --danger: #EF4444; --warning: var(--mk-warn);
  --font-sans: var(--mk-font); --font-mono: var(--mk-mono);
  --ui-icon-tile: transparent; --ui-accent: var(--mk-accent); --ui-accent-ink: #fff;
}
html.page-poster {
  --ink: var(--mk-text); --paper: var(--mk-bg); --muted: var(--mk-muted); --line: var(--mk-border-strong);
  --accent: var(--mk-accent-ink); --font-sans: var(--mk-font); --font-mono: var(--mk-mono);
  --ui-icon-tile: transparent;
}
@media screen { html.page-poster { background: var(--mk-bg); } html.page-poster body { background: var(--mk-bg); color: var(--mk-text); font-family: var(--mk-font); } }
html:is(.page-partner, .page-admin) { background: var(--mk-bg); }
html:is(.page-partner, .page-admin) body {
  font-family: var(--mk-font); color: var(--mk-text);
  background:
    radial-gradient(900px 420px at 50% -120px, var(--mk-bg-glow), transparent 70%),
    var(--mk-bg) no-repeat;
}
html:is(.page-partner, .page-admin, .page-poster) :focus-visible { outline: 2px solid var(--mk-accent) !important; outline-offset: 2px; }
html:is(.page-partner, .page-admin) ::selection { background: var(--mk-accent-soft); }

/* ---------- 图标：线性、跟随文字颜色 ---------- */
html [data-icon]::before {
  background: currentColor !important; border-radius: 0 !important; padding: 0 !important;
  -webkit-mask: var(--ic) center / contain no-repeat; mask: var(--ic) center / contain no-repeat;
  width: 16px; height: 16px; flex: 0 0 16px;
}
/* 品牌：Coffee Token 杯子图标 */
.wordmark > span, .brand-mark { width: 40px !important; height: 40px !important; border: 0 !important; border-radius: 11px !important; background: radial-gradient(circle at 50% 35%, #1E293B, #0B1220) !important; box-shadow: 0 0 0 1px rgba(255,255,255,.06), 0 8px 24px -8px rgba(249,115,22,.55) !important; display: grid; place-items: center; }
img.ni-icon--brand, .brand-mark img.ni-icon, .page-poster .brand img.ni-icon--brand { content: url("/ui/icons/brand-cup.svg"); width: 22px !important; height: 22px !important; }
.page-poster .brand img.ni-icon--brand { width: 40px !important; height: 40px !important; content: url("/favicon.svg"); }
.wordmark, .page-admin .brand, .page-poster .brand { letter-spacing: -.01em !important; font-weight: 800 !important; }
img.ni-icon:not(.ni-icon--brand) { filter: grayscale(1) contrast(1.2); opacity: .8; }

/* ---------- 按钮 ---------- */
html:is(.page-partner, .page-poster) :is(.primary-button, .tool-button.primary, #print-button),
html.page-admin .button-primary {
  position: relative; overflow: hidden; border: 0 !important; color: #fff !important;
  background: linear-gradient(90deg, #EA580C, var(--mk-accent) 45%, var(--mk-accent-2)) !important;
  box-shadow: 0 10px 30px -10px rgba(249, 115, 22, .7) !important;
  font-weight: 700;
}
html:is(.page-partner, .page-poster) :is(.primary-button, #print-button):disabled,
html.page-admin .button-primary:disabled { background: var(--mk-surface-3) !important; color: var(--mk-muted) !important; box-shadow: none !important; }
html:is(.page-partner, .page-poster) :is(.secondary-button, .tool-button:not(.primary)),
html.page-admin .button:not(.button-primary):not(.button-danger) {
  background: var(--mk-surface) !important; color: var(--mk-text) !important;
  border: 1px solid var(--mk-border) !important; box-shadow: var(--mk-shadow-1);
}
html:is(.page-partner, .page-poster) :is(.secondary-button, .tool-button:not(.primary)):hover,
html.page-admin .button:not(.button-primary):not(.button-danger):hover { border-color: var(--mk-accent-line) !important; background: var(--mk-surface-2) !important; }
html:is(.page-partner, .page-admin, .page-poster) :is(input, textarea, select) {
  background: var(--mk-surface) !important; color: var(--mk-text) !important; border-color: var(--mk-border-strong) !important;
}
html:is(.page-partner, .page-admin, .page-poster) :is(input, textarea, select):focus { border-color: var(--mk-accent-line) !important; box-shadow: 0 0 0 4px var(--mk-accent-soft) !important; outline: 0; }
html:is(.page-partner, .page-admin, .page-poster) :is(input, textarea)::placeholder { color: var(--mk-subtle) !important; }
html:is(.page-partner, .page-admin) input[type="checkbox"], html.page-poster input[type="checkbox"] { accent-color: var(--mk-accent); }

/* ---------- 店长页：原来写死的浅色底 ---------- */
.page-partner .topbar { position: sticky; top: 0; z-index: 30; background: color-mix(in srgb, var(--mk-bg) 80%, transparent); backdrop-filter: blur(14px) saturate(160%); -webkit-backdrop-filter: blur(14px) saturate(160%); border-bottom: 1px solid var(--mk-border); }
.page-partner .hero h1 em { color: transparent; background: linear-gradient(100deg, #EA580C, var(--mk-accent) 40%, var(--mk-accent-2) 80%); -webkit-background-clip: text; background-clip: text; }
.page-partner .hero h1 em::after { background: var(--mk-accent); opacity: .18; }
.page-partner .eyebrow { color: var(--mk-accent-ink) !important; }
.page-partner :is(.how-section, .business-overview, .action-panel, .day-story, .qr-frame) { background: var(--mk-surface-2) !important; }
.page-partner .benefit-lines article:first-child, .page-partner.is-managing .qr-card, .page-partner .manager-sections a { background: var(--mk-surface-2) !important; }
.page-partner :is(#register-form, .sales-panel, .claim-code-card, .edit-panel, .secret-card, .ledger-panel, .qr-card) { background: var(--mk-surface) !important; border-color: var(--mk-border) !important; box-shadow: var(--mk-shadow-1) !important; }
.page-partner #register-form { border-radius: var(--mk-r-xl) !important; box-shadow: var(--mk-shadow-glow) !important; border-color: var(--mk-accent-line) !important; }
.page-partner .cafe-scene::before { background: var(--mk-surface-2) !important; }
.page-partner .day-options button[aria-pressed="true"] { background: var(--mk-accent-soft) !important; color: var(--mk-accent-ink) !important; border-color: var(--mk-accent-line) !important; }
.page-partner .business-metrics article { border-left-color: var(--mk-accent-line) !important; }
.page-partner :is(.evidence-note, .business-metrics) { border-color: var(--mk-border-strong) !important; }
.page-partner .approval-banner { background: var(--mk-warn-soft) !important; border-color: var(--mk-border) !important; border-left-color: var(--mk-warn) !important; }
.page-partner .approval-banner[data-status="approved"] { background: var(--mk-ok-soft) !important; border-left-color: var(--mk-ok) !important; }
.page-partner .approval-banner[data-status="rejected"] { background: rgba(239, 68, 68, .1) !important; border-left-color: #EF4444 !important; }
.page-partner .approval-badge { background: var(--mk-surface) !important; color: var(--mk-text) !important; }
.page-partner .claim-code-actions span[data-ready="true"] { color: var(--mk-ok) !important; }
.page-partner dialog { background: var(--mk-surface) !important; color: var(--mk-text) !important; border: 1px solid var(--mk-border) !important; }
.page-partner dialog::backdrop { background: var(--mk-overlay); backdrop-filter: blur(3px); }
.page-partner .understated-link, .page-partner .text-button { color: var(--mk-text); }
/* 店长页首屏里那张“海报样张”是海报的样子，保留纸面色 */
.page-partner .sample-poster, .page-partner .idea-receipt { color: #25412c; }

/* ---------- 运营台 ---------- */
.page-admin .login-shell { background: radial-gradient(900px 420px at 50% -120px, var(--mk-bg-glow), transparent 70%), var(--mk-bg) !important; }
.page-admin .login-card { background: var(--mk-surface) !important; border: 1px solid var(--mk-accent-line) !important; box-shadow: var(--mk-shadow-glow) !important; border-radius: var(--mk-r-xl) !important; }
.page-admin .section-label { color: var(--mk-accent-ink) !important; font-family: var(--mk-font) !important; letter-spacing: .08em; }
.page-admin .topbar { background: color-mix(in srgb, var(--mk-bg) 82%, transparent) !important; border-bottom-color: var(--mk-border) !important; }
.page-admin :is(.health-strip, .settings-card, .rule-card, .capacity-card, .model-card, .table-wrap, .metric, .platform-boundary, dialog) { border-color: var(--mk-border) !important; }
.page-admin dialog::backdrop { background: var(--mk-overlay); backdrop-filter: blur(3px); }
.page-admin .stage-tag[data-stage="pending"] { background: var(--mk-warn-soft) !important; color: var(--mk-warn) !important; }
.page-admin .stage-tag[data-stage="rejected"] { background: rgba(239, 68, 68, .12) !important; color: #EF4444 !important; }

/* ---------- 海报工坊（只改工作台，不改海报作品；打印不受影响） ---------- */
@media screen {
  .page-poster .toolbar { border-bottom-color: var(--mk-border); }
  .page-poster .eyebrow { color: var(--mk-accent-ink); }
  .page-poster .template-button { background: var(--mk-surface) !important; border-color: var(--mk-border) !important; color: var(--mk-text); }
  .page-poster .template-button[aria-pressed="true"], .page-poster .template-button[aria-checked="true"], .page-poster .template-button.is-active { border-color: var(--mk-accent) !important; box-shadow: 0 0 0 3px var(--mk-accent-soft) !important; background: var(--mk-surface-2) !important; }
  .page-poster .current-venue { background: var(--mk-surface-2) !important; border-color: var(--mk-accent) !important; }
  .page-poster :is(.preview-stage, .poster-stage, .stage) { background: var(--mk-surface-2) !important; }
}

/* ---------- 页脚备案 ---------- */
html:is(.page-partner, .page-admin, .page-poster) .filing-footer { color: var(--mk-subtle) !important; }

/* ---------- 注入的主题按钮 ---------- */
.mk-chrome { display: inline-flex; align-items: center; gap: 6px; }
.mk-chrome a, .mk-chrome button { display: inline-grid; place-items: center; width: 36px; height: 36px; padding: 0; border-radius: var(--mk-r-sm); border: 1px solid var(--mk-border); background: var(--mk-surface); color: var(--mk-text); box-shadow: var(--mk-shadow-1); cursor: pointer; }
.mk-chrome a:hover, .mk-chrome button:hover { border-color: var(--mk-accent-line); }
.mk-chrome svg { width: 16px; height: 16px; }
.mk-chrome .t-sun { display: none; }
:root[data-theme="dark"] .mk-chrome .t-sun { display: block; }
:root[data-theme="dark"] .mk-chrome .t-moon { display: none; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .mk-chrome .t-sun { display: block; }
  :root:not([data-theme="light"]) .mk-chrome .t-moon { display: none; }
}
@media print { .mk-chrome { display: none !important; } }
.login-card { position: relative; }
.login-card > .mk-chrome { position: absolute; top: 22px; right: 22px; }
.page-partner .workspace { border-top-color: var(--mk-border-strong) !important; }
.page-partner .ledger-table th { border-bottom-color: var(--mk-border-strong) !important; }
.page-partner .hero h1 em::after { display: none; }
.wordmark .wm-sub { margin-left: 2px; padding: 2px 8px; border-radius: 99px; font-size: 11.5px; font-weight: 600; color: var(--mk-accent-ink); background: var(--mk-accent-soft); border: 1px solid var(--mk-accent-line); letter-spacing: 0; }
@media (max-width: 420px) { .wordmark .wm-sub { display: none; } }
.page-poster .toolbar-back { margin-left: auto; }

/* 运营台：原来写死的浅色块 */
.page-admin .platform-boundary { background: var(--mk-surface) !important; border-color: var(--mk-border) !important; border-left-color: var(--mk-accent) !important; }
.page-admin .platform-readout > div { background: var(--mk-surface-2) !important; border: 1px solid var(--mk-border); }
.page-admin .portfolio-brief { background: var(--mk-surface-2) !important; border: 1px solid var(--mk-border); }
.page-admin .portfolio-metric:first-child strong { color: var(--mk-accent-ink) !important; }
.page-admin .store-row[data-selected=true] { background: var(--mk-accent-soft) !important; }
.page-admin .stage-tag { background: var(--mk-surface-3) !important; color: var(--mk-muted) !important; }
.page-admin .stage-tag[data-stage=running] { background: var(--mk-ok-soft) !important; color: var(--mk-ok) !important; }
.page-admin :is(.stage-tag[data-stage=claimed], .stage-tag[data-stage=dormant]) { background: var(--mk-info-soft) !important; color: var(--mk-info) !important; }
.page-admin .store-actions p.has-issue { color: #EF4444 !important; }
.page-admin :is(.venue-avatar, .health-icon, .feature-icon) { background: var(--mk-surface-2) !important; border: 1px solid var(--mk-border) !important; }
.page-admin :is(.venue-avatar, .health-icon, .feature-icon) img.ni-icon { filter: none; opacity: 1; }
.page-admin .venue-item:hover { background: var(--mk-surface-2) !important; }
.page-admin .venue-item.is-active { background: var(--mk-surface) !important; border-color: var(--mk-accent-line) !important; }
.page-admin .form-actions { background: var(--mk-surface-2) !important; border-top-color: var(--mk-border) !important; }
.page-admin .form-message[data-kind="success"] { color: var(--mk-ok) !important; }
.page-admin .metric-featured { background: linear-gradient(160deg, color-mix(in srgb, var(--mk-accent) 14%, var(--mk-surface)), var(--mk-surface) 70%) !important; }
.page-admin .metric strong, .page-admin .platform-readout strong { font-family: var(--mk-font) !important; font-weight: 800; letter-spacing: -.02em; }
.page-admin .status-active { border-color: var(--mk-ok) !important; }
.page-admin .button-danger { color: #EF4444; }
:root[data-theme="dark"] img.ni-icon:not(.ni-icon--brand) { filter: invert(1) hue-rotate(180deg) !important; opacity: .9; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) img.ni-icon:not(.ni-icon--brand) { filter: invert(1) hue-rotate(180deg) !important; opacity: .9; } }

/* 店长中心：线上包厢卡片 */
.page-partner .study-card { display: grid; grid-template-columns: 1.4fr 1fr; gap: 18px 28px; padding: 28px; border-radius: 16px; background: var(--mk-surface); border: 1px solid var(--mk-accent-line); box-shadow: var(--mk-shadow-glow); scroll-margin-top: 90px; }
.page-partner .study-card h3 { margin: 10px 0 8px; font-size: 22px; }
.page-partner .study-card p { margin: 0; font-size: 14px; line-height: 1.75; color: var(--mk-muted); }
.page-partner .study-live { display: grid; align-content: center; justify-items: start; padding: 18px 20px; border-radius: 14px; background: var(--mk-surface-2); border: 1px solid var(--mk-border); }
.page-partner .study-live b { font-size: 48px; line-height: 1; font-weight: 900; letter-spacing: -.03em; color: var(--mk-accent-ink); font-variant-numeric: tabular-nums; }
.page-partner .study-live span { margin-top: 4px; font-weight: 700; }
.page-partner .study-live small { margin-top: 6px; font-size: 12.5px; color: var(--mk-muted); line-height: 1.5; }
.page-partner .study-card .button-row { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 10px; }
.page-partner .study-card .study-note { grid-column: 1 / -1; color: var(--mk-warn); font-size: 13px; }
@media (max-width: 760px) { .page-partner .study-card { grid-template-columns: 1fr; padding: 20px; } }
.page-partner.is-managing .study-card { order: 5; }
