:root {
  color-scheme: light;
  --bg-app: #eef3f8;
  --bg-sidebar: #10253c;
  --bg-surface: #ffffff;
  --bg-muted: #f5f8fb;
  --border: #d7e0e9;
  --text: #14283d;
  --muted: #60758a;
  --accent: #1769aa;
  --accent-dark: #0d4f84;
  --accent-soft: #e7f2fb;
  --success: #147447;
  --warning: #95600b;
  --radius: 8px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
}

* { box-sizing: border-box; }
body { margin: 0; min-width: 320px; overflow-x: hidden; overflow-y: auto; background: var(--bg-app); color: var(--text); }
a { color: inherit; text-decoration: none; }
.icon-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.workspace-shell { min-width: 0; min-height: 100dvh; display: grid; grid-template-columns: 232px minmax(0, 1fr); }
.sidebar { position: sticky; top: 0; height: 100dvh; display: flex; flex-direction: column; padding: 20px 14px; color: #d9e7f5; background: var(--bg-sidebar); }
.brand { display: flex; align-items: center; gap: 11px; min-height: 52px; padding: 8px; }
.brand-mark { display: grid; width: 42px; height: 34px; place-items: center; border: 1px solid #5e88ae; border-radius: 4px; color: #fff; font-size: 14px; font-weight: 900; letter-spacing: .12em; }
.brand strong, .brand small { display: block; }
.brand strong { color: #fff; font-size: 15px; letter-spacing: .04em; }
.brand small { margin-top: 2px; color: #8faac4; font-size: 11px; }
.sidebar nav { min-height: 0; display: grid; gap: 4px; margin-top: 28px; overflow-y: auto; }
.nav-group { display: block; }
.nav-group + .nav-group { margin-top: 13px; }
.nav-group-toggle { width: 100%; display: grid; grid-template-columns: minmax(0, 1fr) auto 15px; align-items: center; gap: 5px; min-height: 31px; padding: 0 12px; border: 0; color: #d9e7f5; background: transparent; font: inherit; text-align: left; cursor: pointer; }
.nav-group-toggle span { overflow: hidden; font-size: 12px; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.nav-group-toggle small { color: #8faac4; font-size: 10px; }
.nav-group-toggle svg { width: 14px; height: 14px; transition: transform .12s ease; }
.nav-group-toggle[aria-expanded="true"] svg { transform: rotate(0); }
.nav-group-toggle[aria-expanded="false"] svg { transform: rotate(-90deg); }
.nav-group-toggle:hover, .nav-group-toggle:focus-visible { color: #fff; outline: 2px solid rgba(78,178,230,.35); outline-offset: -2px; }
.nav-group-links { display: grid; gap: 4px; margin-top: 3px; }
.nav-group-links[hidden] { display: none; }
.nav-group.is-active > .nav-group-toggle { color: #fff; }
.nav-item { display: flex; align-items: center; gap: 11px; min-height: 44px; padding: 0 12px; border-left: 3px solid transparent; border-radius: 4px; color: #b8cbe0; font-size: 13px; font-weight: 700; }
.nav-item:hover, .nav-item:focus-visible { color: #fff; background: #183a5a; outline: none; }
.nav-item.active { border-left-color: #4eb2e6; color: #fff; background: #1a4265; }
.nav-item svg { width: 19px; height: 19px; flex: 0 0 auto; }
.sidebar-status { display: flex; align-items: center; gap: 10px; margin-top: auto; padding: 13px 10px; border-top: 1px solid #284863; }
.sidebar-status > span { width: 8px; height: 8px; border-radius: 50%; background: #54c48a; box-shadow: 0 0 0 4px rgba(84,196,138,.12); }
.sidebar-status strong, .sidebar-status small { display: block; }
.sidebar-status strong { color: #e7f2fb; font-size: 12px; }
.sidebar-status small { margin-top: 2px; color: #8faac4; font-size: 10px; }
.nav-editor-trigger { flex: 0 0 auto; display: flex; align-items: center; gap: 10px; min-height: 42px; margin-top: 12px; padding: 0 12px; border: 1px solid #315578; border-radius: 5px; color: #d9e7f5; background: #193b5e; font: inherit; font-size: 12px; font-weight: 800; cursor: pointer; }
.nav-editor-trigger:hover, .nav-editor-trigger:focus-visible { color: #fff; border-color: #4eb2e6; outline: 3px solid rgba(78,178,230,.16); }
.nav-editor-trigger svg { width: 18px; height: 18px; }
.nav-editor { position: fixed; left: 180px; bottom: 56px; z-index: 10; width: 330px; max-height: min(660px, calc(100dvh - 32px)); overflow: auto; padding: 16px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--bg-surface); color: var(--text); box-shadow: 0 16px 34px rgba(16,37,60,.22); }
.nav-editor[hidden] { display: none; }
.nav-editor-heading { display: flex; align-items: center; justify-content: space-between; padding-bottom: 10px; border-bottom: 1px solid var(--border); }
.nav-editor-heading strong { font-size: 14px; }
.nav-editor-heading button { width: 28px; height: 28px; border: 0; border-radius: 4px; color: var(--muted); background: transparent; font-size: 20px; line-height: 1; cursor: pointer; }
.nav-editor-heading button:hover, .nav-editor-heading button:focus-visible { color: var(--accent-dark); background: var(--accent-soft); outline: 2px solid rgba(23,105,170,.16); }
.nav-editor > p { margin: 11px 0; color: var(--muted); font-size: 11px; line-height: 1.45; }
.nav-editor-group-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto auto; align-items: center; gap: 6px; min-height: 37px; border-bottom: 1px solid #e8edf2; }
.nav-editor-group-row strong { font-size: 12px; }
.nav-editor-collapsed { display: inline-flex; align-items: center; gap: 4px; color: var(--muted); font-size: 10px; white-space: nowrap; }
.nav-editor-collapsed input { width: 14px; min-height: 14px; margin: 0; accent-color: var(--accent); }
.nav-editor-move, .nav-editor-reset { min-height: 26px; padding: 0 6px; border: 1px solid var(--border); border-radius: 3px; color: var(--accent-dark); background: #fff; font: inherit; font-size: 10px; cursor: pointer; }
.nav-editor-move:hover, .nav-editor-move:focus-visible, .nav-editor-reset:hover, .nav-editor-reset:focus-visible { border-color: var(--accent); outline: 2px solid rgba(23,105,170,.12); }
.nav-editor-move:disabled { color: #a7b5c2; background: var(--bg-muted); cursor: default; }
.nav-editor-link-group { padding: 4px 0 8px 10px; border-bottom: 1px solid var(--border); }
.nav-editor-link-row { display: grid; grid-template-columns: minmax(0, 1fr) 92px auto auto; align-items: center; gap: 5px; min-height: 31px; }
.nav-editor-link-row > span { overflow: hidden; color: var(--muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.nav-editor-link-row select { min-height: 26px; padding: 2px 4px; font-size: 10px; }
.nav-editor-reset { margin-top: 12px; }
.workspace-main { min-width: 0; }
.topbar { min-height: 68px; display: flex; align-items: center; justify-content: space-between; padding: 0 28px; border-bottom: 1px solid var(--border); background: rgba(255,255,255,.96); }
.topbar > div:first-child { display: flex; gap: 9px; align-items: center; color: var(--muted); font-size: 13px; }
.topbar b { color: #a7b5c2; }
.topbar strong { color: var(--text); }
.user-context { display: flex; align-items: center; gap: 9px; }
.user-context svg { width: 20px; height: 20px; color: var(--accent); }
.user-context span { min-width: 90px; }
.user-context small, .user-context strong { display: block; }
.user-context small { color: var(--muted); font-size: 10px; }
.user-context strong { margin-top: 1px; font-size: 13px; }
.logout-form { margin: 0 0 0 8px; padding-left: 14px; border-left: 1px solid var(--border); }
.logout-form button { padding: 0; border: 0; color: var(--accent-dark); background: transparent; font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
.logout-form button:hover, .logout-form button:focus-visible { color: var(--accent); outline: 2px solid rgba(23,105,170,.2); outline-offset: 3px; }
main { width: 100%; max-width: 1600px; min-width: 0; margin: 0 auto; padding: 32px 30px 48px; }
.page-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; }
.page-heading p { margin: 0 0 7px; color: var(--accent); font-size: 10px; font-weight: 900; letter-spacing: .16em; }
.page-heading h1 { margin: 0; font-size: clamp(27px, 3vw, 38px); letter-spacing: -.04em; }
.page-heading span { display: block; margin-top: 9px; color: var(--muted); font-size: 14px; }
.h5-link { flex: 0 0 auto; min-height: 42px; display: inline-flex; align-items: center; padding: 0 17px; border: 1px solid var(--accent); border-radius: 4px; color: var(--accent-dark); font-size: 13px; font-weight: 800; }
.h5-link:hover, .h5-link:focus-visible { color: #fff; background: var(--accent); outline: 3px solid rgba(23,105,170,.18); }
.notice { display: grid; grid-template-columns: 110px 1fr; gap: 16px; margin-top: 27px; padding: 14px 16px; border: 1px solid #e3c884; border-left: 4px solid #d69a24; border-radius: 4px; background: #fff9e9; font-size: 13px; }
.notice strong { color: var(--warning); }
.notice span { color: #6d5830; }
.module-section { margin-top: 34px; }
.section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 13px; }
.section-heading h2 { margin: 0; font-size: 18px; }
.section-heading p { margin: 4px 0 0; color: var(--muted); font-size: 12px; }
.section-heading > span { color: var(--muted); font-size: 11px; }
.module-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; background: var(--bg-surface); }
.module-card { min-height: 168px; display: grid; grid-template-columns: 42px minmax(0, 1fr); grid-template-rows: 1fr auto; gap: 0 15px; padding: 22px; border-right: 1px solid var(--border); background: var(--bg-surface); transition: background .12s ease, transform .12s ease; }
.module-card:last-child { border-right: 0; }
.module-card:hover, .module-card:focus-visible { z-index: 1; background: var(--accent-soft); outline: 2px solid var(--accent); outline-offset: -2px; }
.module-card:active { transform: translateY(1px); }
.module-card > svg { grid-row: 1 / 3; width: 42px; height: 42px; padding: 10px; border-radius: 6px; color: var(--accent); background: var(--accent-soft); }
.module-card.text-card { grid-template-columns: minmax(0, 1fr); }
.module-card.text-card > div, .module-card.text-card > b { grid-column: 1; }
.dashboard-heading { position: relative; display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin: 4px 0 25px; }
.dashboard-kicker { margin: 0 0 8px; color: var(--accent); font-size: 10px; font-weight: 900; letter-spacing: .16em; }
.dashboard-heading h1 { margin: 0; font-size: clamp(27px, 3vw, 38px); letter-spacing: -.04em; }
.dashboard-date { display: flex; align-items: center; gap: 11px; margin: 9px 0 0; color: var(--muted); font-size: 13px; }
.dashboard-date span { padding-left: 11px; border-left: 1px solid var(--border); }
.workspace-edit-button { display: inline-flex; align-items: center; gap: 8px; min-height: 38px; padding: 0 14px; border: 1px solid var(--accent); border-radius: 4px; color: var(--accent-dark); background: #fff; font: inherit; font-size: 12px; font-weight: 800; cursor: pointer; }
.workspace-edit-button:hover, .workspace-edit-button:focus-visible { color: #fff; background: var(--accent); outline: 3px solid rgba(23,105,170,.16); }
.workspace-edit-button svg { width: 16px; height: 16px; }
.workspace-editor { position: absolute; top: 50px; right: 0; z-index: 5; width: 300px; padding: 17px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--bg-surface); box-shadow: 0 16px 34px rgba(16,37,60,.16); }
.workspace-editor[hidden] { display: none; }
.workspace-editor-heading { display: flex; align-items: center; justify-content: space-between; padding-bottom: 12px; border-bottom: 1px solid var(--border); }
.workspace-editor-heading strong { font-size: 14px; }
.workspace-editor-close { width: 28px; height: 28px; border: 0; border-radius: 4px; color: var(--muted); background: transparent; font-size: 20px; line-height: 1; cursor: pointer; }
.workspace-editor-close:hover, .workspace-editor-close:focus-visible { color: var(--accent-dark); background: var(--accent-soft); outline: 2px solid rgba(23,105,170,.16); }
.workspace-setting { display: flex; align-items: center; gap: 9px; margin-top: 14px; color: var(--text); font-size: 12px; font-weight: 700; cursor: pointer; }
.workspace-setting input, .workspace-app-option input { width: 16px; min-height: 16px; margin: 0; accent-color: var(--accent); }
.workspace-app-settings { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--border); }
.workspace-app-settings > strong { display: block; margin-bottom: 9px; font-size: 12px; }
.workspace-app-settings small { display: block; margin-top: 10px; color: var(--muted); font-size: 10px; line-height: 1.45; }
.workspace-app-picker { display: grid; gap: 6px; }
.workspace-app-option { display: flex; align-items: center; gap: 7px; min-height: 30px; color: var(--text); font-size: 11px; }
.workspace-app-option > span { flex: 1; }
.workspace-reorder { padding: 3px 5px; border: 1px solid var(--border); border-radius: 3px; color: var(--accent-dark); background: #fff; font-size: 10px; cursor: pointer; }
.workspace-reorder:hover, .workspace-reorder:focus-visible { border-color: var(--accent); outline: 2px solid rgba(23,105,170,.12); }
.dashboard-summary { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--border); border-radius: var(--radius); background: var(--bg-surface); box-shadow: 0 8px 22px rgba(16,37,60,.04); }
.summary-item { display: grid; grid-template-columns: 46px 1fr; align-items: center; gap: 14px; min-height: 100px; padding: 18px 30px; border-right: 1px solid var(--border); }
.summary-item:last-child { border-right: 0; }
.summary-icon, .task-icon, .progress-icon { display: grid; place-items: center; border-radius: 50%; background: var(--accent-soft); color: var(--accent); }
.summary-icon { width: 46px; height: 46px; }
.summary-icon svg { width: 23px; height: 23px; }
.summary-item div > span { display: block; color: var(--muted); font-size: 11px; font-weight: 700; }
.summary-item strong { display: block; margin-top: 5px; font-size: 26px; line-height: 1; }
.dashboard-columns { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(310px, .8fr); gap: 16px; margin-top: 22px; align-items: start; }
.dashboard-panel { min-width: 0; border: 1px solid var(--border); border-radius: var(--radius); background: var(--bg-surface); box-shadow: 0 8px 22px rgba(16,37,60,.035); }
.dashboard-panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 70px; padding: 17px 22px; border-bottom: 1px solid var(--border); }
.dashboard-panel-heading h2 { margin: 0; font-size: 18px; }
.dashboard-panel-heading p { margin: 5px 0 0; color: var(--muted); font-size: 11px; }
.dashboard-panel-heading > span { color: var(--muted); font-size: 11px; white-space: nowrap; }
.task-list { padding: 0 16px; }
.task-row { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; align-items: center; gap: 12px; min-height: 80px; padding: 13px 8px; border-bottom: 1px solid #e8edf2; }
.task-row:last-child { border-bottom: 0; }
.task-icon, .progress-icon { width: 38px; height: 38px; }
.task-icon svg, .progress-icon svg { width: 20px; height: 20px; }
.task-copy { min-width: 0; }
.task-copy strong, .task-copy h3 { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.task-copy strong { color: var(--text); font-size: 13px; }
.task-copy h3 { margin: 4px 0 0; font-size: 13px; }
.task-copy p { margin: 5px 0 0; color: var(--muted); font-size: 11px; }
.dashboard-panel .button { display: inline-flex; align-items: center; justify-content: center; min-height: 36px; padding: 0 13px; border: 1px solid transparent; border-radius: 4px; font-size: 11px; font-weight: 800; text-decoration: none; white-space: nowrap; }
.dashboard-panel .button.primary { color: #fff; background: var(--accent); border-color: var(--accent); }
.dashboard-panel .button.primary:hover, .dashboard-panel .button.primary:focus-visible { background: var(--accent-dark); outline: 3px solid rgba(23,105,170,.16); }
.task-safe { color: var(--muted); font-size: 10px; white-space: nowrap; }
.dashboard-empty { margin: 0; padding: 30px 10px; color: var(--muted); font-size: 12px; text-align: center; }
.dashboard-more-details { border-top: 1px solid #e8edf2; }
.dashboard-more-details summary { padding: 14px 8px 16px; color: var(--accent); font-size: 11px; font-weight: 800; text-align: center; cursor: pointer; list-style: none; }
.dashboard-more-details summary::-webkit-details-marker { display: none; }
.dashboard-more-details summary:hover, .dashboard-more-details summary:focus-visible { color: var(--accent-dark); background: var(--accent-soft); outline: none; }
.dashboard-more-details[open] summary { border-bottom: 1px solid #e8edf2; }
.task-list-extra { padding-top: 0; }
.progress-list { padding: 12px 16px 16px; }
.progress-row { display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; align-items: center; gap: 11px; min-height: 68px; padding: 10px; border: 1px solid #e8edf2; border-radius: 6px; }
.progress-row + .progress-row { margin-top: 9px; }
.progress-icon { background: #edf8f2; color: var(--success); }
.progress-row strong, .progress-row span, .progress-row small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.progress-row strong { font-size: 12px; }
.progress-row div > span { margin-top: 4px; color: var(--muted); font-size: 11px; }
.progress-row small { margin-top: 4px; color: var(--muted); font-size: 10px; }
.progress-safe { color: var(--muted); font-size: 10px; white-space: nowrap; }
.progress-link, .dashboard-edit-link { color: var(--accent); font-size: 11px; font-weight: 800; }
.progress-link:hover, .progress-link:focus-visible, .dashboard-edit-link:hover, .dashboard-edit-link:focus-visible { color: var(--accent-dark); text-decoration: underline; outline: none; }
.dashboard-edit-link { padding: 4px; border: 0; background: transparent; font: inherit; cursor: pointer; }
.dashboard-apps { margin-top: 22px; padding-bottom: 19px; }
.pinned-app-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 12px; padding: 16px 22px 0; }
.workspace-app { display: flex; min-height: 105px; flex-direction: column; align-items: center; justify-content: center; gap: 10px; padding: 12px; border: 1px solid var(--border); border-radius: 6px; color: var(--text); background: #fff; text-align: center; }
.workspace-app:hover, .workspace-app:focus-visible { border-color: var(--accent); background: var(--accent-soft); outline: 3px solid rgba(23,105,170,.12); }
.workspace-app[hidden] { display: none; }
.workspace-app-icon { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 6px; color: var(--accent); background: var(--accent-soft); }
.workspace-app-icon svg { width: 21px; height: 21px; }
.workspace-app strong { font-size: 12px; }
.workspace-compact .dashboard-summary .summary-item { min-height: 76px; padding-block: 12px; }
.workspace-compact .task-row { min-height: 64px; padding-block: 8px; }
.workspace-compact .dashboard-panel-heading { min-height: 58px; padding-block: 12px; }
.workspace-compact .dashboard-apps { margin-top: 14px; }
.module-card span { color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .08em; }
.module-card h3 { margin: 6px 0 7px; font-size: 17px; }
.module-card p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.module-card > b { grid-column: 2; align-self: end; margin-top: 19px; color: var(--accent-dark); font-size: 12px; }
.module-card.primary { box-shadow: inset 0 3px 0 var(--accent); }
.module-card.locked { opacity: .63; background: var(--bg-muted); }
.module-card.locked:hover { background: var(--bg-muted); outline: none; }
.module-card.locked > b { color: var(--muted); }
.system-strip { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 34px; padding: 23px 25px; border: 1px solid var(--border); border-radius: var(--radius); background: #dfe9f2; }
.system-strip h2 { margin: 0; font-size: 17px; }
.system-strip p { max-width: 690px; margin: 6px 0 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.system-strip > div:last-child { display: flex; gap: 9px; flex: 0 0 auto; }
.system-strip a { min-height: 38px; display: inline-flex; align-items: center; padding: 0 14px; border: 1px solid #aac0d2; border-radius: 4px; background: #fff; color: var(--accent-dark); font-size: 12px; font-weight: 800; }
.system-strip a:hover, .system-strip a:focus-visible { border-color: var(--accent); outline: 3px solid rgba(23,105,170,.14); }
.purchase-workbench, .purchase-list-panel { margin-top: 22px; }
.purchase-form { display: grid; gap: 16px; padding: 16px; }
.purchase-header-grid, .purchase-line-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.purchase-wide { grid-column: span 2; }
.purchase-line-list { display: grid; gap: 12px; }
.purchase-line-card { min-width: 0; margin: 0; padding: 14px; border: 1px solid var(--border); background: var(--bg-muted); }
.purchase-line-card legend { padding: 0 6px; font-size: 12px; font-weight: 800; }
.purchase-item-context { margin-top: 13px; padding-top: 12px; border-top: 1px dashed var(--border); }
.purchase-item-context .summary-grid { margin-top: 10px; }
.purchase-pair-warning, .purchase-default-prompt { padding: 10px 12px; border-left: 3px solid var(--warning); color: #6d5830; background: #fff9e9; font-size: 12px; }
.purchase-needs-attention select, .purchase-needs-attention input { border-color: var(--warning); background: #fff9e9; }
.purchase-pair-confirm { align-self: end; }
.purchase-mrp-sources { margin-top: 13px; padding-top: 12px; border-top: 1px dashed var(--border); }
.purchase-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.purchase-section-heading strong, .purchase-section-heading small { display: block; }
.purchase-section-heading small { margin-top: 3px; color: var(--muted); font-size: 10px; }
.purchase-mrp-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)) auto; align-items: end; gap: 10px; margin-top: 10px; }
.purchase-form-actions { display: flex; justify-content: space-between; gap: 12px; }
.purchase-action-panel { margin: 16px; padding: 16px; border: 1px solid var(--border); background: var(--bg-muted); }
.purchase-action-panel > summary, .purchase-action-panel > h3 { margin: 0; color: var(--accent-dark); font-size: 14px; font-weight: 800; cursor: pointer; }
.purchase-action-panel > p { color: var(--muted); font-size: 11px; }
.purchase-confirm-form { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)) auto; align-items: end; gap: 10px; }
.purchase-terminal-grid { display: grid; gap: 10px; }
.login-shell { min-height: 100dvh; display: grid; place-items: center; padding: 28px 16px; }
.login-panel { width: min(440px, 100%); padding: 30px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--bg-surface); box-shadow: 0 18px 50px rgba(16,37,60,.12); }
.login-kicker { margin: 0 0 8px; color: var(--accent); font-size: 11px; font-weight: 900; letter-spacing: .16em; }
.login-panel h1 { margin: 0; font-size: 28px; }
.login-lede { margin: 8px 0 22px; color: var(--muted); font-size: 13px; }
.login-error { padding: 10px 12px; border-left: 3px solid #a43b32; color: #a43b32; background: #fff0ee; font-size: 12px; }
.login-method-title { display: block; margin-bottom: 10px; font-size: 12px; }
.login-panel form { display: grid; gap: 14px; }
.login-panel label span { display: block; margin-bottom: 5px; color: var(--muted); font-size: 11px; font-weight: 700; }
.login-panel input { width: 100%; min-height: 42px; padding: 8px 10px; border: 1px solid #b8c8d7; border-radius: 4px; font: inherit; }
.login-panel input:focus { border-color: var(--accent); outline: 3px solid rgba(23,105,170,.14); }
.login-panel button, .external-login a { min-height: 42px; display: grid; place-items: center; border: 0; border-radius: 4px; color: #fff; background: var(--accent); font: inherit; font-weight: 800; cursor: pointer; }
.external-login { display: grid; gap: 8px; margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--border); }
.external-login strong { font-size: 12px; }
.external-login span { padding: 10px; color: var(--muted); background: var(--bg-muted); font-size: 12px; text-align: center; }
.django-admin-login { display: block; margin-top: 18px; color: var(--accent-dark); font-size: 12px; font-weight: 700; text-align: center; }
.identity-tabs { display: flex; align-items: stretch; gap: 28px; margin: 8px 0 22px; border-bottom: 1px solid var(--border); }
.identity-tab { min-height: 42px; padding: 0 2px; border-bottom: 3px solid transparent; color: var(--muted); font-size: 13px; font-weight: 800; }
.identity-tab:hover, .identity-tab:focus-visible { color: var(--accent-dark); outline: none; }
.identity-tab.active { border-bottom-color: var(--accent); color: var(--accent); }
.identity-layout { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 18px; align-items: start; }
.identity-list-panel, .identity-quick-panel { min-width: 0; }
.identity-list-panel > .panel-heading, .identity-quick-panel > .panel-heading { min-height: 64px; }
.identity-quick-list { display: grid; gap: 0; padding: 8px 16px; }
.identity-quick-action { display: grid; grid-template-columns: 36px minmax(0, 1fr) 16px; align-items: center; gap: 10px; min-height: 66px; border-bottom: 1px solid #e8edf2; }
.identity-quick-action:last-child { border-bottom: 0; }
.identity-quick-action:hover, .identity-quick-action:focus-visible { color: var(--accent-dark); outline: none; }
.identity-quick-action svg { width: 36px; height: 36px; padding: 8px; border-radius: 50%; color: var(--accent); background: var(--accent-soft); }
.identity-quick-action strong, .identity-quick-action small { display: block; }
.identity-quick-action strong { font-size: 12px; }
.identity-quick-action small { margin-top: 3px; color: var(--muted); font-size: 10px; }
.identity-quick-action > span { color: var(--muted); font-size: 17px; text-align: right; }
.identity-empty { padding: 35px 22px; color: var(--muted); font-size: 12px; }
.access-summary { display: grid; grid-template-columns: minmax(180px, .7fr) minmax(0, 1.3fr); gap: 18px; margin-top: 18px; }
.access-summary-panel { min-width: 0; }
.access-summary-panel h2 { margin: 0 0 12px; font-size: 16px; }
.access-summary-panel h3 { margin: 16px 0 7px; color: var(--accent-dark); font-size: 12px; }
.access-summary-list { margin: 0; padding-left: 17px; color: var(--muted); font-size: 11px; line-height: 1.65; }
.permission-domain + .permission-domain { margin-top: 13px; padding-top: 11px; border-top: 1px solid var(--border); }
.permission-domain > strong { color: var(--accent-dark); font-size: 12px; }
.permission-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; margin-top: 7px; padding: 8px 10px; border: 1px solid #e8edf2; border-radius: 4px; background: var(--bg-muted); }
.permission-row strong, .permission-row code, .permission-row small { display: block; }
.permission-row strong { font-size: 11px; }
.permission-row code { margin-top: 2px; color: var(--muted); font-size: 10px; overflow-wrap: anywhere; }
.permission-row small { color: var(--accent); font-size: 10px; text-align: right; white-space: nowrap; }

@media (max-width: 980px) {
  .workspace-shell { grid-template-columns: 78px minmax(0, 1fr); }
  .sidebar { padding-inline: 10px; }
  .brand { justify-content: center; }
  .brand > span:last-child, .nav-item { font-size: 0; }
  .nav-item { justify-content: center; padding: 0; border-left: 0; }
  .nav-item svg { width: 21px; height: 21px; }
  .sidebar-status div { display: none; }
  .sidebar-status { justify-content: center; }
  .nav-group-toggle { grid-template-columns: 1fr 15px; justify-items: center; padding-inline: 0; }
  .nav-group-toggle span, .nav-group-toggle small { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .nav-editor-trigger { justify-content: center; padding-inline: 0; font-size: 0; }
  .nav-editor-trigger svg { width: 21px; height: 21px; }
  .nav-editor { left: 70px; }
  main { padding-inline: 22px; }
  .purchase-header-grid, .purchase-line-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dashboard-columns { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .workspace-shell { display: block; }
  .sidebar { position: static; width: 100%; height: auto; display: block; padding: 10px 14px; }
  .brand { justify-content: flex-start; }
  .brand > span:last-child { display: block; }
  .sidebar nav { display: flex; align-items: center; gap: 8px; overflow-x: auto; margin-top: 8px; padding-bottom: 4px; }
  .nav-group, .nav-group + .nav-group { display: flex; flex: 0 0 auto; align-items: center; gap: 4px; margin-top: 0; }
  .nav-group-toggle { display: none; }
  .nav-group-links { display: flex; gap: 4px; margin-top: 0; }
  .nav-item { min-width: 50px; flex: 0 0 auto; }
  .sidebar-status { display: none; }
  .topbar { min-height: 60px; padding: 0 16px; }
  .topbar > div:first-child, .user-context small { display: none; }
  main { padding: 24px 16px 36px; }
  .page-heading, .system-strip { align-items: flex-start; flex-direction: column; }
  .module-grid { grid-template-columns: 1fr; }
  .module-card { min-height: 142px; border-right: 0; border-bottom: 1px solid var(--border); }
  .module-card:last-child { border-bottom: 0; }
  .system-strip > div:last-child { flex-wrap: wrap; }
  .notice { grid-template-columns: 1fr; gap: 5px; }
  .nav-editor { position: fixed; top: 78px; right: 16px; bottom: auto; left: 16px; width: auto; max-height: calc(100dvh - 94px); }
  .dashboard-heading { flex-direction: column; }
  .workspace-edit-button { align-self: flex-start; }
  .workspace-editor { position: fixed; top: 78px; right: 16px; left: 16px; width: auto; }
  .dashboard-summary { grid-template-columns: 1fr; }
  .summary-item { min-height: 76px; border-right: 0; border-bottom: 1px solid var(--border); }
  .summary-item:last-child { border-bottom: 0; }
  .dashboard-panel-heading { align-items: flex-start; }
  .task-row { grid-template-columns: 38px minmax(0, 1fr); }
  .task-action, .task-safe { grid-column: 2; justify-self: start; margin-top: 4px; }
  .pinned-app-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .identity-layout { grid-template-columns: 1fr; }
  .access-summary { grid-template-columns: 1fr; }
  .identity-tabs { gap: 16px; overflow-x: auto; }
}
