/* Neutral compatibility with acg-faka's official item and delivery scripts. */
.sf-body .abacus .price{color:var(--sf-ink);font-family:var(--sf-mono);font-size:var(--sf-text-2xl);font-weight:var(--sf-weight-medium);font-variant-numeric:tabular-nums}
.sf-body .abacus .unit{margin-right:2px;font-size:.55em}
.sf-body .item-stock{display:inline-flex}
.sf-body .shared-button{cursor:pointer}
.sf-body .badge-money{color:var(--sf-ink)!important;font-family:var(--sf-mono);font-size:var(--sf-text-xs);font-variant-numeric:tabular-nums}
.sf-body .card-display{padding:14px;border:1px solid var(--sf-ink);background:var(--sf-ink);color:#fff;font-family:var(--sf-mono);font-size:var(--sf-text-sm);line-height:var(--sf-leading-relaxed);white-space:pre-wrap;overflow-wrap:anywhere;user-select:all}
.sf-body .acg-rich{color:var(--sf-ink-soft);line-height:var(--sf-leading-relaxed);overflow-wrap:anywhere}
.sf-body .acg-rich>:where(:first-child){margin-top:0}.sf-body .acg-rich>:where(:last-child){margin-bottom:0}
.sf-body .acg-rich img{height:auto}
.sf-body .acg-rich a,.sf-body .text-link{color:var(--sf-info);text-decoration:underline}
.sf-body .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 16px;border:1px solid var(--sf-ink);font-size:var(--sf-text-sm);font-weight:var(--sf-weight-semibold);cursor:pointer}
.sf-body .btn-primary,.sf-body .btn-gradient{border-color:var(--sf-action);background:var(--sf-action-button);color:var(--sf-on-action)}
.sf-body .btn-primary:hover,.sf-body .btn-gradient:hover{background:var(--sf-action-button-hover);color:var(--sf-on-action)}
.sf-body .btn-outline-primary,.sf-body .btn-passkey{border-color:var(--sf-line-strong);background:var(--sf-surface);color:var(--sf-ink)}
.sf-body .btn-outline-primary:hover,.sf-body .btn-passkey:hover{background:var(--sf-surface-alt);color:var(--sf-ink)}

/* Match Core purchase controls to the warm porcelain component geometry. */
.sf-body .sku,.sf-body .pay-list .pay,.sf-body .btn,.sf-body .shared-button{border-radius:var(--sf-radius-sm)}
.sf-body .qty-group,.sf-body .captcha-group{overflow:hidden;border-radius:var(--sf-radius-sm)}
.sf-body .card-display{border-radius:var(--sf-radius)}

/* Core Loading API keeps its DOM and lifecycle; the visible loader is ToAGI porcelain. */
.sf-body{
  --chahuo-ring-color:var(--sf-action-hover);
  --chahuo-ring-track:var(--sf-line);
  --chahuo-ring-overlay:var(--sf-overlay);
  --chahuo-ring-card:var(--sf-surface);
}
:root[data-theme='night'] .sf-body{--chahuo-ring-color:var(--sf-action)}
.sf-body .chahuo-ring-overlay{backdrop-filter:none;-webkit-backdrop-filter:none}
.sf-body .chahuo-ring-overlay[mask-hidden="false"]{animation:sf-loading-enter var(--sf-fast) ease-out both}
.sf-body .chahuo-ring-overlay::before{width:100%;background:var(--sf-ink);box-shadow:none;transform:scaleX(0);transform-origin:left center;animation:sf-loading-bar 1.2s cubic-bezier(.22,.61,.36,1) forwards}
.sf-body .chahuo-ring-overlay .chahuo-ring{padding:var(--sf-space-3);border:1px solid var(--sf-line);border-radius:var(--sf-radius-lg);background:var(--sf-surface);box-shadow:var(--sf-shadow-overlay);animation:none}
.sf-body .chahuo-ring::after{border-right-color:var(--sf-line-strong)}
@keyframes sf-loading-enter{from{opacity:0}to{opacity:1}}
@keyframes sf-loading-bar{from{transform:scaleX(0)}to{transform:scaleX(.88)}}
@media (prefers-reduced-motion:reduce){
  .sf-body .chahuo-ring-overlay[mask-hidden="false"],.sf-body .chahuo-ring-overlay::before,.sf-body .chahuo-ring,.sf-body .chahuo-ring::after{animation:none}
  .sf-body .chahuo-ring-overlay::before{transform:scaleX(.88)}
}

/* Layer and SweetAlert2 keep Core positioning and behavior with ToAGI surfaces. */
.sf-body .layui-layer,.sf-body .swal2-popup{border:1px solid var(--sf-line);border-radius:var(--sf-radius-lg)!important;background:var(--sf-surface);box-shadow:var(--sf-shadow-overlay);color:var(--sf-ink);font-family:var(--sf-font)}
.sf-body .layui-layer{animation:sf-feedback-enter var(--sf-normal) var(--sf-ease) both}
.sf-body .layui-layer-title{height:auto!important;min-height:52px;padding:14px 48px 14px 20px;border-bottom:1px solid var(--sf-line)!important;border-radius:var(--sf-radius-lg) var(--sf-radius-lg) 0 0!important;background:var(--sf-surface-alt)!important;box-shadow:none;color:var(--sf-ink);font-size:var(--sf-text-base)!important;line-height:1.5!important}
.sf-body .layui-layer-content{border-radius:var(--sf-radius-lg)!important;background:var(--sf-surface);color:var(--sf-ink-soft)}
.sf-body .layui-layer-dialog .layui-layer-content{padding:20px;line-height:var(--sf-leading-relaxed)}
.sf-body .layui-layer-setwin a{opacity:.65}.sf-body .layui-layer-setwin a:hover{opacity:1}
.sf-body .layui-layer-btn{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--sf-line);border-radius:0 0 var(--sf-radius-lg) var(--sf-radius-lg)!important;background:var(--sf-surface-alt)}
.sf-body .layui-layer-btn a{display:inline-flex;align-items:center;justify-content:center;min-width:72px;min-height:40px;margin:0;padding:8px 16px;border:1px solid var(--sf-line-strong);border-radius:var(--sf-radius-sm);background:var(--sf-surface);color:var(--sf-ink);font-size:var(--sf-text-sm);line-height:1.4}
.sf-body .layui-layer-btn .layui-layer-btn0{border-color:var(--sf-action);background:var(--sf-action-button);color:var(--sf-on-action)!important}
.sf-body .layui-layer-btn .layui-layer-btn1{background:var(--sf-surface);color:var(--sf-ink)!important}
.sf-body .layui-layer-hui{border-color:var(--sf-line);background:var(--sf-ink);color:var(--sf-surface)}
.sf-body .layui-layer-hui .layui-layer-content{padding:12px 20px;background:transparent;color:inherit}
.sf-body .layui-layer-prompt .layui-layer-input{width:100%;max-width:100%;height:auto;min-height:44px;margin:0;padding:10px 12px;border:1px solid var(--sf-control-border);border-radius:var(--sf-radius-sm);background-color:var(--sf-surface)!important;color:var(--sf-ink)}
.sf-body .layui-layer-prompt textarea.layui-layer-input{min-height:100px}
.sf-body .layui-layer-loading .layui-layer-content{position:relative;width:40px;height:40px;background:none!important}
.sf-body .layui-layer-loading .layui-layer-content::after{display:block;width:30px;height:30px;border:2px solid var(--sf-line);border-top-color:var(--sf-action-hover);border-radius:50%;content:'';animation:sf-ring-spin .85s linear infinite}
:root[data-theme='night'] .sf-body .layui-layer-loading .layui-layer-content::after{border-top-color:var(--sf-action)}
.sf-body .swal2-container.swal2-backdrop-show{background:var(--sf-overlay)}
.sf-body .swal2-popup{animation:sf-feedback-enter var(--sf-normal) var(--sf-ease) both}
.sf-body .swal2-title{color:var(--sf-ink);font-size:var(--sf-text-xl);line-height:1.35}
.sf-body .swal2-html-container{color:var(--sf-ink-soft);font-size:var(--sf-text-base);line-height:var(--sf-leading-relaxed)}
.sf-body .swal2-styled{min-height:44px;padding:10px 18px;border:1px solid var(--sf-line-strong);border-radius:var(--sf-radius-sm);box-shadow:none;font-size:var(--sf-text-sm);font-weight:var(--sf-weight-semibold)}
.sf-body .swal2-styled.swal2-confirm{border-color:var(--sf-action);background:var(--sf-action-button);color:var(--sf-on-action)}
.sf-body .swal2-styled.swal2-cancel{background:var(--sf-surface);color:var(--sf-ink)}
.sf-body .swal2-styled:focus{box-shadow:0 0 0 2px var(--sf-surface),0 0 0 4px var(--sf-focus)}
.sf-body .swal2-input{height:auto;min-height:44px;margin:16px 24px 4px;padding:10px 12px;border:1px solid var(--sf-control-border);border-radius:var(--sf-radius-sm);background-color:var(--sf-surface)!important;color:var(--sf-ink);font-size:var(--sf-text-base)}
.sf-body .swal2-icon.swal2-warning{border-color:var(--sf-warning-border);color:var(--sf-warning)}
.sf-body .swal2-validation-message{background:var(--sf-danger-soft);color:var(--sf-danger)}
.sf-body .swal2-close{color:var(--sf-muted)}
@keyframes sf-feedback-enter{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
@keyframes sf-ring-spin{to{transform:rotate(1turn)}}

/* Toastr uses the same semantic feedback tokens instead of solid Core colors. */
.sf-body #toast-container.toast-top-right{top:96px;right:16px}
.sf-body #toast-container .toast{position:relative;width:320px;max-width:calc(100vw - 32px);margin:0 0 8px;padding:14px 16px;border:1px solid var(--sf-line);border-radius:var(--sf-radius);background:var(--sf-surface);box-shadow:var(--sf-shadow-overlay);color:var(--sf-ink);font-family:var(--sf-font);opacity:1;background-image:none!important}
.sf-body #toast-container .toast:hover{box-shadow:var(--sf-shadow-overlay)}
.sf-body #toast-container .toast-success{border-color:var(--sf-success-border);background-color:var(--sf-success-soft);color:var(--sf-success)}
.sf-body #toast-container .toast-error{border-color:var(--sf-danger-border);background-color:var(--sf-danger-soft);color:var(--sf-danger)}
.sf-body #toast-container .toast-info{border-color:var(--sf-info-border);background-color:var(--sf-info-soft);color:var(--sf-info)}
.sf-body #toast-container .toast-warning{border-color:var(--sf-warning-border);background-color:var(--sf-warning-soft);color:var(--sf-warning)}
.sf-body #toast-container .toast-title{color:inherit;font-weight:var(--sf-weight-semibold)}
.sf-body #toast-container .toast-message{line-height:var(--sf-leading)}
.sf-body #toast-container .toast-progress{height:3px;background:currentColor;opacity:.35}
.sf-body #toast-container .toast-close-button{position:absolute;top:6px;right:6px;display:grid;place-items:center;width:32px;height:32px;padding:0;color:var(--sf-muted);font-size:20px;line-height:1;text-shadow:none;opacity:1}
.sf-body #toast-container .toast-close-button:hover,.sf-body #toast-container .toast-close-button:focus{background:var(--sf-surface-alt);color:var(--sf-ink);opacity:1}
@media (max-width:480px){
  .sf-body #toast-container.toast-top-right{top:80px;right:12px;left:12px}
  .sf-body #toast-container .toast{width:100%!important;max-width:none;margin:0 0 8px;padding:14px 16px}
}

/* Message preview and purchase-result content inherit the same reading surfaces. */
.sf-body .md-message-preview{display:flex;min-height:0;flex-direction:column;background:var(--sf-surface);color:var(--sf-ink-soft)}
.sf-body .md-message-preview__header{display:grid;grid-template-columns:48px minmax(0,1fr) 40px;gap:14px;align-items:center;padding:20px 24px 16px;border-bottom:1px solid var(--sf-line);background:var(--sf-surface)}
.sf-body .md-message-preview__heading{display:grid;gap:4px;min-width:0}
.sf-body .md-message-preview__heading>span{color:var(--sf-muted);font-size:11px;letter-spacing:.08em}
.sf-body .md-message-preview__heading h2{margin:0;color:var(--sf-ink);font-size:22px;line-height:1.35;overflow-wrap:anywhere}
.sf-body .md-message-preview__heading time{color:var(--sf-muted);font-size:var(--sf-text-xs)}
.sf-body .md-message-preview__icon{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--sf-warm-border);border-radius:var(--sf-radius);background:var(--sf-surface-warm);color:var(--sf-action-hover)}
.sf-body .md-message-preview__close{display:grid;place-items:center;width:40px;height:40px;padding:0;border:1px solid transparent;border-radius:var(--sf-radius-sm);background:transparent;color:var(--sf-muted);cursor:pointer}
.sf-body .md-message-preview__close:hover{border-color:var(--sf-line);background:var(--sf-surface-alt);color:var(--sf-ink)}
.sf-body .md-message-preview__content{max-height:min(72vh,720px);overflow-y:auto;padding:24px 28px 30px;color:var(--sf-ink-soft);font-size:var(--sf-text-base);line-height:var(--sf-leading-relaxed)}
.sf-body .md-message-preview__content>:where(:first-child){margin-top:0}.sf-body .md-message-preview__content>:where(:last-child){margin-bottom:0}
.sf-body .md-message-preview__content :where(h1,h2,h3,h4,strong){color:var(--sf-ink)}
.sf-body .md-message-preview__content :where(code,pre){border:1px solid var(--sf-line);border-radius:var(--sf-radius-sm);background:var(--sf-surface-alt);color:var(--sf-ink);font-family:var(--sf-mono)}
.sf-body .md-message-preview__content code{padding:2px 5px}.sf-body .md-message-preview__content pre{padding:12px;overflow-x:auto}
.sf-body .md-message-preview__content :where(ul,ol){padding-left:1.4em}
.sf-body .md-message-preview__content img{max-width:100%;height:auto}
.sf-body .md-message-preview__content table{width:100%;border-collapse:collapse}
.sf-body .md-message-preview__content :where(th,td){padding:8px 10px;border:1px solid var(--sf-line);text-align:left}
.sf-body .md-message-preview__content a{color:var(--sf-info)}
@media (max-width:640px){
  .sf-body .md-message-preview__header{grid-template-columns:42px minmax(0,1fr) 38px;gap:10px;padding:16px}
  .sf-body .md-message-preview__icon{width:40px;height:40px}
  .sf-body .md-message-preview__heading h2{font-size:20px}
  .sf-body .md-message-preview__content{max-height:none;padding:20px 18px 28px}
}
.layui-layer .acg-secret{gap:14px;padding:20px;background:var(--sf-surface);color:var(--sf-ink-soft);font-size:var(--sf-text-sm)}
.acg-secret .acg-secret__code{padding:14px 16px;border:1px solid var(--sf-line);border-radius:var(--sf-radius);background:var(--sf-surface-alt);color:var(--sf-ink);font-family:var(--sf-mono);font-size:13px;line-height:1.75}
.acg-secret .acg-secret__bar{gap:8px}
.acg-secret .acg-secret__btn{min-height:40px;padding:8px 14px;border:1px solid var(--sf-line-strong);border-radius:var(--sf-radius-sm);background:var(--sf-surface);color:var(--sf-ink);transition:background-color var(--sf-fast) var(--sf-ease),border-color var(--sf-fast) var(--sf-ease)}
.acg-secret .acg-secret__btn:hover{border-color:var(--sf-control-border);background:var(--sf-surface-alt);color:var(--sf-ink)}
.acg-secret .acg-secret__btn:focus-visible{outline:2px solid var(--sf-focus);outline-offset:2px}
.acg-secret .acg-secret__note{padding:12px 14px;border:1px solid var(--sf-warm-border);border-left:3px solid var(--sf-action-hover);border-radius:var(--sf-radius);background:var(--sf-surface-warm);color:var(--sf-ink-soft)}
.acg-secret .acg-secret__note-title{color:var(--sf-muted);opacity:1}
.acg-secret .acg-secret__note-body{line-height:1.75}
.layui-layer .acg-secret .acg-delivery{--acg-delivery-radius:var(--sf-radius)}

@media (prefers-reduced-motion:reduce){
  .sf-body .layui-layer,.sf-body .swal2-popup,.sf-body .layui-layer-loading .layui-layer-content::after,.sf-body #toast-container .toast{animation:none!important;transition:none!important}
}

/* Select2 default theme: closed, open, search, results, multiple and disabled. */
.sf-body .select2-container .select2-selection{border-radius:var(--sf-radius-sm)!important;color:var(--sf-ink)}
.sf-body .select2-container .select2-selection__rendered{color:var(--sf-ink)}
.sf-body .select2-container .select2-selection__placeholder{color:var(--sf-muted)}
.sf-body .select2-container .select2-selection__arrow b{border-color:var(--sf-muted)}
.sf-body .select2-container--default.select2-container--focus .select2-selection--single,
.sf-body .select2-container--default.select2-container--open .select2-selection--single,
.sf-body .select2-container--default.select2-container--focus .select2-selection--multiple{border-color:var(--sf-focus)!important;box-shadow:0 0 0 2px var(--sf-primary-soft)}
.sf-body .select2-dropdown{border-color:var(--sf-line);border-radius:var(--sf-radius-sm);background:var(--sf-surface);box-shadow:var(--sf-shadow-overlay);color:var(--sf-ink)}
.sf-body .select2-dropdown--above{border-radius:var(--sf-radius-sm)}
.sf-body .select2-search--dropdown .select2-search__field{border-color:var(--sf-control-border);border-radius:var(--sf-radius-sm);background-color:var(--sf-surface)!important;color:var(--sf-ink)}
.sf-body .select2-search--dropdown .select2-search__field:focus{border-color:var(--sf-focus);outline:0;box-shadow:0 0 0 2px var(--sf-primary-soft)}
.sf-body .select2-container--default .select2-results__option{color:var(--sf-ink-soft)}
.sf-body .select2-container--default .select2-results__option[aria-selected=true]{background:var(--sf-surface-alt);color:var(--sf-ink)}
.sf-body .select2-container--default .select2-results__option--highlighted[aria-selected]{background:var(--sf-primary-soft);color:var(--sf-ink)}
.sf-body .select2-container--default .select2-results__option[aria-disabled=true]{color:var(--sf-faint)}
.sf-body .select2-results__message{color:var(--sf-muted)}
.sf-body .select2-container--default .select2-selection--multiple .select2-selection__rendered{padding:4px 8px;line-height:normal!important}
.sf-body .select2-container--default .select2-selection--multiple .select2-selection__choice{margin:4px;border-color:var(--sf-line);border-radius:var(--sf-radius-sm);background:var(--sf-surface-alt);color:var(--sf-ink)}
.sf-body .select2-container--default .select2-selection--multiple .select2-selection__choice__remove{color:var(--sf-muted)}
.sf-body .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:var(--sf-danger)}
.sf-body .select2-container--default .select2-selection__clear{color:var(--sf-muted)}
.sf-body .select2-container--default.select2-container--disabled .select2-selection--single,
.sf-body .select2-container--default.select2-container--disabled .select2-selection--multiple{border-color:var(--sf-line)!important;background:var(--sf-surface-alt)!important;color:var(--sf-faint)}
.sf-body .select2-container--default.select2-container--disabled .select2-selection__rendered{color:var(--sf-faint)}
@media (max-width:480px){.sf-body .select2-dropdown{max-width:calc(100vw - 16px)}}

/* Core table variables and task controls share the same semantic tokens. */
.sf-body .table-search,.sf-body .bootstrap-table{
  --acg-component-primary:var(--sf-primary);
  --acg-component-primary-rgb:38,40,44;
  --acg-component-on-primary:var(--sf-on-primary);
  --acg-component-surface:var(--sf-surface);
  --acg-component-surface-2:var(--sf-surface-alt);
  --acg-component-ink:var(--sf-ink);
  --acg-component-muted:var(--sf-muted);
  --acg-component-disabled:var(--sf-faint);
  --acg-component-outline:var(--sf-control-border);
  --acg-component-divider:var(--sf-line);
  --acg-component-hover:var(--sf-primary-soft);
  --acg-component-selected:var(--sf-primary-soft);
  --acg-component-radius:var(--sf-radius-sm);
}
:root[data-theme='night'] .sf-body .table-search,:root[data-theme='night'] .sf-body .bootstrap-table{--acg-component-primary-rgb:244,245,243}
.sf-body .table-search .query-button{min-height:44px!important;padding:8px 16px!important;border-radius:var(--sf-radius-sm)!important;font-size:var(--sf-text-sm)}
.sf-body .bootstrap-table.bootstrap5 .table-switch-state button{min-height:40px;padding:8px 12px!important;border-radius:var(--sf-radius-sm)!important;font-size:var(--sf-text-sm)}
.sf-body .bootstrap-table.bootstrap5 .table-switch-state button.active{background:var(--sf-primary)!important;color:var(--sf-on-primary)!important}
.sf-body .fixed-table-pagination .page-item .page-link{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px!important;min-height:36px;border-radius:var(--sf-radius-sm)!important}
.sf-body .fixed-table-pagination .page-item.active .page-link{background:var(--sf-primary)!important;color:var(--sf-on-primary)!important}
.sf-body .fixed-table-pagination .page-list .dropdown-menu{border:1px solid var(--sf-line)!important;border-radius:var(--sf-radius-sm)!important;background:var(--sf-surface-alt)!important;box-shadow:var(--sf-shadow-overlay)!important}
.sf-body .fixed-table-pagination .page-list .dropdown-item:hover,.sf-body .fixed-table-pagination .page-list .dropdown-item.active{background:var(--sf-primary-soft)!important;color:var(--sf-ink)!important}
.sf-body .bootstrap-table .fixed-table-container .table > tbody > tr.no-records-found > td{padding:24px 12px!important;color:var(--sf-muted)!important}
.sf-body .component-table-empty__icon{background:var(--sf-surface-alt)!important;color:var(--sf-muted)}
.sf-body .bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading{background:var(--sf-surface)!important;color:var(--sf-muted)}
.sf-body .fixed-table-loading .animation-dot{background:var(--sf-action)}
@media (prefers-reduced-motion:reduce){
  .sf-body .fixed-table-loading .animation-wrap,.sf-body .fixed-table-loading .animation-dot{animation:none!important}
}

/* Layui popup forms and native selectors use the same controls as the page shell. */
.sf-body .component-popup .layui-input,.sf-body .component-popup .layui-textarea{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--sf-control-border)!important;border-radius:var(--sf-radius-sm)!important;background-color:var(--sf-surface)!important;color:var(--sf-ink)!important;box-shadow:none}
.sf-body .component-popup .layui-textarea{min-height:96px;line-height:var(--sf-leading)}
.sf-body .component-popup .layui-input:focus,.sf-body .component-popup .layui-textarea:focus{border-color:var(--sf-focus)!important;box-shadow:0 0 0 2px var(--sf-primary-soft)}
.sf-body .component-popup .layui-btn{min-height:40px;padding:8px 16px;border:1px solid var(--sf-line-strong);border-radius:var(--sf-radius-sm);background:var(--sf-surface);color:var(--sf-ink)}
.sf-body .component-popup .layui-btn-primary{border-color:var(--sf-action);background:var(--sf-action-button);color:var(--sf-on-action)}
.sf-body .component-popup .layui-btn:hover{background:var(--sf-surface-alt);color:var(--sf-ink)}
.sf-body .component-popup .layui-btn-primary:hover{background:var(--sf-action-button-hover);color:var(--sf-on-action)}
.sf-body .layui-form-select dl{border-color:var(--sf-line);border-radius:var(--sf-radius-sm);background:var(--sf-surface);box-shadow:var(--sf-shadow-overlay);color:var(--sf-ink)}
.sf-body .layui-form-select dd{padding:10px 12px;color:var(--sf-ink-soft)}
.sf-body .layui-form-select dd:hover{background:var(--sf-primary-soft);color:var(--sf-ink)}
.sf-body .layui-form-select dd.layui-this{background:var(--sf-primary-soft);color:var(--sf-ink);font-weight:var(--sf-weight-semibold)}
.sf-body .layui-form-checkbox,.sf-body .layui-form-radio{accent-color:var(--sf-action);color:var(--sf-ink-soft)}
.sf-body .layui-form-switch{border-color:var(--sf-line-strong);background:var(--sf-surface-alt)}
.sf-body .layui-form-onswitch{border-color:var(--sf-action);background:var(--sf-action)}
.sf-body .layui-laydate{border-color:var(--sf-line);border-radius:var(--sf-radius-sm);background:var(--sf-surface);box-shadow:var(--sf-shadow-overlay);color:var(--sf-ink)}
.sf-body .layui-laydate td,.sf-body .layui-laydate th{color:var(--sf-ink-soft)}
.sf-body .layui-laydate td.laydate-selected,.sf-body .layui-laydate td.layui-this{background:var(--sf-primary-soft);color:var(--sf-ink)}
.sf-body .layui-laydate .laydate-day-prev,.sf-body .layui-laydate .laydate-day-next,.sf-body .layui-laydate .laydate-btns-confirm{color:var(--sf-action-hover)}

/* EditorV2, CodeMirror and markdown preview use the same reading and control surfaces. */
.sf-body .ev2-editor{overflow:hidden;border:1px solid var(--sf-control-border);border-radius:var(--sf-radius);background:var(--sf-surface);color:var(--sf-ink)}
.sf-body .ev2-bar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:8px;border-bottom:1px solid var(--sf-line);background:var(--sf-surface-alt)}
.sf-body .ev2-tools{display:flex;flex-wrap:wrap;gap:4px}
.sf-body .ev2-actions{display:flex;gap:4px;margin-left:auto}
.sf-body .ev2-tb,.sf-body .ev2-preview-toggle,.sf-body .ev2-mode-toggle{display:inline-flex;align-items:center;justify-content:center;min-width:36px;min-height:36px;padding:6px 8px;border:1px solid transparent;border-radius:var(--sf-radius-sm);background:transparent;color:var(--sf-muted);cursor:pointer}
.sf-body .ev2-tb:hover,.sf-body .ev2-tb.active,.sf-body .ev2-preview-toggle:hover,.sf-body .ev2-preview-toggle.active,.sf-body .ev2-mode-toggle:hover{border-color:var(--sf-line);background:var(--sf-surface);color:var(--sf-ink)}
.sf-body .ev2-tb:focus-visible,.sf-body .ev2-preview-toggle:focus-visible,.sf-body .ev2-mode-toggle:focus-visible{outline:2px solid var(--sf-focus);outline-offset:1px}
.sf-body .ev2-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-width:0}
.sf-body .ev2-cm{min-width:0;border-right:1px solid var(--sf-line)}
.sf-body .ev2-preview{min-width:0;overflow:auto;padding:16px;background:var(--sf-surface);color:var(--sf-ink-soft);line-height:var(--sf-leading-relaxed)}
.sf-body .ev2-pop{z-index:20;min-width:220px;padding:12px;border:1px solid var(--sf-line);border-radius:var(--sf-radius);background:var(--sf-surface);box-shadow:var(--sf-shadow-overlay);color:var(--sf-ink)}
.sf-body .ev2-pop-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.sf-body .ev2-pop-label{color:var(--sf-muted);font-size:var(--sf-text-xs)}
.sf-body .ev2-pop-btn{min-height:36px;padding:6px 10px;border:1px solid var(--sf-line);border-radius:var(--sf-radius-sm);background:var(--sf-surface);color:var(--sf-ink)}
.sf-body .ev2-pop-btn:hover{background:var(--sf-surface-alt)}
.sf-body .ev2-swatch{width:24px;height:24px;padding:0;border:1px solid var(--sf-line-strong);border-radius:50%}
.sf-body .ev2-linkwarn,.sf-body .ev2-note{padding:10px 12px;border-bottom:1px solid var(--sf-warm-border);background:var(--sf-surface-warm);color:var(--sf-ink-soft);font-size:var(--sf-text-sm)}
.sf-body .ev2-linkwarn-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.sf-body .ev2-linkwarn-btn{min-height:36px;padding:6px 10px;border:1px solid var(--sf-line-strong);border-radius:var(--sf-radius-sm);background:var(--sf-surface);color:var(--sf-ink)}
.sf-body .ev2-linkwarn-btn.is-primary{border-color:var(--sf-action);background:var(--sf-action-button);color:var(--sf-on-action)}
.sf-body .CodeMirror{border:0;background:var(--sf-surface);color:var(--sf-ink);font-family:var(--sf-mono);font-size:13px;line-height:1.65}
.sf-body .CodeMirror-gutters{border-right:1px solid var(--sf-line);background:var(--sf-surface-alt)}
.sf-body .CodeMirror-linenumber{color:var(--sf-faint)}
.sf-body .CodeMirror-cursor{border-left-color:var(--sf-action)}
.sf-body .CodeMirror-selected,.sf-body .CodeMirror-focused .CodeMirror-selected{background:var(--sf-primary-soft)}
.sf-body .CodeMirror-activeline-background{background:var(--sf-surface-alt)}
.sf-body .CodeMirror-matchingbracket{color:var(--sf-success)}
.sf-body .CodeMirror-nonmatchingbracket{color:var(--sf-danger)}
.sf-body .markdown-body{color:var(--sf-ink-soft);line-height:var(--sf-leading-relaxed);overflow-wrap:anywhere}
.sf-body .markdown-body :where(h1,h2,h3,h4,h5,h6,strong){color:var(--sf-ink)}
.sf-body .markdown-body a{color:var(--sf-info)}
.sf-body .markdown-body :where(code,pre){border:1px solid var(--sf-line);border-radius:var(--sf-radius-sm);background:var(--sf-surface-alt);color:var(--sf-ink);font-family:var(--sf-mono)}
.sf-body .markdown-body code{padding:2px 5px}.sf-body .markdown-body pre{padding:12px;overflow-x:auto}
.sf-body .markdown-body blockquote{margin:12px 0;padding:10px 14px;border-left:3px solid var(--sf-warm-border-strong);background:var(--sf-surface-warm);color:var(--sf-ink-soft)}
.sf-body .markdown-body :where(table){width:100%;border-collapse:collapse}
.sf-body .markdown-body :where(th,td){padding:8px 10px;border:1px solid var(--sf-line);text-align:left}
.sf-body .markdown-body th{background:var(--sf-surface-alt);color:var(--sf-ink)}
.sf-body .markdown-body img{max-width:100%;height:auto}
@media (max-width:720px){
  .sf-body .ev2-body{grid-template-columns:minmax(0,1fr)}
  .sf-body .ev2-cm{border-right:0;border-bottom:1px solid var(--sf-line)}
  .sf-body .ev2-actions{margin-left:0;width:100%;justify-content:flex-end}
}

/* Core Badge, table actions, payment labels and amounts share semantic tones. */
.sf-body .a-badge,.sf-body .acg-badge{gap:4px;border:1px solid var(--sf-line);border-radius:var(--sf-radius-sm);background:var(--sf-surface-alt);box-shadow:none;color:var(--sf-ink-soft);font-size:var(--sf-text-xs);font-weight:var(--sf-weight-medium);line-height:1.35;text-shadow:none}
.sf-body :is(.a-badge-primary,.a-badge-info,.badge-light-info,.badge-light-primary,.badge-light-cambridgeBlue){border-color:var(--sf-info-border);background:var(--sf-info-soft);color:var(--sf-info)}
.sf-body :is(.a-badge-success,.badge-light-success){border-color:var(--sf-success-border);background:var(--sf-success-soft);color:var(--sf-success)}
.sf-body :is(.a-badge-danger,.badge-light-danger){border-color:var(--sf-danger-border);background:var(--sf-danger-soft);color:var(--sf-danger)}
.sf-body :is(.a-badge-warning,.badge-light-warning){border-color:var(--sf-warning-border);background:var(--sf-warning-soft);color:var(--sf-warning)}
.sf-body :is(.a-badge-secondary,.a-badge-light,.badge-light-dark){border-color:var(--sf-line);background:var(--sf-surface-alt);color:var(--sf-muted)}
.sf-body .a-badge-dark{border-color:var(--sf-ink);background:var(--sf-ink);color:var(--sf-surface)}
.sf-body .a-badge-glass{min-height:32px;padding:6px 10px;border:1px solid var(--sf-line-strong);border-radius:var(--sf-radius-sm);background:var(--sf-surface);box-shadow:none;color:var(--sf-ink-soft);font-size:var(--sf-text-xs);text-shadow:none;transition:background-color var(--sf-fast) var(--sf-ease),border-color var(--sf-fast) var(--sf-ease),color var(--sf-fast) var(--sf-ease)}
.sf-body .a-badge-glass:hover{border-color:var(--sf-control-border);background:var(--sf-surface-alt);color:var(--sf-ink);transform:none}
.sf-body .a-badge-glass:focus-visible{outline:2px solid var(--sf-focus);outline-offset:2px}
.sf-body .a-badge-glass.text-primary,.sf-body .a-badge-glass.text-info{border-color:var(--sf-info-border);background:var(--sf-info-soft);color:var(--sf-info)!important}
.sf-body .a-badge-glass.text-success{border-color:var(--sf-success-border);background:var(--sf-success-soft);color:var(--sf-success)!important}
.sf-body .a-badge-glass.text-warning{border-color:var(--sf-warning-border);background:var(--sf-warning-soft);color:var(--sf-warning)!important}
.sf-body .a-badge-glass.text-danger{border-color:var(--sf-danger-border);background:var(--sf-danger-soft);color:var(--sf-danger)!important}
.sf-body .a-badge-glass.text-secondary{border-color:var(--sf-line);background:var(--sf-surface-alt);color:var(--sf-muted)!important}
.sf-body .a-badge-glass.text-dark{border-color:var(--sf-ink);background:var(--sf-ink);color:var(--sf-surface)!important}
.sf-body .table .action-col .a-badge-glass{background:var(--sf-surface)!important}
.sf-body .table .action-col :is(.a-badge-glass.text-primary,.a-badge-glass.text-info){background:var(--sf-info-soft)!important}
.sf-body .table .action-col .a-badge-glass.text-success{background:var(--sf-success-soft)!important}
.sf-body .table .action-col .a-badge-glass.text-warning{background:var(--sf-warning-soft)!important}
.sf-body .table .action-col .a-badge-glass.text-danger{background:var(--sf-danger-soft)!important}
.sf-body .pay-item{border:1px solid var(--sf-line);border-radius:var(--sf-radius-sm);background:var(--sf-surface);box-shadow:none;color:var(--sf-info);text-shadow:none;transform:none}
.sf-body .pay-item:hover{background:var(--sf-surface-alt);transform:none}
.sf-body .pay-item .item-name{color:var(--sf-info);font-size:var(--sf-text-sm);text-shadow:none}
.sf-body .pay-item img{border-radius:var(--sf-radius-sm)}

/* Business-order md-secret and purchase-result acg-secret are one material. */
.sf-body .layui-layer :is(.md-secret,.acg-secret){display:flex;min-width:0;box-sizing:border-box;flex-direction:column;gap:14px;padding:20px;background:var(--sf-surface);color:var(--sf-ink-soft);font-size:var(--sf-text-sm)}
.sf-body .layui-layer :is(.md-secret__meta,.md-secret__bar,.acg-secret__bar){display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}
.sf-body .layui-layer :is(.md-secret__meta){justify-content:flex-start}
.sf-body .layui-layer :is(.md-secret__code,.acg-secret__code){box-sizing:border-box;max-width:100%;max-height:300px;margin:0;overflow:auto;padding:14px 16px;border:1px solid var(--sf-line);border-radius:var(--sf-radius);background:var(--sf-surface-alt);color:var(--sf-ink);font-family:var(--sf-mono);font-size:13px;line-height:1.75;overflow-wrap:anywhere;white-space:pre-wrap;word-break:break-word;user-select:text}
.sf-body .layui-layer :is(.md-secret__btn,.acg-secret__btn){display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:8px 14px;border:1px solid var(--sf-line-strong);border-radius:var(--sf-radius-sm);background:var(--sf-surface);color:var(--sf-ink);line-height:1.4;cursor:pointer}
.sf-body .layui-layer :is(.md-secret__btn,.acg-secret__btn):hover{border-color:var(--sf-control-border);background:var(--sf-surface-alt);color:var(--sf-ink)}
.sf-body .layui-layer :is(.md-secret__btn,.acg-secret__btn):focus-visible{outline:2px solid var(--sf-focus);outline-offset:2px}
.sf-body .layui-layer .md-secret__btn--primary{border-color:var(--sf-action);background:var(--sf-action-button);color:var(--sf-on-action)}
.sf-body .layui-layer .md-secret__btn--primary:hover{background:var(--sf-action-button-hover);color:var(--sf-on-action)}

/* TicketStatus and Thread retain Core polling DOM with explicit status tones. */
.sf-body .uc-ticket-detail-state.is-waiting{border-color:var(--sf-warning-border);background:var(--sf-warning-soft);color:var(--sf-warning)}
.sf-body .uc-ticket-detail-state.is-reply{border-color:var(--sf-info-border);background:var(--sf-info-soft);color:var(--sf-info)}
.sf-body .uc-ticket-detail-state.is-resolved{border-color:var(--sf-success-border);background:var(--sf-success-soft);color:var(--sf-success)}
.sf-body .uc-ticket-detail-state.is-closed{border-color:var(--sf-line);background:var(--sf-surface-alt);color:var(--sf-muted)}
.sf-body .uc-ticket-detail-state .uc-ticket-detail-status{color:inherit}
.sf-body .uc-ticket-detail-state__hint{color:var(--sf-muted)}
.sf-body .uc-ticket-message{display:flex;gap:12px;min-width:0}
.sf-body .uc-ticket-message__avatar{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;border:1px solid var(--sf-line);border-radius:50%;background:var(--sf-surface-alt);color:var(--sf-muted)}
.sf-body .uc-ticket-message__main{min-width:0;flex:1}
.sf-body .uc-ticket-message__meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-bottom:6px;color:var(--sf-muted);font-size:var(--sf-text-xs)}
.sf-body .uc-ticket-message__meta strong{color:var(--sf-ink)}
.sf-body .uc-ticket-message__meta>span{padding:1px 6px;border:1px solid var(--sf-info-border);border-radius:var(--sf-radius-sm);background:var(--sf-info-soft);color:var(--sf-info)}
.sf-body .uc-ticket-message__meta time{margin-left:auto;font-variant-numeric:tabular-nums}
.sf-body .uc-ticket-message__bubble{max-width:100%;padding:12px 14px;border:1px solid var(--sf-line);border-radius:var(--sf-radius);background:var(--sf-surface-alt);color:var(--sf-ink-soft)}
.sf-body .uc-ticket-message.is-admin .uc-ticket-message__bubble{border-color:var(--sf-info-border);background:var(--sf-info-soft)}
.sf-body .uc-ticket-final{display:inline-flex;align-items:center;gap:3px;border-color:var(--sf-success-border)!important;background:var(--sf-success-soft)!important;color:var(--sf-success)!important}
.sf-body .uc-ticket-event{display:flex;justify-content:center;gap:8px;padding:10px 12px;border:1px dashed var(--sf-line-strong);border-radius:var(--sf-radius);color:var(--sf-muted);font-size:var(--sf-text-xs);text-align:center}
.sf-body .uc-ticket-event>div{min-width:0}.sf-body .uc-ticket-event strong{color:var(--sf-ink-soft)}
.sf-body .uc-ticket-event time{display:block;margin-top:4px}
.sf-body .uc-ticket-live.is-archived{color:var(--sf-muted)}
.sf-body .uc-ticket-markdown{min-width:0;max-width:100%;color:inherit;line-height:var(--sf-leading-relaxed);overflow-wrap:anywhere}
.sf-body .uc-ticket-markdown>:where(:first-child){margin-top:0}.sf-body .uc-ticket-markdown>:where(:last-child){margin-bottom:0}
.sf-body .uc-ticket-markdown :where(h1,h2,h3,h4,h5,h6,strong){color:var(--sf-ink)}
.sf-body .uc-ticket-markdown a{color:var(--sf-info);text-underline-offset:2px}
.sf-body .uc-ticket-markdown :where(code,pre){border:1px solid var(--sf-line);border-radius:var(--sf-radius-sm);background:var(--sf-surface);color:var(--sf-ink);font-family:var(--sf-mono)}
.sf-body .uc-ticket-markdown code{padding:2px 5px}.sf-body .uc-ticket-markdown pre{max-width:100%;padding:12px;overflow-x:auto}
.sf-body .uc-ticket-markdown pre code{padding:0;border:0;background:transparent}
.sf-body .uc-ticket-markdown blockquote{margin:12px 0;padding:10px 14px;border-left:3px solid var(--sf-warm-border-strong);background:var(--sf-surface-warm)}
.sf-body .uc-ticket-markdown table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse}
.sf-body .uc-ticket-markdown :where(th,td){padding:8px 10px;border:1px solid var(--sf-line);text-align:left}
.sf-body .uc-ticket-markdown th{background:var(--sf-surface);color:var(--sf-ink)}
.sf-body .uc-ticket-markdown img{max-width:100%;height:auto;cursor:pointer}
.sf-body .uc-ticket-markdown img:focus-visible{outline:2px solid var(--sf-focus);outline-offset:2px}
@media (max-width:720px){
  .sf-body .uc-ticket-message{gap:8px}.sf-body .uc-ticket-message__avatar{flex-basis:32px;width:32px;height:32px}
  .sf-body .uc-ticket-message__meta time{flex-basis:100%;margin-left:0}
  .sf-body .layui-layer :is(.md-secret__bar,.acg-secret__bar){justify-content:stretch}
  .sf-body .layui-layer :is(.md-secret__btn,.acg-secret__btn){flex:1 1 auto}
}
