/* PES V1.7: the same brand roles across authentication and desktop workspaces. */
:root {
  --pes-primary: #3e5f8a;
  --pes-primary-hover: #304c70;
  --pes-selected: #e5edf7;
  --pes-hover: #edf2f8;
  --pes-tint: #edf2f8;
  --pes-ink: #253246;
  --pes-muted: #5d697a;
  --pes-line: #dce3eb;
  --pes-page: #f5f6f8;
  --pes-table-head: #eef2f7;
  --pes-stripe: #f8fafc;
  --pes-sidebar: #eef1f5;
  --pes-footer: #f3f5f7;
  --primary: var(--pes-primary);
  --primary-hover: var(--pes-primary-hover);
  --page: var(--pes-page);
  --ink: var(--pes-ink);
  --muted: var(--pes-muted);
  --line: var(--pes-line);
  --focus-ring: 0 0 0 3px rgb(62 95 138 / 18%);
}
input[type=checkbox], input[type=radio], progress { accent-color: var(--pes-primary); }
body:not(.app-shell) .button-primary { color:#fff; background:var(--pes-primary); border-color:var(--pes-primary); }
body:not(.app-shell) .button-primary:hover { color:#fff; background:var(--pes-primary-hover); border-color:var(--pes-primary-hover); }
body:not(.app-shell) .button:disabled { background:#e8edef; border-color:#cbd5da; color:#64747d; }
body:not(.app-shell) input:focus, body:not(.app-shell) select:focus, body:not(.app-shell) textarea:focus { border-color:var(--pes-primary); box-shadow:var(--focus-ring); }
body:not(.app-shell) :is(a,button):focus-visible { outline:2px solid var(--pes-primary); outline-offset:2px; }
.pes-signin .login-submit { background:var(--pes-primary); }
.pes-login-layout .pes-message-separator { color:var(--pes-primary); }
.pes-login-layout .pes-language button { color:var(--pes-ink); }
.pes-login-layout .pes-language button[aria-pressed=true] { border-bottom-color:var(--pes-primary); }
.pes-login-layout .pes-auth-steps li[aria-current=step] { color:var(--pes-primary); border-bottom-color:var(--pes-primary); }
.pes-login-page .pes-signin :is(.field-error,.error-summary) { color:#85251a; }
body.admin-shell .admin-topbar { background:#fff; color:var(--pes-ink); border-bottom:1px solid var(--pes-line); }
body.admin-shell .admin-topbar :is(a,button) { color:var(--pes-ink); }
body.admin-shell .admin-nav { background:var(--pes-sidebar); color:var(--pes-muted); }
body.admin-shell .admin-nav > a { color:var(--pes-muted); }
body.admin-shell .admin-nav > a:hover { background:var(--pes-hover); }
body.admin-shell .admin-nav > a[aria-current] { background:var(--pes-selected); color:var(--pes-primary); border-left-color:var(--pes-primary); }
body.admin-shell .admin-footer { background:var(--pes-footer); color:var(--pes-muted); }

/* Outrank the shared non-checkbox input border rule when a field receives focus. */
body.app-shell input:not([type=checkbox]):not([type=radio]):focus,
body.app-shell select:focus, body.app-shell textarea:focus { border-color:var(--pes-primary); box-shadow:var(--focus-ring); }

/* V1.8: one semantic palette for badges, dashboard segments and legend keys. */
:root {
  --pes-status-pending: #8a5a13;
  --pes-status-pending-bg: #fff3dc;
  --pes-status-processing: #246b4b;
  --pes-status-processing-bg: #eaf4ee;
  --pes-status-resolved: #6b5b95;
  --pes-status-resolved-bg: #f1eef8;
  --pes-status-verifying: #3e5f8a;
  --pes-status-verifying-bg: #e5edf7;
  --pes-status-closed: #526477;
  --pes-status-closed-bg: #edf1f5;
  --pes-status-cancelled: #626b78;
  --pes-status-cancelled-bg: #f3f4f6;
  --pes-status-on-hold: #756354;
  --pes-status-on-hold-bg: #f2eeea;
}
:where(.id-state, .id-status[data-status], .mw-status[data-status]) {
  --pes-status-ink: var(--pes-muted);
  --pes-status-bg: var(--pes-table-head);
}
:where(.mw-status[data-status]) { --pes-status-ink: #344b55; }
.status-待处理, [data-status="待处理"] { --pes-status-ink: var(--pes-status-pending); --pes-status-bg: var(--pes-status-pending-bg); }
.status-处理中, [data-status="处理中"] { --pes-status-ink: var(--pes-status-processing); --pes-status-bg: var(--pes-status-processing-bg); }
.status-已解决, [data-status="已解决"] { --pes-status-ink: var(--pes-status-resolved); --pes-status-bg: var(--pes-status-resolved-bg); }
.status-待验证, [data-status="待验证"] { --pes-status-ink: var(--pes-status-verifying); --pes-status-bg: var(--pes-status-verifying-bg); }
.status-已关闭, [data-status="已关闭"] { --pes-status-ink: var(--pes-status-closed); --pes-status-bg: var(--pes-status-closed-bg); }
.status-取消, [data-status="取消"] { --pes-status-ink: var(--pes-status-cancelled); --pes-status-bg: var(--pes-status-cancelled-bg); }
.status-搁置, [data-status="搁置"] { --pes-status-ink: var(--pes-status-on-hold); --pes-status-bg: var(--pes-status-on-hold-bg); }
/* Outrank legacy page-specific badge colors without coloring rows or inputs. */
body .status:is(.status-待处理,.status-处理中,.status-已解决,.status-待验证,.status-已关闭,.status-取消,.status-搁置),
body .id-status[data-status], body .mw-status[data-status] {
  color: var(--pes-status-ink);
  background: var(--pes-status-bg);
}
.flash.flash-success { color: var(--pes-status-processing); background: var(--pes-status-processing-bg); border-color: #c8dfd0; }
.flash-success .flash-success-icon { width: 16px; height: 16px; vertical-align: -3px; margin-right: 6px; }

/* Task statuses are scoped separately from project, plan and issue states. */
[data-task-status="未开始"] { --pes-status-ink: var(--pes-status-cancelled); --pes-status-bg: var(--pes-status-cancelled-bg); }
[data-task-status="进行中"] { --pes-status-ink: var(--pes-status-processing); --pes-status-bg: var(--pes-status-processing-bg); }
[data-task-status="已完成"] { --pes-status-ink: var(--pes-status-verifying); --pes-status-bg: var(--pes-status-verifying-bg); }
[data-task-status="已暂停"] { --pes-status-ink: var(--pes-status-pending); --pes-status-bg: var(--pes-status-pending-bg); }
body :is(.status,.mw-status,.issue-status-chip)[data-task-status] {
  display: inline-flex; align-items: center; gap: 4px;
  color: var(--pes-status-ink); background: var(--pes-status-bg);
}
body :is(.status,.mw-status,.issue-status-chip)[data-task-status]::before {
  content: ""; width: 6px; height: 6px; flex: none; border-radius: 50%; background: currentColor;
}
body.app-shell .issue-status-chip[data-task-status] button { color: inherit; }
