﻿/* ╔══════════════════════════════════════════════════════════════════╗
   ║  Odoo 19 Style - Full AMIS Controls Coverage                     ║
   ╚══════════════════════════════════════════════════════════════════╝ */
:root {
  --o-brand-primary: #71639e; --o-brand-secondary: #8f8f8f;
  --o-gray-100: #f8f9fa; --o-gray-200: #e9ecef; --o-gray-300: #dee2e6;
  --o-gray-400: #ced4da; --o-gray-500: #adb5bd; --o-gray-600: #6c757d;
  --o-gray-700: #495057; --o-gray-800: #343a40; --o-gray-900: #212529;
  --o-success: #28a745; --o-info: #17a2b8; --o-warning: #ffac00; --o-danger: #dc3545;
  --o-font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Ubuntu,"Noto Sans",Arial,sans-serif;
  --o-font-size-base: 0.875rem; --o-line-height: 1.5; --o-navbar-height: 46px;
  --o-webclient-bg: #f8f9fa; --o-view-bg: #ffffff; --o-border-color: #dee2e6;
  --o-border-radius: 4px; --o-spacer: 16px; --o-input-padding-y: 6px;
  --o-input-padding-x: 12px; --o-input-border: #ced4da; --o-input-focus-border: #71639e;
  --o-input-focus-shadow: 0 0 0 0.15rem rgba(113,99,158,0.25);
  --o-input-disabled-bg: #e9ecef; --o-transition: 0.15s ease;
}

/* ═══════════════════════════════════════════════════════════════════
   Replace CXD blue brand colors (#2468f2) with Odoo cyan (#0ea5a0)
   Affects: rendered pages (.amis-scope) + editor (.ae-Editor)
   ═══════════════════════════════════════════════════════════════════ */
:root,
.amis-scope,
.ae-Editor {
  --colors-brand-1:  #043835;
  --colors-brand-2:  #06524f;
  --colors-brand-3:  #0a706d;
  --colors-brand-4:  #0d8f8b;
  --colors-brand-5:  #0ea5a0;   /* primary cyan */
  --colors-brand-6:  #2eb8b3;
  --colors-brand-7:  #5cccc8;
  --colors-brand-8:  #8fdfdc;
  --colors-brand-9:  #c2f0ee;
  --colors-brand-10: #e6f8f7;
}
html,body,.amis-scope,.Editor-Demo {
  font-family: var(--o-font-family) !important; font-size: var(--o-font-size-base);
  line-height: var(--o-line-height); color: var(--o-gray-900);
}

/* === 1. BUTTONS === */
.cxd-Button--default,.cxd-Button:not([class*="--primary"]):not([class*="--danger"]):not([class*="--success"]):not([class*="--info"]):not([class*="--warning"]):not([class*="--link"]) {
  background: #fff !important; color: var(--o-gray-700) !important;
  border: 1px solid var(--o-gray-400) !important; border-radius: var(--o-border-radius) !important;
  font-size: var(--o-font-size-base) !important; font-weight: 400 !important;
  padding: var(--o-input-padding-y) var(--o-input-padding-x) !important;
  min-height: 32px !important; box-shadow: none !important; transition: all var(--o-transition) !important;
}
.cxd-Button--default:hover,.cxd-Button:not([class*="--primary"]):hover {
  background: var(--o-gray-100) !important; border-color: var(--o-gray-500) !important; color: var(--o-gray-900) !important;
}
.cxd-Button--primary {
  background: var(--o-brand-primary) !important; border: 1px solid var(--o-brand-primary) !important;
  color: #fff !important; border-radius: var(--o-border-radius) !important; font-weight: 500 !important;
  font-size: var(--o-font-size-base) !important; padding: var(--o-input-padding-y) var(--o-input-padding-x) !important;
  min-height: 32px !important; box-shadow: none !important; transition: all var(--o-transition) !important;
}
.cxd-Button--primary:hover{background:#5e528a !important;border-color:#5e528a !important;}
.cxd-Button--danger{background:var(--o-danger)!important;border-color:var(--o-danger)!important;color:#fff!important;border-radius:var(--o-border-radius)!important;min-height:32px!important;box-shadow:none!important;}
.cxd-Button--danger:hover{background:#bd2130!important;border-color:#bd2130!important;}
.cxd-Button--success{background:var(--o-success)!important;border-color:var(--o-success)!important;color:#fff!important;border-radius:var(--o-border-radius)!important;box-shadow:none!important;}
.cxd-Button--info{background:var(--o-info)!important;border-color:var(--o-info)!important;color:#fff!important;border-radius:var(--o-border-radius)!important;box-shadow:none!important;}
.cxd-Button--warning{background:var(--o-warning)!important;border-color:var(--o-warning)!important;color:#212529!important;border-radius:var(--o-border-radius)!important;box-shadow:none!important;}
.cxd-Button--link{color:var(--o-brand-primary)!important;background:transparent!important;border:none!important;box-shadow:none!important;padding:4px 8px!important;min-height:auto!important;}
.cxd-Button--link:hover{color:#5e528a!important;text-decoration:underline!important;}
.cxd-Button--sm{font-size:0.8125rem!important;padding:2px 8px!important;min-height:26px!important;}
.cxd-Button--lg{font-size:1rem!important;padding:10px 20px!important;min-height:40px!important;}
.cxd-Button.is-disabled,.cxd-Button[disabled]{opacity:.55!important;cursor:not-allowed!important;pointer-events:none!important;}

/* === 2. TEXT INPUTS === */
.cxd-TextControl-input,.cxd-TextareaControl>textarea,.cxd-Number-input,.cxd-DatePicker input,.cxd-Combo-control input,.cxd-ResultBox-input input {
  border:0 none!important;border-bottom:1px solid var(--o-input-border)!important;border-radius:0!important;
  background:transparent!important;color:var(--o-gray-900)!important;font-family:var(--o-font-family)!important;
  font-size:var(--o-font-size-base)!important;padding:var(--o-input-padding-y) var(--o-input-padding-x)!important;
  min-height:32px!important;line-height:var(--o-line-height)!important;box-shadow:none!important;
  outline:none!important;transition:border-color var(--o-transition),box-shadow var(--o-transition)!important;
}
.cxd-TextControl-input:focus,.cxd-TextareaControl>textarea:focus,.cxd-Number-input:focus,.cxd-DatePicker input:focus,.cxd-Combo-control input:focus {
  border-bottom-color:var(--o-input-focus-border)!important;box-shadow:0 1px 0 var(--o-input-focus-border)!important;
}
.cxd-TextControl-input.is-error,.cxd-TextareaControl>textarea.is-error {
  border-bottom-color:var(--o-danger)!important;box-shadow:0 1px 0 var(--o-danger)!important;
}
.cxd-TextControl-input:disabled,.cxd-TextareaControl>textarea:disabled,.cxd-Number-input:disabled {
  background:var(--o-input-disabled-bg)!important;color:var(--o-gray-600)!important;cursor:not-allowed!important;
}
.cxd-TextareaControl>textarea{border:1px solid var(--o-input-border)!important;border-radius:var(--o-border-radius)!important;resize:vertical!important;min-height:80px!important;}
.cxd-TextareaControl>textarea:focus{border-color:var(--o-input-focus-border)!important;box-shadow:var(--o-input-focus-shadow)!important;}

/* === 3. SELECT / DROPDOWN === */
.cxd-Select-control{border:0 none!important;border-bottom:1px solid var(--o-input-border)!important;border-radius:0!important;background:transparent!important;min-height:32px!important;padding:var(--o-input-padding-y) var(--o-input-padding-x)!important;font-size:var(--o-font-size-base)!important;font-family:var(--o-font-family)!important;box-shadow:none!important;transition:border-color var(--o-transition)!important;}
.cxd-Select.is-focused .cxd-Select-control,.cxd-Select-control:focus-within{border-bottom-color:var(--o-input-focus-border)!important;box-shadow:0 1px 0 var(--o-input-focus-border)!important;}
.cxd-Select-menu,.cxd-Combo-menu,.cxd-TransferSelect-menu,.cxd-DropDown-menu{background:#fff!important;border:1px solid var(--o-border-color)!important;border-radius:var(--o-border-radius)!important;box-shadow:0 4px 12px rgba(0,0,0,.12)!important;padding:4px 0!important;font-size:var(--o-font-size-base)!important;}
.cxd-Select-option,.cxd-TransferSelect-option{padding:6px var(--o-input-padding-x)!important;color:var(--o-gray-800)!important;font-size:var(--o-font-size-base)!important;cursor:pointer!important;transition:background var(--o-transition)!important;min-height:30px!important;display:flex!important;align-items:center!important;}
.cxd-Select-option:hover,.cxd-TransferSelect-option:hover{background:rgba(113,99,158,.08)!important;}
.cxd-Select-option.is-active,.cxd-Select-option.is-selected,.cxd-TransferSelect-option.is-active,.cxd-TransferSelect-option.is-selected{background:rgba(113,99,158,.15)!important;color:var(--o-brand-primary)!important;font-weight:500!important;}
.cxd-Select-valueWrap .cxd-Select-value{background:rgba(113,99,158,.1)!important;color:var(--o-brand-primary)!important;border-radius:3px!important;padding:1px 6px!important;margin:2px 4px 2px 0!important;font-size:.8125rem!important;border:none!important;}

/* === 4. CHECKBOX / SWITCH / RADIO === */
.cxd-Checkbox{display:inline-flex!important;align-items:center!important;gap:8px!important;cursor:pointer!important;font-size:var(--o-font-size-base)!important;}

/* AMIS checkbox <i> 指示器 — 紫色 Odoo 风格 */
.cxd-Checkbox--checkbox input + i,
.cxd-Checkbox--checkbox.cxd-Checkbox--full input + i {
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  width: 18px !important; height: 18px !important;
  border: 1.5px solid var(--o-gray-500) !important; border-radius: 3px !important;
  background: transparent !important; cursor: pointer !important;
  margin: 0 !important; flex-shrink: 0 !important;
  position: relative !important; transition: all var(--o-transition) !important;
  font-style: normal !important; line-height: 1 !important;
  box-sizing: border-box !important;
  color: transparent !important;
  overflow: hidden !important;
}
/* 抹掉 AMIS 青色伪元素 + 子节点 */
.cxd-Checkbox--checkbox input + i::before,
.cxd-Checkbox--checkbox input:checked + i::before,
.cxd-Checkbox--checkbox input:indeterminate + i::before,
.cxd-Checkbox--checkbox.cxd-Checkbox--full input + i::before,
.cxd-Checkbox--checkbox.cxd-Checkbox--full input:checked + i::before,
.cxd-Checkbox--checkbox.cxd-Checkbox--full input:indeterminate + i::before {
  content: none !important; display: none !important;
  background: transparent !important; border: none !important;
  color: transparent !important; opacity: 0 !important;
}
.cxd-Checkbox--checkbox input + i > * {
  display: none !important;
}

/* 选中态：紫色背景 + 白色对勾 */
.cxd-Checkbox--checkbox input:checked + i {
  background: var(--o-brand-primary) !important; border-color: var(--o-brand-primary) !important;
}
.cxd-Checkbox--checkbox input:checked + i::after {
  content: ''; position: absolute; top: 1px; left: 5px;
  width: 5px; height: 10px; border: solid #fff;
  border-width: 0 2px 2px 0; transform: rotate(45deg);
}
.cxd-Checkbox--checkbox input:checked + i:hover {
  background: #5e528a !important; border-color: #5e528a !important;
}

/* 隐藏原生 <input> */
.cxd-Checkbox--checkbox input[type="checkbox"] {
  opacity: 0 !important; position: absolute !important;
  width: 0 !important; height: 0 !important;
  margin: 0 !important; padding: 0 !important;
  pointer-events: none !important;
}

.cxd-Switch{display:inline-flex!important;align-items:center!important;gap:8px!important;cursor:pointer!important;font-size:var(--o-font-size-base)!important;}
.cxd-Switch input[type="checkbox"]{-webkit-appearance:none;appearance:none;width:38px;height:20px;border-radius:10px!important;background:var(--o-gray-400)!important;cursor:pointer!important;margin:0!important;position:relative!important;transition:background var(--o-transition)!important;flex-shrink:0;border:none!important;}
.cxd-Switch input[type="checkbox"]::after{content:'';position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform var(--o-transition)!important;box-shadow:0 1px 3px rgba(0,0,0,.2);}
.cxd-Switch input[type="checkbox"]:checked{background:var(--o-brand-primary)!important;}
.cxd-Switch input[type="checkbox"]:checked::after{transform:translateX(18px);}
.cxd-Radio{display:inline-flex!important;align-items:center!important;gap:8px!important;cursor:pointer!important;font-size:var(--o-font-size-base)!important;}
.cxd-Radio input[type="radio"]{-webkit-appearance:none;appearance:none;width:18px;height:18px;border:1.5px solid var(--o-gray-500)!important;border-radius:50%!important;background:transparent!important;cursor:pointer!important;margin:0!important;flex-shrink:0;position:relative!important;transition:all var(--o-transition)!important;}
.cxd-Radio input[type="radio"]:checked{border-color:var(--o-brand-primary)!important;}
.cxd-Radio input[type="radio"]:checked::after{content:'';position:absolute;top:4px;left:4px;width:8px;height:8px;border-radius:50%;background:var(--o-brand-primary);}

/* === 5. NUMBER / DATEPICKER === */
.cxd-Number{font-family:var(--o-font-family)!important;font-variant-numeric:tabular-nums;}
.cxd-Number-handler-wrap{border-left:1px solid var(--o-gray-300)!important;}
.cxd-Number-handler{background:var(--o-gray-100)!important;border:none!important;color:var(--o-gray-700)!important;width:24px!important;transition:all var(--o-transition)!important;}
.cxd-Number-handler:hover{background:var(--o-gray-200)!important;color:var(--o-brand-primary)!important;}
.cxd-Number-handler-up{border-bottom:1px solid var(--o-gray-300)!important;}
.cxd-DatePicker{font-family:var(--o-font-family)!important;font-size:var(--o-font-size-base)!important;}
.cxd-DatePicker-popover{background:#fff!important;border:1px solid var(--o-border-color)!important;border-radius:var(--o-border-radius)!important;box-shadow:0 4px 16px rgba(0,0,0,.15)!important;padding:8px!important;}
.cxd-DatePicker-cell{border-radius:4px!important;transition:background var(--o-transition)!important;color:var(--o-gray-800)!important;font-size:var(--o-font-size-base)!important;}
.cxd-DatePicker-cell:hover{background:rgba(113,99,158,.08)!important;}
.cxd-DatePicker-cell.is-active{background:var(--o-brand-primary)!important;color:#fff!important;font-weight:500!important;}
.cxd-DatePicker-cell.is-today:not(.is-active){border:1px solid var(--o-brand-primary)!important;}
.cxd-DatePicker-cell.is-disabled{color:var(--o-gray-400)!important;cursor:not-allowed!important;}
.cxd-DatePicker-prev,.cxd-DatePicker-next{color:var(--o-gray-600)!important;border-radius:4px!important;padding:4px 6px!important;transition:all var(--o-transition)!important;}
.cxd-DatePicker-prev:hover,.cxd-DatePicker-next:hover{background:rgba(113,99,158,.08)!important;color:var(--o-brand-primary)!important;}
.cxd-ColorPicker-popover{background:#fff!important;border:1px solid var(--o-border-color)!important;border-radius:var(--o-border-radius)!important;box-shadow:0 4px 16px rgba(0,0,0,.15)!important;padding:10px!important;}

/* === 6. TABLE / CRUD / LIST === */
.cxd-Table{background:var(--o-view-bg)!important;border:1px solid var(--o-border-color)!important;border-radius:var(--o-border-radius)!important;font-family:var(--o-font-family)!important;font-size:var(--o-font-size-base)!important;}
.cxd-Table-table thead{background:var(--o-webclient-bg)!important;}
.cxd-Table-table th{background:var(--o-webclient-bg)!important;color:var(--o-gray-800)!important;font-weight:600!important;font-size:var(--o-font-size-base)!important;padding:10px var(--o-input-padding-x)!important;border-bottom:2px solid var(--o-border-color)!important;border-right:none!important;text-transform:none!important;letter-spacing:0!important;}
.cxd-Table-table td{padding:8px var(--o-input-padding-x)!important;border-bottom:1px solid var(--o-gray-200)!important;color:var(--o-gray-700)!important;font-variant-numeric:tabular-nums;vertical-align:middle!important;font-size:var(--o-font-size-base)!important;}
.cxd-Table-table td:first-child,.cxd-Table-table th:first-child{padding-left:var(--o-spacer)!important;}
.cxd-Table-table td:last-child,.cxd-Table-table th:last-child{padding-right:var(--o-spacer)!important;}
.cxd-Table-table tbody tr:hover td{background:rgba(113,99,158,.04)!important;}
.cxd-Table-table tbody tr.is-checked td,.cxd-Table-table tbody tr.is-active td{background:rgba(113,99,158,.08)!important;}
.cxd-Table--striped .cxd-Table-table tbody tr:nth-child(even) td{background:rgba(0,0,0,.02)!important;}
.cxd-Crud-toolbar{background:var(--o-view-bg)!important;border-bottom:1px solid var(--o-border-color)!important;padding:10px var(--o-spacer)!important;}
.cxd-Crud-footer{background:var(--o-webclient-bg)!important;border-top:1px solid var(--o-border-color)!important;padding:8px var(--o-spacer)!important;}
.cxd-Table-table th .cxd-Table-sortIcon{color:var(--o-gray-400)!important;}
.cxd-Table-table th.is-sorted .cxd-Table-sortIcon{color:var(--o-brand-primary)!important;}

/* === 7. PAGINATION === */
.cxd-Pagination{font-family:var(--o-font-family)!important;font-size:var(--o-font-size-base)!important;}
.cxd-Pagination-wrap{gap:4px!important;}
.cxd-Pagination-item{border-radius:var(--o-border-radius)!important;color:var(--o-gray-700)!important;background:transparent!important;border:1px solid transparent!important;padding:4px 10px!important;min-width:32px!important;text-align:center!important;font-size:var(--o-font-size-base)!important;transition:all var(--o-transition)!important;cursor:pointer!important;}
.cxd-Pagination-item:hover{background:rgba(113,99,158,.08)!important;border-color:var(--o-gray-300)!important;}
.cxd-Pagination-item.is-active{background:var(--o-brand-primary)!important;color:#fff!important;border-color:var(--o-brand-primary)!important;font-weight:500!important;}
.cxd-Pagination-item.is-disabled{color:var(--o-gray-400)!important;cursor:not-allowed!important;pointer-events:none!important;}

/* === 8. FORM === */
.cxd-Form-item{margin-bottom:16px!important;}
.cxd-Form-label{color:var(--o-gray-700)!important;font-weight:500!important;font-size:var(--o-font-size-base)!important;margin-bottom:4px!important;font-family:var(--o-font-family)!important;}
.cxd-Form-star{color:var(--o-danger)!important;}
.cxd-Form-group{margin-bottom:20px!important;padding-bottom:16px!important;border-bottom:1px solid var(--o-gray-200)!important;}
.cxd-Form-group--md .cxd-Form-label{font-weight:600!important;color:var(--o-gray-800)!important;}

/* === 9. TAGS / BADGES === */
.cxd-Tag{background:var(--o-gray-100)!important;color:var(--o-gray-700)!important;border:1px solid var(--o-gray-300)!important;border-radius:3px!important;padding:1px 8px!important;font-size:.8125rem!important;font-weight:400!important;font-family:var(--o-font-family)!important;line-height:1.5!important;}
.cxd-Tag--primary{background:rgba(113,99,158,.1)!important;color:var(--o-brand-primary)!important;border-color:transparent!important;}
.cxd-Tag--success{background:rgba(40,167,69,.1)!important;color:var(--o-success)!important;border-color:transparent!important;}
.cxd-Tag--danger{background:rgba(220,53,69,.1)!important;color:var(--o-danger)!important;border-color:transparent!important;}
.cxd-Tag--warning{background:rgba(255,172,0,.1)!important;color:#856404!important;border-color:transparent!important;}
.cxd-Tag--info{background:rgba(23,162,184,.1)!important;color:var(--o-info)!important;border-color:transparent!important;}
.cxd-Badge{font-size:.75rem!important;font-weight:600!important;padding:3px 8px!important;border-radius:10px!important;font-family:var(--o-font-family)!important;}
.cxd-Badge--success{background:var(--o-success)!important;}
.cxd-Badge--danger{background:var(--o-danger)!important;}
.cxd-Badge--info{background:var(--o-info)!important;}
.cxd-Badge--warning{background:var(--o-warning)!important;color:#212529!important;}

/* === 10. MODAL / DIALOG === */
.cxd-Modal,.cxd-Dialog{font-family:var(--o-font-family)!important;font-size:var(--o-font-size-base)!important;}
.cxd-Modal-content,.cxd-Dialog-content{border:none!important;border-radius:6px!important;box-shadow:0 8px 32px rgba(0,0,0,.18)!important;}
.cxd-Modal-header,.cxd-Dialog-header{background:#fff!important;border-bottom:1px solid var(--o-border-color)!important;padding:16px 20px!important;}
.cxd-Modal-title,.cxd-Dialog-title{color:var(--o-gray-900)!important;font-weight:600!important;font-size:1.05rem!important;font-family:var(--o-font-family)!important;}
.cxd-Modal-body,.cxd-Dialog-body{padding:20px!important;background:#fff!important;}
.cxd-Modal-footer,.cxd-Dialog-footer{background:var(--o-webclient-bg)!important;border-top:1px solid var(--o-border-color)!important;padding:12px 20px!important;display:flex!important;justify-content:flex-end!important;gap:8px!important;}
.cxd-Modal-close,.cxd-Dialog-close{color:var(--o-gray-500)!important;opacity:1!important;font-size:1.2rem!important;transition:color var(--o-transition)!important;}
.cxd-Modal-close:hover,.cxd-Dialog-close:hover{color:var(--o-gray-800)!important;}

/* === 11. PANEL / CARD === */
.cxd-Panel{background:var(--o-view-bg)!important;border:1px solid var(--o-border-color)!important;border-radius:var(--o-border-radius)!important;box-shadow:none!important;font-family:var(--o-font-family)!important;}
.cxd-Panel-heading{background:var(--o-webclient-bg)!important;border-bottom:1px solid var(--o-border-color)!important;padding:12px var(--o-spacer)!important;font-weight:600!important;font-size:var(--o-font-size-base)!important;color:var(--o-gray-800)!important;}
.cxd-Panel-body{padding:var(--o-spacer)!important;}
.cxd-Panel-footer{background:var(--o-webclient-bg)!important;border-top:1px solid var(--o-border-color)!important;padding:10px var(--o-spacer)!important;}
.cxd-Card{background:var(--o-view-bg)!important;border:1px solid var(--o-border-color)!important;border-radius:var(--o-border-radius)!important;box-shadow:0 1px 3px rgba(0,0,0,.08)!important;transition:box-shadow var(--o-transition)!important;font-family:var(--o-font-family)!important;}
.cxd-Card:hover{box-shadow:0 4px 12px rgba(0,0,0,.12)!important;}

/* === 12. TABS === */
.cxd-Tabs{font-family:var(--o-font-family)!important;font-size:var(--o-font-size-base)!important;}
.cxd-Tabs-links{border-bottom:2px solid var(--o-border-color)!important;background:transparent!important;padding:0!important;}
.cxd-Tabs-link{color:var(--o-gray-600)!important;font-size:var(--o-font-size-base)!important;font-weight:400!important;padding:10px 16px!important;background:transparent!important;border:none!important;border-bottom:2px solid transparent!important;margin-bottom:-2px!important;transition:all var(--o-transition)!important;cursor:pointer!important;border-radius:0!important;}
.cxd-Tabs-link:hover{color:var(--o-brand-primary)!important;border-bottom-color:var(--o-gray-300)!important;}
.cxd-Tabs-link.is-active{color:var(--o-brand-primary)!important;font-weight:500!important;border-bottom-color:var(--o-brand-primary)!important;}
.cxd-Tabs-pane{padding:var(--o-spacer) 0!important;}

/* === 13. NAV / TREE / SEARCH === */
.cxd-Nav{font-family:var(--o-font-family)!important;font-size:var(--o-font-size-base)!important;background:#fff!important;}
.cxd-Nav .cxd-NavItem{background:transparent!important;margin:0!important;}
.cxd-Nav .cxd-NavLink{color:var(--o-gray-700)!important;padding:10px var(--o-spacer)!important;font-size:var(--o-font-size-base)!important;border-radius:0!important;transition:all var(--o-transition)!important;}
.cxd-Nav .cxd-NavLink:hover{background:rgba(0,0,0,.04)!important;color:var(--o-gray-900)!important;}
.cxd-Nav .cxd-NavItem.is-active .cxd-NavLink{background:rgba(113,99,158,.1)!important;color:var(--o-brand-primary)!important;border-left:3px solid var(--o-brand-primary)!important;font-weight:500!important;}
.cxd-Tree{font-family:var(--o-font-family)!important;font-size:var(--o-font-size-base)!important;}
.cxd-Tree-item{padding:6px 8px!important;border-radius:3px!important;transition:background var(--o-transition)!important;cursor:pointer!important;color:var(--o-gray-700)!important;}
.cxd-Tree-item:hover{background:rgba(113,99,158,.06)!important;}
.cxd-Tree-item.is-active{background:rgba(113,99,158,.12)!important;color:var(--o-brand-primary)!important;font-weight:500!important;}
.cxd-Tree-arrow{color:var(--o-gray-400)!important;transition:transform var(--o-transition)!important;}
.cxd-SearchBox{font-family:var(--o-font-family)!important;font-size:var(--o-font-size-base)!important;}
.cxd-SearchBox input{border:0 none!important;border-bottom:1px solid var(--o-input-border)!important;border-radius:0!important;background:transparent!important;font-size:var(--o-font-size-base)!important;padding:var(--o-input-padding-y) var(--o-input-padding-x)!important;box-shadow:none!important;color:var(--o-gray-800)!important;height:32px!important;transition:border-color var(--o-transition)!important;}
.cxd-SearchBox input:focus{border-bottom-color:var(--o-input-focus-border)!important;outline:none!important;}

/* === 14. ALERT / TOAST / PROGRESS / MISC === */
.cxd-Alert{font-family:var(--o-font-family)!important;font-size:var(--o-font-size-base)!important;border-radius:var(--o-border-radius)!important;border:none!important;padding:12px 16px!important;}
.cxd-Alert--success{background:rgba(40,167,69,.1)!important;color:#155724!important;border-left:3px solid var(--o-success)!important;}
.cxd-Alert--danger{background:rgba(220,53,69,.1)!important;color:#721c24!important;border-left:3px solid var(--o-danger)!important;}
.cxd-Alert--info{background:rgba(23,162,184,.1)!important;color:#0c5460!important;border-left:3px solid var(--o-info)!important;}
.cxd-Alert--warning{background:rgba(255,172,0,.1)!important;color:#856404!important;border-left:3px solid var(--o-warning)!important;}
.cxd-Toast{font-family:var(--o-font-family)!important;font-size:var(--o-font-size-base)!important;border-radius:var(--o-border-radius)!important;box-shadow:0 4px 16px rgba(0,0,0,.15)!important;padding:12px 20px!important;}
.cxd-Progress{background:var(--o-gray-200)!important;border-radius:10px!important;height:8px!important;overflow:hidden!important;}
.cxd-Progress-bar{background:var(--o-brand-primary)!important;border-radius:10px!important;height:100%!important;transition:width .3s ease!important;}
.cxd-Progress-bar--success{background:var(--o-success)!important;}
.cxd-Progress-bar--danger{background:var(--o-danger)!important;}
.cxd-Progress-bar--warning{background:var(--o-warning)!important;}
.cxd-Spinner{color:var(--o-brand-primary)!important;}
.cxd-Spinner-icon{border-color:var(--o-gray-200)!important;border-top-color:var(--o-brand-primary)!important;}
.cxd-Image{border:1px solid var(--o-border-color)!important;border-radius:var(--o-border-radius)!important;overflow:hidden!important;}
.cxd-FileControl{font-family:var(--o-font-family)!important;font-size:var(--o-font-size-base)!important;}
.cxd-FileControl-dropzone{border:2px dashed var(--o-gray-300)!important;border-radius:var(--o-border-radius)!important;background:var(--o-gray-100)!important;padding:24px!important;text-align:center!important;color:var(--o-gray-600)!important;transition:all var(--o-transition)!important;}
.cxd-FileControl-dropzone:hover{border-color:var(--o-brand-primary)!important;background:rgba(113,99,158,.04)!important;}
.cxd-PopOver{font-family:var(--o-font-family)!important;font-size:var(--o-font-size-base)!important;border-radius:var(--o-border-radius)!important;box-shadow:0 4px 16px rgba(0,0,0,.15)!important;border:1px solid var(--o-border-color)!important;background:#fff!important;}
.cxd-Breadcrumb{font-family:var(--o-font-family)!important;font-size:.8125rem!important;color:var(--o-gray-600)!important;}
.cxd-Breadcrumb-item{color:var(--o-gray-600)!important;}
.cxd-Breadcrumb-item:last-child{color:var(--o-gray-800)!important;font-weight:500!important;}
.cxd-Breadcrumb-item a{color:var(--o-brand-primary)!important;}

/* === 15. EDITOR SHELL - Odoo 19 Purple Navbar === */
.Editor-Demo{background:var(--o-webclient-bg)!important;}
.Editor-Demo .Editor-header{background:var(--o-brand-primary)!important;border-bottom:none!important;height:var(--o-navbar-height)!important;min-height:var(--o-navbar-height)!important;flex:0 0 var(--o-navbar-height)!important;color:#fff!important;padding:0!important;box-shadow:0 1px 4px rgba(0,0,0,.15)!important;z-index:1000!important;}
.Editor-Demo .Editor-title{color:#fff!important;font-size:.95rem!important;font-weight:500!important;padding:0 12px!important;letter-spacing:0!important;}
.Editor-Demo .Editor-view-mode-group{background:rgba(255,255,255,.12)!important;border-radius:var(--o-border-radius)!important;padding:2px!important;}
.Editor-Demo .Editor-view-mode-btn{color:rgba(255,255,255,.6)!important;border-radius:3px!important;transition:all var(--o-transition)!important;}
.Editor-Demo .Editor-view-mode-btn svg{color:rgba(255,255,255,.6)!important;}
.Editor-Demo .Editor-view-mode-btn:hover{color:#fff!important;background:rgba(255,255,255,.1)!important;}
.Editor-Demo .Editor-view-mode-btn.is-active{background:#fff!important;}
.Editor-Demo .Editor-view-mode-btn.is-active svg{color:var(--o-brand-primary)!important;}
.Editor-Demo .Editor-header-actions .header-action-item{color:rgba(255,255,255,.7)!important;transition:color var(--o-transition)!important;}
.Editor-Demo .Editor-header-actions .header-action-item:hover{color:#fff!important;}
.Editor-Demo .Editor-header-actions .header-action-item svg{fill:rgba(255,255,255,.7)!important;}
.Editor-Demo .Editor-header-actions .header-action-item:hover svg{fill:#fff!important;}
.Editor-Demo .Editor-header-actions .header-action-btn{background:rgba(255,255,255,.12)!important;color:#fff!important;border:1px solid rgba(255,255,255,.25)!important;border-radius:var(--o-border-radius)!important;font-size:.8125rem!important;font-weight:400!important;padding:4px 12px!important;height:28px!important;min-width:auto!important;transition:all var(--o-transition)!important;}
.Editor-Demo .Editor-header-actions .header-action-btn:hover{background:rgba(255,255,255,.2)!important;border-color:rgba(255,255,255,.4)!important;}
.Editor-Demo .Editor-header-actions .preview-btn{border:1px solid rgba(255,255,255,.5)!important;background:transparent!important;color:#fff!important;}
.Editor-Demo .Editor-header-actions .preview-btn:hover{background:rgba(255,255,255,.2)!important;}
.Editor-Demo .Editor-inner{background:var(--o-webclient-bg)!important;}

/* === 16. EDITOR SIDEBARS / SCROLLBAR / FOCUS === */
.ae-Editor .ae-Editor-leftPanel,.ae-Editor .ae-Editor-rightPanel{background:#fff!important;border-right:1px solid var(--o-border-color)!important;}
.ae-Editor .ae-Editor-leftPanel .cxd-Panel,.ae-Editor .ae-Editor-rightPanel .cxd-Panel{border:none!important;border-radius:0!important;box-shadow:none!important;}
.ae-Editor .ae-Editor-leftPanel .cxd-Panel-heading,.ae-Editor .ae-Editor-rightPanel .cxd-Panel-heading{background:var(--o-webclient-bg)!important;border-bottom:1px solid var(--o-border-color)!important;padding:10px 12px!important;font-size:.8125rem!important;font-weight:600!important;color:var(--o-gray-800)!important;text-transform:uppercase!important;letter-spacing:.5px!important;}
.ae-Editor .cxd-Form-label{font-weight:500!important;font-size:.8125rem!important;color:var(--o-gray-700)!important;}
.ae-Editor .cxd-TextControl-input{font-size:.8125rem!important;}
::-webkit-scrollbar{width:8px;height:8px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:var(--o-gray-400);border-radius:4px;}
::-webkit-scrollbar-thumb:hover{background:var(--o-gray-500);}
*:focus-visible{outline:2px solid rgba(113,99,158,.4)!important;outline-offset:1px!important;}
::placeholder{color:var(--o-gray-500)!important;opacity:1!important;}
::selection{background:rgba(113,99,158,.25)!important;color:var(--o-gray-900)!important;}

/* === 17. 9-Grid Application Drawer (Odoo Burger Menu) === */
.o-header-bar {
  display: flex !important;
  align-items: center !important;
  width: 100% !important;
  height: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}
.o-header-spacer {
  flex: 1 !important;
}
.o-app-drawer {
  position: relative;
  display: flex;
  align-items: center;
  height: 100%;
  flex-shrink: 0;
}
.o-app-drawer-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--o-navbar-height);
  height: var(--o-navbar-height);
  color: rgba(255, 255, 255, 0.9);
  cursor: pointer;
  list-style: none;
  transition: background 0.15s ease, color 0.15s ease;
  user-select: none;
  flex-shrink: 0;
}
.o-app-drawer-toggle::-webkit-details-marker {
  display: none;
}
.o-app-drawer-toggle:hover {
  background: rgba(0, 0, 0, 0.12);
  color: #fff;
}
.o-app-drawer[open] .o-app-drawer-toggle {
  background: rgba(0, 0, 0, 0.15);
  color: #fff;
}
.o-app-drawer-toggle svg {
  display: block;
  flex-shrink: 0;
}
.o-app-drawer-menu {
  position: fixed;
  top: var(--o-navbar-height);
  left: 0;
  width: Min(380px, 85vw);
  max-height: calc(100vh - var(--o-navbar-height));
  overflow-y: auto;
  background: #ffffff;
  border: 1px solid var(--o-gray-300, #dee2e6);
  border-top: none;
  border-radius: 0 0 var(--o-border-radius, 4px) 0;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
  z-index: 1050;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
  padding: 8px;
  animation: odooDrawerIn 0.15s ease;
}
@keyframes odooDrawerIn {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}
.o-app-drawer .o-app-drawer-backdrop {
  display: none;
}
.o-app-drawer[open] .o-app-drawer-backdrop {
  display: block;
  position: fixed;
  top: var(--o-navbar-height);
  left: 0;
  width: 100vw;
  height: calc(100vh - var(--o-navbar-height));
  background: rgba(0, 0, 0, 0.15);
  z-index: 1040;
}
.o-app-menu-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding: 14px 6px 10px;
  border-radius: 6px;
  text-decoration: none !important;
  color: var(--o-gray-800) !important;
  transition: background 0.12s ease, color 0.12s ease;
  cursor: pointer;
  min-height: 80px;
  text-align: center;
}
.o-app-menu-item:hover {
  background: rgba(113, 99, 158, 0.08);
  color: var(--o-brand-primary) !important;
}
.o-app-menu-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  margin-bottom: 8px;
  background: var(--o-gray-100);
  border-radius: 8px;
  font-size: 20px;
  color: var(--o-brand-primary);
  transition: background 0.12s ease, transform 0.12s ease;
}
.o-app-menu-item:hover .o-app-menu-icon {
  background: rgba(113, 99, 158, 0.15);
  transform: scale(1.08);
}
.o-app-menu-label {
  font-size: 0.8rem;
  font-weight: 400;
  line-height: 1.3;
  word-break: break-all;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.o-header-logo-link {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  padding: 0 12px;
  height: 100%;
  transition: background 0.15s ease;
}
.o-header-logo-link:hover {
  background: rgba(0, 0, 0, 0.08);
}
.o-header-logo-img {
  height: 28px;
  vertical-align: middle;
  opacity: 0.95;
  transition: opacity 0.15s;
}
.o-header-logo-link:hover .o-header-logo-img {
  opacity: 1;
}
@media (max-width: 768px) {
  .o-app-drawer-menu {
    width: 100vw;
    grid-template-columns: repeat(3, 1fr);
  }
}
.amis-scope .cxd-Layout-aside {
  display: none !important;
}

/* === 18. AMIS Editor Vertical Burger Menu (Odoo 19 style) === */

/* 抽屉容器 */
.o-editor-drawer {
  position: relative;
  display: flex;
  align-items: center;
  height: 100%;
  flex-shrink: 0;
}

/* 9-grid 按钮 */
.o-editor-drawer-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--o-navbar-height);
  height: var(--o-navbar-height);
  color: rgba(255, 255, 255, 0.9);
  cursor: pointer;
  list-style: none;
  transition: background 0.15s ease, color 0.15s ease;
  user-select: none;
  flex-shrink: 0;
}
.o-editor-drawer-toggle::-webkit-details-marker { display: none; }
.o-editor-drawer-toggle:hover { background: rgba(0, 0, 0, 0.12); color: #fff; }
.o-editor-drawer[open] .o-editor-drawer-toggle { background: rgba(0, 0, 0, 0.15); color: #fff; }
.o-editor-drawer-toggle svg { display: block; flex-shrink: 0; }

/* 菜单面板 — Odoo 19 vertical style: white bg, dark text, single column */
.o-editor-drawer-menu {
  position: fixed;
  top: var(--o-navbar-height);
  left: 0;
  width: 240px;
  max-height: calc(100vh - var(--o-navbar-height));
  overflow-y: auto;
  background: #ffffff;
  border: 1px solid var(--o-gray-300, #dee2e6);
  border-top: none;
  border-radius: 0 0 var(--o-border-radius, 4px) 0;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
  z-index: 1050;
  display: flex;
  flex-direction: column;
  padding: 4px 0;
  animation: odooDrawerIn 0.15s ease;
}
@keyframes odooDrawerIn {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* 遮罩 */
.o-editor-drawer .o-editor-drawer-backdrop { display: none; }
.o-editor-drawer[open] .o-editor-drawer-backdrop {
  display: block;
  position: fixed;
  top: var(--o-navbar-height);
  left: 0;
  width: 100vw;
  height: calc(100vh - var(--o-navbar-height));
  background: rgba(0, 0, 0, 0.15);
  z-index: 1040;
}

/* 菜单项 — 垂直排列, 白色背景, 深色文字 */
.o-editor-menu-item {
  display: flex;
  align-items: center;
  padding: 10px 16px;
  color: var(--o-gray-800, #343a40) !important;
  text-decoration: none !important;
  font-size: var(--o-font-size-base, 0.875rem);
  font-weight: 400;
  cursor: pointer;
  transition: background 0.12s ease, color 0.12s ease;
  border-left: 3px solid transparent;
  gap: 12px;
}
.o-editor-menu-item:hover {
  background: rgba(113, 99, 158, 0.08);
  color: var(--o-brand-primary, #71639e) !important;
}
.o-editor-menu-item:active,
.o-editor-menu-item:focus {
  background: rgba(113, 99, 158, 0.15);
  color: var(--o-brand-primary, #71639e) !important;
  border-left-color: var(--o-brand-primary, #71639e);
  font-weight: 500;
  outline: none;
}

/* 菜单图标 */
.o-editor-menu-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  background: var(--o-gray-100, #f8f9fa);
  border-radius: 6px;
  font-size: 16px;
  color: var(--o-brand-primary, #71639e);
  flex-shrink: 0;
  transition: background 0.12s ease;
}
.o-editor-menu-item:hover .o-editor-menu-icon {
  background: rgba(113, 99, 158, 0.15);
  color: var(--o-brand-primary, #71639e);
}

/* 菜单文字 */
.o-editor-menu-label {
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.3;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* "新增页面" 加号项 */
.o-editor-menu-item--add {
  border-top: 1px solid var(--o-gray-200, #e9ecef);
  margin-top: 4px;
  padding-top: 12px;
}
.o-editor-menu-item--add .o-editor-menu-icon {
  background: rgba(113, 99, 158, 0.1);
}

/* 隐藏 AMIS SDK 原生的左侧边栏（编辑态） */
.Editor-Demo .ae-Editor .ae-Editor-leftPanel {
  display: none !important;
}

/* === 19. Preview Page Navbar + 9-Grid Drawer === */

/* Purple navbar */
.o-preview-navbar {
  background: var(--o-brand-primary, #71639e);
  height: var(--o-navbar-height, 46px);
  display: flex;
  align-items: center;
  flex-shrink: 0;
  color: #fff;
  padding: 0;
  box-shadow: 0 1px 4px rgba(0,0,0,0.15);
  z-index: 1000;
}
.o-preview-brand {
  font-size: 0.95rem;
  font-weight: 500;
  padding: 0 12px;
  white-space: nowrap;
  user-select: none;
}
.o-preview-spacer {
  flex: 1;
}

/* Preview drawer (same pattern as editor drawer) */
.o-preview-drawer {
  position: relative;
  display: flex;
  align-items: center;
  height: 100%;
  flex-shrink: 0;
}
.o-preview-drawer-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--o-navbar-height, 46px);
  height: var(--o-navbar-height, 46px);
  color: rgba(255,255,255,0.9);
  cursor: pointer;
  list-style: none;
  transition: background 0.15s ease;
  user-select: none;
  flex-shrink: 0;
}
.o-preview-drawer-toggle::-webkit-details-marker { display: none; }
.o-preview-drawer-toggle:hover { background: rgba(0,0,0,0.12); color: #fff; }
.o-preview-drawer[open] .o-preview-drawer-toggle { background: rgba(0,0,0,0.15); color: #fff; }
.o-preview-drawer-toggle svg { display: block; flex-shrink: 0; }

/* Preview drawer menu — vertical Odoo 19 style */
.o-preview-drawer-menu {
  position: fixed;
  top: var(--o-navbar-height, 46px);
  left: 0;
  width: 260px;
  max-height: calc(100vh - var(--o-navbar-height, 46px));
  overflow-y: auto;
  background: #fff;
  border: 1px solid var(--o-gray-300, #dee2e6);
  border-top: none;
  border-radius: 0 0 var(--o-border-radius, 4px) 0;
  box-shadow: 0 8px 24px rgba(0,0,0,0.18);
  z-index: 1050;
  display: flex;
  flex-direction: column;
  padding: 4px 0;
  animation: odooDrawerIn 0.15s ease;
}
@keyframes odooDrawerIn {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}
.o-preview-drawer .o-preview-drawer-backdrop { display: none; }
.o-preview-drawer[open] .o-preview-drawer-backdrop {
  display: block;
  position: fixed;
  top: var(--o-navbar-height, 46px);
  left: 0;
  width: 100vw;
  height: calc(100vh - var(--o-navbar-height, 46px));
  background: rgba(0,0,0,0.15);
  z-index: 1040;
}

/* Preview menu items — vertical list */
.o-preview-menu-item {
  display: flex;
  align-items: center;
  padding: 10px 16px;
  color: var(--o-gray-800, #343a40) !important;
  text-decoration: none !important;
  font-size: 0.875rem;
  font-weight: 400;
  cursor: pointer;
  transition: background 0.12s ease, color 0.12s ease;
  border-left: 3px solid transparent;
  gap: 12px;
}
.o-preview-menu-item:hover {
  background: rgba(113,99,158,0.08);
  color: var(--o-brand-primary, #71639e) !important;
}
.o-preview-menu-item:active,
.o-preview-menu-item:focus {
  background: rgba(113,99,158,0.15);
  color: var(--o-brand-primary, #71639e) !important;
  border-left-color: var(--o-brand-primary, #71639e);
  font-weight: 500;
  outline: none;
}
.o-preview-menu-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  background: var(--o-gray-100, #f8f9fa);
  border-radius: 6px;
  font-size: 16px;
  color: var(--o-brand-primary, #71639e);
  flex-shrink: 0;
  transition: background 0.12s ease;
}
.o-preview-menu-item:hover .o-preview-menu-icon {
  background: rgba(113,99,158,0.15);
}
.o-preview-menu-label {
  flex: 1;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.3;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.o-preview-menu-edit,
.o-preview-menu-del {
  opacity: 0;
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
  transition: opacity 0.12s ease, background 0.12s ease;
  font-size: 13px;
  color: var(--o-gray-500, #adb5bd);
}
.o-preview-menu-item:hover .o-preview-menu-edit,
.o-preview-menu-item:hover .o-preview-menu-del {
  opacity: 1;
}
.o-preview-menu-edit:hover { background: rgba(113,99,158,0.1); color: var(--o-brand-primary, #71639e); }
.o-preview-menu-del:hover { background: rgba(220,53,69,0.1); color: var(--o-danger, #dc3545); }

.o-preview-menu-item--add {
  border-top: 1px solid var(--o-gray-200, #e9ecef);
  margin-top: 4px;
  padding-top: 12px;
}
.o-preview-menu-item--add .o-preview-menu-icon {
  background: rgba(113,99,158,0.1);
}



/* === 20. AMIS Editor Internal — Cyan accent override (replace all blues #2468f2 / #205dd9 etc) === */

/* -- Editor page nav tips (the "页面" indicator you clicked on) -- */
.ae-Editor-nav .ae-Editor-tip{background:rgba(14,165,160,.8)!important}
.ae-Editor-nav:hover .ae-Editor-tip:hover,
.ae-Editor-nav:hover .ae-Editor-tip.current{background:#0ea5a0!important}
.ae-Editor-tip.parent,.ae-Editor-tip.child{background:#0ea5a0!important}

/* -- Editor toolbar / hlbox selected -- */
.ae-Editor-hlbox.selected .ae-Editor-toolbar{background:#0ea5a0!important}

/* -- Outline / Component tree -- */
.ae-Outline-node.is-active{background:rgba(14,165,160,.08)!important}
.ae-Outline-node.is-active>a{color:#0ea5a0!important}
.ae-Outline-node>a:hover,.ae-Outline-node.is-hover>a{color:#0ea5a0!important}
.ae-Outline-node span.has-keywords{color:#0ea5a0!important}
.ae-Outline-dropNode.is-active{background:rgba(14,165,160,.08)!important}
.ae-Outline-dropNode.is-active:after{border:1px dashed #0ea5a0!important}

/* -- Editor left/right panel tabs -- */
.editor-left-panel .editorPanel-tabs .editorPanel-tabs-header>li.is-active{border-left:3px solid #0ea5a0!important}
.editor-right-panel .editorPanel-tabs .editorPanel-tabs-header>li.is-active{border-right:3px solid #0ea5a0!important}
.editor-left-panel .editorPanel-tabs-header>li:hover .editor-tab-icon>svg{color:#0ea5a0!important}
.editor-right-panel .editorPanel-tabs-header>li:hover .editor-tab-icon>svg{color:#0ea5a0!important}

/* -- Property config tabs (基本/外观/事件) -- */
.editor-prop-config-tabs-links>li.is-active>a{color:#0ea5a0!important;border-bottom:2px solid #0ea5a0!important}

/* -- Setting item hover -- */
.setting-body .setting-item:hover{background:rgba(14,165,160,.06)!important;border:1px solid #0ea5a0!important}
.setting-body .setting-item:hover .icon-box>svg{fill:#0ea5a0!important}
.setting-body .setting-item:hover .setting-info{color:#0ea5a0!important}

/* -- Renderer search -- */
.ae-RendererPanel .editor-InputSearch.is-focused,
.ae-CodePanel .editor-InputSearch:hover{border-color:#0ea5a0!important}
.ae-RendererPanel .editor-InputSearch:hover{border-color:#0ea5a0!important}
.ae-RendererPanel .editor-InputSearch svg.delete-btn-icon:hover{color:#0ea5a0!important;fill:#0ea5a0!important}

/* -- Renderer list items -- */
.ae-RendererList-content .ae-RendererList-item:hover{border-color:#0ea5a0!important}
.ae-RendererList-content .ae-RendererList-item .ae-RendererIcon:hover{color:#0ea5a0!important}

/* -- Breadcrumb -- */
.ae-Breadcrumb .ae-Breadcrumb-scrollRight-btn svg:hover{color:#0ea5a0!important}

/* -- Action buttons -- */
.action-btn.action-btn-primary{background-color:#0ea5a0!important}
.ae-InsertPanel-drawer .ae-InsertPanel-footer>.action-btn.action-btn-primary{background-color:#0ea5a0!important}

/* -- Shortcut icon -- */
.shortcut-icon-btn:hover{color:#0ea5a0!important}

/* -- Enhanced buttons -- */
.ae-Button--enhance{color:#0ea5a0!important;border:1px solid #0ea5a0!important}
.ae-Button--enhance:hover{background:rgba(14,165,160,.08)!important}

/* -- Icon button list -- */
.icon-ButtonList button.is-active svg{fill:#0ea5a0!important;color:#0ea5a0!important}
.icon-ButtonList button.is-active i{color:#0ea5a0!important}

/* -- ColCount / ColSize -- */
.ColCount .is-active,.ColSize .is-active{color:#0ea5a0!important}
.ColCount-item:not(.is-disabled):hover,.ColSize-item:not(.is-disabled):hover{color:#0ea5a0!important}

/* -- Event control -- */
.ae-event-control-content .icon:hover{color:#0ea5a0!important}
.ae-event-control-content .ae-option-control-item:hover{border:0.0625rem solid #0ea5a0!important}
.ae-event-control-content .event-item .item-content .ae-option-control-item .action-control-header-right .icon:hover{color:#0ea5a0!important}
.ae-event-control-header .add-event-dropdown button{color:#0ea5a0!important;border:0.0625rem solid #0ea5a0!important}
.ae-event-control-content .action-desc .desc-tag{color:#0ea5a0!important}

/* -- BadgeControl combo -- */
.ae-BadgeControl-combo:hover{border-color:#0ea5a0!important}

/* -- Nav control -- */
.ae-NavControl-wrapper .nav-links-item-dragBar:hover{color:#0ea5a0!important}
.ae-NavControl-wrapper .nav-links-item-actions .icon:hover{color:#0ea5a0!important}

/* -- Formula control -- */
.ae-editor-FormulaControl .desc-msg.info-msg{color:#0ea5a0!important}

/* -- Action tree / InputSearch keywords -- */
.action-tree-control ul li>div span .is-matched{color:#0ea5a0!important}
.ae-InputSearch-panel .editor-InputSearch .editor-InputSearch-content .search-subRenderers .subRenderers-list .subRenderers-item .is-keyword{color:#0ea5a0!important}

/* -- Tag list -- */
.editor-InputSearch-content .tag-list .tag-list-cont .tag-item:hover{color:#0ea5a0!important}

/* -- History delete -- */
.history-cont .history-item .delete-icon svg:hover{fill:#0ea5a0!important}

/* -- Theme CSS Code -- */
.ThemeCssCode-editor-content-header-title--active{color:#0ea5a0!important;border-bottom:2px solid #0ea5a0!important}

/* -- Push highlight -- */
.ae-PushHighlight-bottom::after,.ae-PushHighlight-top::after{background:#0ea5a0!important}
.ae-PushHighlight-left::after,.ae-PushHighlight-right::after{background:#0ea5a0!important}

/* -- Editor renderer item (canvas component hover) -- */
.ae-Editor-rendererItem:hover{background:rgba(14,165,160,.1)!important}
.ae-Editor-rendererItem.is-active,.ae-Editor-rendererItem:hover:active{background:rgba(14,165,160,.1)!important;border:1px solid #0ea5a0!important}
.ae-Editor-rendererItem.is-active:after,.ae-Editor-rendererItem:hover:active:after{border-color:#0ea5a0!important}

/* -- Drag ghost -- */
.ae-DragGhost{background-color:#0ea5a0!important}
.ae-DragGhost.use-position{background:#0ea5a0!important}

/* -- API sample icon -- */
.ae-ApiSample-icon{--Remark-onHover-bg:#0ea5a0!important}

/* -- Focus/Selection -- */
.ae-Editor ::selection{background:rgba(14,165,160,.2)!important}
.ae-Editor *:focus-visible{outline-color:#0ea5a0!important}

/* -- Spinner/Progress -- */
.ae-Editor .cxd-Spinner{color:#0ea5a0!important}
.ae-Editor .cxd-Spinner-icon{border-top-color:#0ea5a0!important}
.ae-Editor .cxd-Progress-bar{background:#0ea5a0!important}

/* -- Pagination -- */
.ae-Editor .cxd-Pagination-item.is-active{background:#0ea5a0!important;border-color:#0ea5a0!important}

/* -- Toolbar item -- */
.ae-Editor .ae-Toolbar-item:hover,.ae-Editor .ae-Toolbar .is-active{color:#0ea5a0!important}
/* === 21. Final blue cleanup — catch any remaining blue variants === */
* { --any-2563eb: #0ea5a0 !important; }
/* Since CSS vars trick won't work inline, use aggressive universal overrides: */
/* Any element with a blue-ish color or background — force to cyan */
[style*="2563eb"] { color: #0ea5a0 !important; }
[style*="3b82f6"] { color: #0ea5a0 !important; }
[style*="205dd9"] { color: #0ea5a0 !important; }
[style*="4285f4"] { color: #0ea5a0 !important; }
[style*="2468f2"] { color: #0ea5a0 !important; }
[style*="2468f1"] { color: #0ea5a0 !important; }
/* === 22. AGGRESSIVE BLUE PURGE — catch all remaining editor blues === */
/* These cover the 80+ blue-ish colors still in the AMIS CXD theme palette */

.ae-Editor [class] {
  /* Target specific known-bad color contexts via CSS vars where possible */
}

/* -- Animation entry (likely #504cf5 or similar) -- */
.ae-Editor .ae-Editor-list,
.ae-Editor .ae-Editor-listItem,
.ae-Editor .ae-Editor-eachItem {
  border-color: #0ea5a0 !important;
}
.ae-Editor [style*="504cf5"],
.ae-Editor [style*="504cf5"] * {
  background-color: #0ea5a0 !important;
  border-color: #0ea5a0 !important;
}

/* -- Page region borders (内容区/工具栏 select/hover) -- */
.ae-Editor-hlbox,
.ae-Editor-hlbox.regionOn,
.ae-Editor-hlbox:hover {
  border-color: #0ea5a0 !important;
}
.ae-Editor [data-region]:hover::after,
.ae-Editor [data-region]:hover {
  border-color: #0ea5a0 !important;
  outline-color: #0ea5a0 !important;
}

/* -- Region highlight box (rhlbox) — replace blue dotted/solid borders
   with Odoo cyan (#0ea5a0). Use full "border" shorthand for complete override -- */
.ae-Editor-rhlbox:before {
  border: 1px dotted #0ea5a0 !important;
}
.ae-Editor-rhlbox.region-hover:before {
  border: 1px dotted #0ea5a0 !important;
}
.ae-Editor-rhlbox.is-highlight {
  border-color: rgba(14,165,160,0.1) !important;
  background: transparent !important;
}
.ae-Editor-rhlbox.is-highlight:before {
  border: 1px solid #0ea5a0 !important;
}
.ae-Editor-rhlbox.region-can-be-drop:before {
  border: 1px dotted #0ea5a0 !important;
}

/* -- Child region label stacking fix -----------------------------------
   Problem: toolbarPopover is a standalone absolute-positioned element
   (NOT a child of hlbox) at z-index 20. Child region rhlboxes are inside
   hlbox (z-index 5), so the toolbar always renders on top of child tips.

   Fix: Lower toolbarPopover z-index below rhlbox level, then raise
   highlighted child elements within their stacking context. ----------- */
.ae-Editor-toolbarPopover {
  z-index: 1 !important;
}
.ae-Editor-rhlbox.is-highlight {
  z-index: 10 !important;
}
.ae-Editor-rhlbox.is-highlight > .region-tip {
  z-index: 25 !important;
}
.ae-Editor-rhlbox.region-hover {
  z-index: 10 !important;
}
.ae-Editor-rhlbox.region-hover > .region-tip {
  z-index: 25 !important;
}

/* -- Border overrides for all editor component highlights -- */
.ae-Editor .is-active,
.ae-Editor .is-selected,
.ae-Editor .is-focused,
.ae-Editor .is-hovered,
.ae-Editor [class*="selected"],
.ae-Editor [class*="active"],
.ae-Editor [class*="focused"],
.ae-Editor [class*="hovered"] {
  outline-color: #0ea5a0 !important;
}

/* -- The blue animation overlay on page entry -- */
@keyframes aeBlueFlash {
  0% { background: rgba(14,165,160,0.3); }
  100% { background: transparent; }
}

/* ═══════════════════════════════════════════════════════════════════
   ENHANCED ODOO 19 STYLE COVERAGE
   Generated: 2026-06-10 11:21:45
   Purpose: Fill gaps in native Odoo 19 style simulation
   ═══════════════════════════════════════════════════════════════════ */

/* === TABLE ENHANCEMENTS === */
/* 数字列右对齐（Odoo 原生行为） */
.cxd-Table-table td.o-number,
.cxd-Table-table td[type="number"],
.cxd-Table-table td[data-type="number"] {
  text-align: right !important;
  font-variant-numeric: tabular-nums !important;
}

/* 复选框样式优化（Odoo 风格） */
.cxd-Table-table td .cxd-Checkbox-label,
.cxd-Checkbox-control {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
}

.cxd-Checkbox-control input[type="checkbox"] {
  width: 16px !important;
  height: 16px !important;
  margin: 0 !important;
  cursor: pointer !important;
  accent-color: var(--o-brand-primary) !important;
}

/* 操作按钮图标样式 */
.cxd-Table-table td .cxd-Button--link svg,
.cxd-Crud-toolbar .cxd-Button--link svg {
  width: 14px !important;
  height: 14px !important;
  vertical-align: middle !important;
}

.cxd-Table-table td .cxd-Button--link {
  padding: 2px 6px !important;
  min-height: auto !important;
  line-height: 1 !important;
}

/* 表格空状态样式 */
.cxd-Table-placeholder {
  padding: 40px 20px !important;
  color: var(--o-gray-500) !important;
  text-align: center !important;
  font-size: var(--o-font-size-base) !important;
}

/* 表格加载状态 */
.cxd-Table.is-loading {
  opacity: 0.6 !important;
  pointer-events: none !important;
}

/* === FORM ENHANCEMENTS === */
/* 输入框焦点状态的更精确控制 */
.cxd-TextControl-input:focus,
.cxd-TextareaControl>textarea:focus,
.cxd-Number-input:focus {
  border-bottom-width: 2px !important;
}

/* 表单错误提示样式 */
.cxd-Form-item.is-error .cxd-Form-label {
  color: var(--o-danger) !important;
}

.cxd-Form-item-feedback {
  font-size: 0.75rem !important;
  color: var(--o-danger) !important;
  margin-top: 4px !important;
  font-family: var(--o-font-family) !important;
}

.cxd-Form-item-feedback--success {
  color: var(--o-success) !important;
}

/* 表单帮助文本 */
.cxd-Form-item-help {
  font-size: 0.75rem !important;
  color: var(--o-gray-600) !important;
  margin-top: 4px !important;
  font-style: italic !important;
}

/* === PAGINATION ENHANCEMENTS === */
/* 分页器每页显示数量选择器 */
.cxd-Pagination-perPage {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  font-size: var(--o-font-size-base) !important;
  color: var(--o-gray-700) !important;
}

.cxd-Pagination-perPage select {
  border: 1px solid var(--o-border-color) !important;
  border-radius: var(--o-border-radius) !important;
  padding: 2px 8px !important;
  font-size: var(--o-font-size-base) !important;
  background: #fff !important;
  min-height: 28px !important;
}

/* 分页器跳转输入框 */
.cxd-Pagination-jump input {
  width: 50px !important;
  text-align: center !important;
  border: 1px solid var(--o-border-color) !important;
  border-radius: var(--o-border-radius) !important;
  padding: 2px 6px !important;
  font-size: var(--o-font-size-base) !important;
}

/* === BUTTON ENHANCEMENTS === */
/* 按钮组样式 */
.cxd-Button-group {
  display: inline-flex !important;
  gap: 0 !important;
}

.cxd-Button-group .cxd-Button {
  border-radius: 0 !important;
  margin-right: -1px !important;
}

.cxd-Button-group .cxd-Button:first-child {
  border-radius: var(--o-border-radius) 0 0 var(--o-border-radius) !important;
}

.cxd-Button-group .cxd-Button:last-child {
  border-radius: 0 var(--o-border-radius) var(--o-border-radius) 0 !important;
  margin-right: 0 !important;
}

/* 按钮激活状态 */
.cxd-Button.is-active {
  background: var(--o-brand-primary) !important;
  color: #fff !important;
  border-color: var(--o-brand-primary) !important;
}

/* === SELECT ENHANCEMENTS === */
/* 多选标签关闭按钮 */
.cxd-Select-valueWrap .cxd-Select-value .cxd-Select-value-close {
  color: var(--o-brand-primary) !important;
  opacity: 0.6 !important;
  transition: opacity var(--o-transition) !important;
  margin-left: 4px !important;
  cursor: pointer !important;
}

.cxd-Select-valueWrap .cxd-Select-value .cxd-Select-value-close:hover {
  opacity: 1 !important;
}

/* 下拉菜单滚动条 */
.cxd-Select-menu::-webkit-scrollbar,
.cxd-TransferSelect-menu::-webkit-scrollbar {
  width: 6px !important;
}

.cxd-Select-menu::-webkit-scrollbar-thumb,
.cxd-TransferSelect-menu::-webkit-scrollbar-thumb {
  background: var(--o-gray-400) !important;
  border-radius: 3px !important;
}

/* === MODAL ENHANCEMENTS === */
/* 模态框关闭按钮 */
.cxd-Modal-close,
.cxd-Dialog-close {
  color: var(--o-gray-500) !important;
  transition: color var(--o-transition) !important;
  width: 32px !important;
  height: 32px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: var(--o-border-radius) !important;
}

.cxd-Modal-close:hover,
.cxd-Dialog-close:hover {
  color: var(--o-gray-800) !important;
  background: var(--o-gray-100) !important;
}

/* 模态框底部按钮区 */
.cxd-Modal-footer,
.cxd-Dialog-footer {
  background: var(--o-webclient-bg) !important;
  border-top: 1px solid var(--o-border-color) !important;
  padding: 12px 20px !important;
  display: flex !important;
  justify-content: flex-end !important;
  gap: 8px !important;
}

/* === TABS ENHANCEMENTS === */
/* Tab 内容区域边框 */
.cxd-Tabs-content {
  border: 1px solid var(--o-border-color) !important;
  border-top: none !important;
  border-radius: 0 0 var(--o-border-radius) var(--o-border-radius) !important;
  padding: var(--o-spacer) !important;
  background: #fff !important;
}

/* === ALERT ENHANCEMENTS === */
/* Alert 关闭按钮 */
.cxd-Alert-close {
  color: inherit !important;
  opacity: 0.5 !important;
  transition: opacity var(--o-transition) !important;
}

.cxd-Alert-close:hover {
  opacity: 1 !important;
}

/* === TOAST ENHANCEMENTS === */
/* Toast 位置优化 */
.cxd-Toast--top {
  top: calc(var(--o-navbar-height) + 16px) !important;
}

.cxd-Toast--bottom {
  bottom: 16px !important;
}

/* === TREE VIEW ENHANCEMENTS === */
/* 树形视图展开图标 */
.cxd-Tree-arrow {
  width: 16px !important;
  height: 16px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: transform var(--o-transition) !important;
}

.cxd-Tree-arrow svg {
  width: 12px !important;
  height: 12px !important;
}

/* 树形视图子项缩进 */
.cxd-Tree-children {
  margin-left: 20px !important;
  border-left: 1px solid var(--o-gray-200) !important;
  padding-left: 8px !important;
}

/* === SEARCH BOX ENHANCEMENTS === */
/* 搜索框清除按钮 */
.cxd-SearchBox-clear {
  color: var(--o-gray-500) !important;
  transition: color var(--o-transition) !important;
}

.cxd-SearchBox-clear:hover {
  color: var(--o-gray-700) !important;
}

/* 搜索框图标 */
.cxd-SearchBox-icon {
  color: var(--o-gray-400) !important;
}

/* === NAV ENHANCEMENTS === */
/* 导航项分隔线 */
.cxd-Nav-divider {
  height: 1px !important;
  background: var(--o-gray-200) !important;
  margin: 8px 0 !important;
}

/* 导航折叠面板 */
.cxd-Nav-subMenu {
  background: rgba(0, 0, 0, 0.02) !important;
}

/* === PROGRESS BAR ENHANCEMENTS === */
/* 进度条文字 */
.cxd-Progress-text {
  font-size: 0.75rem !important;
  color: var(--o-gray-600) !important;
  margin-top: 4px !important;
}

/* === SPINNER ENHANCEMENTS === */
/* 加载动画尺寸 */
.cxd-Spinner--sm {
  width: 16px !important;
  height: 16px !important;
}

.cxd-Spinner--lg {
  width: 48px !important;
  height: 48px !important;
}

/* === FILE UPLOAD ENHANCEMENTS === */
/* 文件列表项 */
.cxd-FileControl-file {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 8px 12px !important;
  border: 1px solid var(--o-border-color) !important;
  border-radius: var(--o-border-radius) !important;
  margin-top: 8px !important;
  background: #fff !important;
}

.cxd-FileControl-file-name {
  flex: 1 !important;
  color: var(--o-gray-800) !important;
  font-size: var(--o-font-size-base) !important;
}

.cxd-FileControl-file-remove {
  color: var(--o-danger) !important;
  cursor: pointer !important;
  transition: opacity var(--o-transition) !important;
}

.cxd-FileControl-file-remove:hover {
  opacity: 0.7 !important;
}

/* === IMAGE GALLERY ENHANCEMENTS === */
/* 图片预览遮罩 */
.cxd-Image-gallery-overlay {
  background: rgba(0, 0, 0, 0.85) !important;
}

/* === BREADCRUMB ENHANCEMENTS === */
/* 面包屑分隔符 */
.cxd-Breadcrumb-separator {
  color: var(--o-gray-400) !important;
  margin: 0 8px !important;
}

/* === POPOVER ENHANCEMENTS === */
/* 弹出框箭头 */
.cxd-PopOver-arrow {
  border-color: var(--o-border-color) !important;
}

/* === TRANSITION ENHANCEMENTS === */
/* 平滑过渡效果 */
.cxd-Button,
.cxd-TextControl-input,
.cxd-Select-control,
.cxd-Table-table tbody tr,
.cxd-Pagination-item,
.cxd-Tree-item {
  transition: all var(--o-transition) ease !important;
}

/* === ACCESSIBILITY ENHANCEMENTS === */
/* 键盘焦点可见性 */
.cxd-Button:focus-visible,
.cxd-TextControl-input:focus-visible,
.cxd-Select-control:focus-visible,
.cxd-Pagination-item:focus-visible {
  outline: 2px solid var(--o-brand-primary) !important;
  outline-offset: 2px !important;
}

/* 减少动画偏好 */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* === PRINT STYLES === */
@media print {
  .cxd-Table {
    border: 1px solid #000 !important;
  }
  
  .cxd-Table-table th,
  .cxd-Table-table td {
    border: 1px solid #000 !important;
  }
  
  .cxd-Button,
  .cxd-Pagination,
  .cxd-Crud-toolbar {
    display: none !important;
  }
}