/* Data/admin refinements. Alice app.css: .card-h (234), .input/.seg (274),
 * .empty (285), .chip (262), .modal (586); views/sys.css: .sx-kpi (36).
 * Existing structure, business inks and shared table surfaces stay intact. */
:root[data-skin="alice"][data-theme][data-palette] body .ops-page {
  --ops-muted: color-mix(in srgb, var(--ac-tx) 82%, var(--ac-tx2));
  --ops-inset: linear-gradient(160deg, rgba(var(--ac-fg-rgb), .045), rgba(var(--ac-fg-rgb), .008)), color-mix(in srgb, var(--ac-glass-3) 58%, transparent);
  padding: 16px 16px 96px; min-width: 0;
}
:root[data-skin="alice"][data-theme][data-palette] body .ops-page .page-head { margin-bottom: 16px; gap: 12px 16px; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-page .page-head .tools { flex-wrap: wrap; gap: 8px; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-page .page-head .tools :is(.input,.select) { width: auto; max-width: 100%; min-width: 0; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-page .card { padding: 20px; margin-bottom: 16px; border-radius: 16px; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-page .card-h { gap: 8px 12px; margin-bottom: 16px; align-items: baseline; flex-wrap: wrap; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-page .card-h h3 { font-size: 15px; line-height: 24px; white-space: normal; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-page .card-h h3::before { content: ''; display: inline-block; width: 3px; height: 12px; border-radius: 4px; margin-right: 8px; background: var(--ac-cy); vertical-align: -1px; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-page .card-h :is(.hint,.right) { min-width: 0; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-page .card-h .hint { flex: 1 1 200px; line-height: 20px; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-page .card-h .right { display: flex; gap: 8px; flex-wrap: wrap; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-page :is(.dim,.muted,.hint,.help,.k-label,.k-foot,.ck-label,.ck-hint) { color: var(--ops-muted); }
:root[data-skin="alice"][data-theme][data-palette] body .ops-page :is(.help,.hint,.imp-last,.k-foot) { font-size: 12px; line-height: 20px; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-page :is(.grid,.form-grid) { gap: 16px; min-width: 0; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-page :is(.grid,.form-grid) > * { min-width: 0; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-page :is(.tag,.ck-pill) { padding: 2px 8px; font-size: 12px; line-height: 20px; border-radius: 999px; max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-page .tag:not(.ok,.warn,.err,.pri) { color: var(--ops-muted); }
:root[data-skin="alice"][data-theme][data-palette] body .ops-page :is(.note,.callout,.alert) { padding: 12px 16px; line-height: 24px; border-radius: 12px; overflow-wrap: anywhere; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-page .empty { padding: 32px 16px; min-height: 120px; display: grid; align-content: center; justify-items: center; gap: 12px; color: var(--ops-muted); line-height: 24px; background: var(--ops-inset); border: 1px dashed var(--ac-line2); border-radius: 12px; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-page .empty > svg { width: 32px; height: 32px; }
/* Inputs keep their original types, validation and event listeners. */
:root[data-skin="alice"] .ops-system .profile-cabin-look { margin-top: 16px; }
:root[data-skin="alice"] .ops-system .profile-cabin-look p { margin: 0 0 12px; color: var(--ops-muted); font-size: 13px; line-height: 24px; }
:root[data-skin="alice"] .ops-system .profile-cabin-look .btn { max-width: 100%; white-space: normal; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-page :is(.input,.select) { min-height: 40px; padding: 8px 12px; border-radius: 10px; color: var(--ac-tx); background: var(--ops-inset); border-color: var(--ac-line2); line-height: 24px; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-page :is(.input,.select):focus { border-color: rgba(var(--ac-cy-rgb), .6); box-shadow: 0 0 0 3px rgba(var(--ac-cy-rgb), .12); }
:root[data-skin="alice"][data-theme][data-palette] body .ops-page .input::placeholder { color: var(--ops-muted); opacity: 1; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-page .field > label { color: var(--ops-muted); margin-bottom: 8px; line-height: 20px; font-size: 13px; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-page :is(.btn,.table-action) { min-height: 36px; padding: 8px 12px; line-height: 20px; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-page :is(.user-row-actions,.admin-row-actions,.row-act) { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-page :is(.user-row-actions,.admin-row-actions,.row-act) > .link { display: inline-flex; align-items: center; min-height: 36px; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-page .pager { flex-wrap: wrap; gap: 8px 12px; padding-top: 12px; line-height: 24px; }
/* Data assets: compact Alice system tiles, with a distinct numeric tier. */
:root[data-skin="alice"][data-theme][data-palette] body .ops-assets .kpi { padding: 16px 20px; margin: 0; display: grid; align-content: start; gap: 8px; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-assets .kpi .k-val { font: 700 clamp(22px,2vw,28px)/1.2 var(--mono); color: var(--ac-tx); letter-spacing: 0; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-assets .kpi .k-val .metric-unit { font: 500 12px/20px var(--mono); color: var(--ops-muted); }
:root[data-skin="alice"][data-theme][data-palette] body .ops-assets .kpi .k-ico { opacity: .8; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-assets .asset-card { padding: 16px !important; border-radius: 12px; background: var(--ops-inset); box-shadow: inset 0 1px 0 var(--ac-glass-hi); }
:root[data-skin="alice"][data-theme][data-palette] body .ops-assets .asset-card > .muted { margin: 8px 0 12px !important; line-height: 20px; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-assets .asset-meta { gap: 8px 16px; line-height: 20px; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-assets .asset-meta > span:first-child { flex-basis: 100%; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-assets .asset-meta b { font: 700 22px/28px var(--mono); padding-left: 4px; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-page :is(.ops-sync,.ops-operation) { display: grid; gap: 12px; padding: 16px 20px; margin: 16px 0; border: 1px solid var(--ac-glass-rim); border-radius: 12px; background: var(--ops-inset); box-shadow: inset 0 1px 0 var(--ac-glass-hi); }
:root[data-skin="alice"][data-theme][data-palette] body .ops-page :is(.ops-sync-head,.ops-operation-head) { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 16px; font-size: 13px; line-height: 24px; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-page :is(.ops-sync-head,.ops-operation-head) > .num { margin-left: auto; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-page :is(.ops-sync,.ops-operation) small { color: var(--ops-muted); font-size: 12px; line-height: 20px; overflow-wrap: anywhere; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-page .ops-live { color: var(--ac-cy); font-size: 12px; }
/* Import: restrained drop target, glass insets and aligned card actions. */
:root[data-skin="alice"][data-theme][data-palette] body .ops-import .imp-drop { border: 1px dashed rgba(var(--ac-cy-rgb), .5); background: linear-gradient(120deg,rgba(var(--ac-cy-rgb),.08),rgba(var(--ac-vi-rgb),.04)), var(--ac-glass-2); padding: 24px; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-import .imp-drop.over { border-style: solid; border-color: var(--ac-cy); box-shadow: inset 0 0 0 1px rgba(var(--ac-cy-rgb),.3), 0 0 24px -12px var(--ac-cy); }
:root[data-skin="alice"][data-theme][data-palette] body .ops-import .imp-drop-in { align-items: center; gap: 16px; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-import .imp-drop-in > svg { width: 48px; height: 48px; padding: 12px; margin: 0; border-radius: 12px; border: 1px solid rgba(var(--ac-cy-rgb),.2); background: rgba(var(--ac-cy-rgb),.08); }
:root[data-skin="alice"][data-theme][data-palette] body .ops-import .imp-drop-in > div { min-width: 0; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-import .imp-drop-in b { font-size: 15px; line-height: 24px; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-import .imp-card { padding: 16px; gap: 12px; border-radius: 12px; background: var(--ops-inset); box-shadow: inset 0 1px 0 var(--ac-glass-hi); }
:root[data-skin="alice"][data-theme][data-palette] body .ops-import .imp-h b { font-size: 14px; line-height: 24px; overflow-wrap: anywhere; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-import :is(.imp-d,.imp-last) { color: var(--ops-muted); line-height: 20px; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-import .imp-act { padding-top: 12px; margin-top: auto; border-top: 1px solid var(--ac-line); align-items: center; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-import .auto-line { padding: 12px 16px; border-radius: 12px; background: var(--ops-inset); gap: 8px 12px; line-height: 24px; overflow-wrap: anywhere; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-import #official-market summary { min-height: 32px; line-height: 24px; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-import .import-filename { white-space: normal; overflow-wrap: anywhere; max-width: none; }
/* Admin forms retain selects and checkboxes; only module options get switch styling. */
:root[data-skin="alice"][data-theme][data-palette] body .ops-system .settings-card { padding: 20px; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-system .settings-grid { grid-template-columns: repeat(2,minmax(0,1fr)); align-items: stretch; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-system .settings-grid .field { padding: 16px; margin: 0; border: 1px solid var(--ac-line); border-radius: 12px; background: var(--ops-inset); display: flex; flex-direction: column; align-items: stretch; gap: 8px; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-system .settings-grid .field > label { margin: 0; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-system .settings-grid .field > :is(.input,.select) { margin-top: auto; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-system .settings-actions { padding-top: 20px; margin-top: 20px; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-system .module-option { background: var(--ops-inset); padding: 16px; border-radius: 12px; gap: 12px; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-system .module-option:has(input:checked) { border-color: rgba(var(--ac-cy-rgb),.4); box-shadow: inset 0 1px 0 var(--ac-glass-hi); }
:root[data-skin="alice"][data-theme][data-palette] body .ops-system .module-option :is(b,small) { line-height: 20px; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-system .module-option small { color: var(--ops-muted); font-size: 12px; margin-top: 8px; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-system .module-option input { appearance: none; width: 36px; height: 20px; margin: 0; position: relative; border-radius: 999px; border: 1px solid var(--ac-line2); background: rgba(var(--ac-sl-rgb),.16); cursor: pointer; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-system .module-option input::before { content: ''; position: absolute; width: 12px; height: 12px; top: 3px; left: 3px; border-radius: 50%; background: var(--ac-tx2); transition: transform .2s; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-system .module-option input:checked { background: rgba(var(--ac-cy-rgb),.24); border-color: rgba(var(--ac-cy-rgb),.6); }
:root[data-skin="alice"][data-theme][data-palette] body .ops-system .module-option input:checked::before { background: var(--ac-cy); transform: translateX(16px); }
:root[data-skin="alice"][data-theme][data-palette] body .ops-system .module-option input:focus-visible { outline: 2px solid var(--ac-cy); outline-offset: 4px; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-system .module-option:has(input:disabled) { opacity: .6; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-system .code { max-width: 100%; overflow: auto; padding: 16px; border-radius: 12px; background: var(--ops-inset); color: var(--ac-tx); font: 12px/20px var(--mono); border: 1px solid var(--ac-line); }
:root[data-skin="alice"][data-theme][data-palette] body .ops-system .integration-url { white-space: normal; overflow-wrap: anywhere; max-width: none; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-page .ops-summary { display: grid; grid-template-columns: repeat(auto-fit,minmax(160px,1fr)); gap: 12px; margin-bottom: 20px; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-page .ops-summary .ck-stat { background: var(--ops-inset); padding: 16px 20px; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-system #pg > .ops-summary + div:has(> .tag) { display: none; }
/* A17: dialog styles are limited to these page roots; EX.modal owns all behavior.
 * Shared table material stays in cabin-table.css, including sticky headers. */
:root[data-skin="alice"][data-theme][data-palette] body:has(.ops-page) .modal:not(.cabin-appearance-modal) { --ops-muted: color-mix(in srgb,var(--ac-tx) 82%,var(--ac-tx2)); --ops-inset: var(--cabin-data-surface); border-radius: 18px; max-height: 88dvh; }
:root[data-skin="alice"][data-theme][data-palette] body:has(.ops-page) .modal:not(.cabin-appearance-modal) :is(.modal-h,.modal-b,.modal-f) { padding: 20px 24px; }
:root[data-skin="alice"][data-theme][data-palette] body:has(.ops-page) .modal:not(.cabin-appearance-modal) .modal-h h3 { font-size: 17px; line-height: 28px; white-space: normal; overflow-wrap: anywhere; }
:root[data-skin="alice"][data-theme][data-palette] body:has(.ops-page) .modal:not(.cabin-appearance-modal) .modal-f { gap: 8px; flex-wrap: wrap; }
:root[data-skin="alice"][data-theme][data-palette] body:has(.ops-page) .modal:not(.cabin-appearance-modal) :is(.input,.select) { padding: 8px 12px; min-height: 40px; min-width: 0; line-height: 24px; background: var(--ops-inset); color: var(--ac-tx); }
:root[data-skin="alice"][data-theme][data-palette] body:has(.ops-page) .modal:not(.cabin-appearance-modal) :is(.field label,.dim,.help,.muted,.ck-label,.ck-hint) { color: var(--ops-muted); line-height: 20px; }
:root[data-skin="alice"][data-theme][data-palette] body:has(.ops-page) .modal:not(.cabin-appearance-modal) .form-grid { gap: 16px; }
:root[data-skin="alice"][data-theme][data-palette] body:has(.ops-page) .modal:not(.cabin-appearance-modal) .form-grid > * { min-width: 0; }
:root[data-skin="alice"][data-theme][data-palette] body:has(.ops-page) .modal:not(.cabin-appearance-modal) :is(.kv-line,.imp-h) { flex-wrap: wrap; gap: 8px 12px; overflow-wrap: anywhere; }
:root[data-skin="alice"][data-theme][data-palette] body:has(.ops-page) .modal:not(.cabin-appearance-modal) .ops-summary { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; margin-bottom: 20px; }
:root[data-skin="alice"][data-theme][data-palette] body:has(.ops-page) .modal:not(.cabin-appearance-modal) .ops-summary .ck-number { font-size: 22px; }
:root[data-skin="alice"][data-theme][data-palette] body:has(.ops-page) .modal:not(.cabin-appearance-modal) .perm-node { padding: 12px; border-radius: 12px; border: 1px solid var(--ac-line); background: var(--ops-inset); }
:root[data-skin="alice"][data-theme][data-palette] body:has(.ops-page) .modal:not(.cabin-appearance-modal) :is(.perm-master-row,.perm-kids) { gap: 8px 16px; }
:root[data-skin="alice"][data-theme][data-palette] body:has(.ops-page) .modal:not(.cabin-appearance-modal) .check { min-height: 32px; line-height: 20px; }
:root[data-skin="alice"][data-theme][data-palette] body:has(.ops-import) .modal :is(#pf-map,#pf-head) { max-width: 100%; overflow-x: auto; }
:root[data-skin="alice"][data-theme][data-palette] body:has(.ops-import) .modal #pf-map input { min-width: 100px; }
:root[data-skin="alice"][data-theme][data-palette] body:has(.ops-import) .modal .imp-card { padding: 16px; border-radius: 12px; background: var(--ops-inset); }
/* Calm updates: the first meter uses kit's entrance; polling/results do not replay. */
:root[data-skin="alice"][data-theme][data-palette] body .ops-page .ops-operation .ck-track-bar > i { animation: none; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-assets .ops-sync[data-ops-updated] .ck-track-bar > i { animation: none; }
@media (max-width: 1100px) {
  :root[data-skin="alice"][data-theme][data-palette] body .ops-page .g3 { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 700px) {
  :root[data-skin="alice"][data-theme][data-palette] body .ops-page { padding: 12px 8px 96px; }
  :root[data-skin="alice"][data-theme][data-palette] body .ops-page :is(.g3,.g4,.g-3-2,.g-2-1,.settings-grid) { grid-template-columns: minmax(0,1fr); }
  :root[data-skin="alice"][data-theme][data-palette] body .ops-page .card { padding: 16px; }
  :root[data-skin="alice"][data-theme][data-palette] body .ops-page :is(.btn,.select,.input) { min-height: 44px; max-width: 100%; }
  :root[data-skin="alice"][data-theme][data-palette] body .ops-page .page-head .tools > :is(.input,.select) { flex: 1 1 120px; width: auto !important; }
  :root[data-skin="alice"][data-theme][data-palette] body .ops-page .ops-summary { grid-template-columns: minmax(0,1fr); }
  :root[data-skin="alice"][data-theme][data-palette] body .ops-page :is(.ops-sync-head,.ops-operation-head) > .num { margin-left: 0; }
  :root[data-skin="alice"][data-theme][data-palette] body .ops-import .imp-drop-in { align-items: start; }
  :root[data-skin="alice"][data-theme][data-palette] body .ops-import .imp-drop-in > svg { width: 36px; height: 36px; padding: 8px; }
  :root[data-skin="alice"][data-theme][data-palette] body .ops-import .imp-act .btn { white-space: normal; text-align: left; }
  :root[data-skin="alice"][data-theme][data-palette] body:has(.ops-page) .modal:not(.cabin-appearance-modal) :is(.modal-h,.modal-b,.modal-f) { padding: 16px; }
  :root[data-skin="alice"][data-theme][data-palette] body:has(.ops-page) .modal:not(.cabin-appearance-modal) .ops-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
  :root[data-skin="alice"][data-theme][data-palette] body:has(.ops-page) .modal:not(.cabin-appearance-modal) :is(.btn,.check) { min-height: 44px; }
  :root[data-skin="alice"][data-theme][data-palette] body:has(.ops-page) .modal:not(.cabin-appearance-modal) .modal-f .btn { white-space: normal; }
}
@media (prefers-reduced-motion: reduce) {
  :root[data-skin="alice"][data-theme][data-palette] body .ops-page .module-option input::before { transition: none; }
}
:root[data-skin="alice"][data-theme][data-palette][data-navfx="none"] body .ops-page .module-option input::before { transition: none; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-assets .kpi:has(.ops-kpi-number) .k-val { display: none; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-assets .ops-kpi-number { grid-row: 2; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-assets .ops-kpi-number .ck-number { font-size: clamp(22px,2vw,28px); }
:root[data-skin="alice"][data-theme][data-palette] body:has(.ops-page) .modal:not(.cabin-appearance-modal) .ops-operation { display: grid; gap: 12px; padding: 16px; margin-bottom: 16px; border: 1px solid var(--ac-glass-rim); border-radius: 12px; background: var(--cabin-data-surface); }
:root[data-skin="alice"][data-theme][data-palette] body:has(.ops-page) .modal:not(.cabin-appearance-modal) .ops-operation-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
:root[data-skin="alice"][data-theme][data-palette] body:has(.ops-page) .modal:not(.cabin-appearance-modal) .ops-operation small { color: var(--ops-muted); line-height: 20px; overflow-wrap: anywhere; }
:root[data-skin="alice"][data-theme][data-palette] body:has(.ops-page) .modal:not(.cabin-appearance-modal) .ops-operation .ck-track-bar > i { animation: none; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-system #pg > .ops-summary + div:has(> .tag) { display: none !important; }
:root[data-skin="alice"][data-theme][data-palette] body:has(.ops-page) .modal:not(.cabin-appearance-modal) { padding: 0; }
:root[data-skin="alice"][data-theme][data-palette] body:has(.ops-page) .modal.wide:not(.cabin-appearance-modal) { max-width: min(1120px,calc(100vw - 32px)); }
:root[data-skin="alice"][data-theme][data-palette] body:has(.ops-page) .modal:not(.cabin-appearance-modal) .modal-h [data-x] { width: 40px; height: 40px; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-assets .asset-card .tag[style*="var(--tx-3)"] { color: var(--ops-muted) !important; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-page .link.danger { color: var(--err); }
:root[data-skin="alice"][data-theme][data-palette] body .ops-page #pg:empty::before,
:root[data-skin="alice"][data-theme][data-palette] body .ops-import #cats:empty::before { content: '正在读取数据…'; display: block; padding: 32px 16px; color: var(--ops-muted); text-align: center; line-height: 24px; }
:root[data-skin="alice"][data-theme="light"][data-palette] body .ops-assets .sync-result.ok { background: rgba(255,255,255,.72) !important; }
:root[data-skin="alice"][data-theme][data-palette] body .ops-system .fx-opt small { color: var(--ops-muted); }
