/* Dialogs and editor pages share one restrained palette. */
:root { --ea-action: #49796f; --ea-action-hover: #386257; --ea-action-soft: #edf4f1; --ea-field-border: #dce3de; }
:root.dark { --ea-action: #49796f; --ea-action-hover: #598b7f; --ea-action-soft: #263d36; --ea-field-border: #405248; }
body .layui-layer-easy { background: var(--ea-surface); border: 1px solid var(--ea-border); border-radius: 14px !important; box-shadow: 0 24px 80px rgba(24,39,68,.22) !important; }
body .layui-layer-easy.layui-layer-border { border: 1px solid var(--ea-border) !important; box-shadow: 0 24px 80px rgba(24,39,68,.22) !important; }
body .layui-layer-easy .layui-layer-title { height: 62px; line-height: 62px; padding: 0 130px 0 26px; background: var(--ea-surface); color: var(--ea-text) !important; border-bottom: 1px solid var(--ea-border); border-radius: 14px 14px 0 0; font-size: 16px; font-weight: 600; }
body .layui-layer-easy .layui-layer-title::before { content: ''; display: inline-block; width: 4px; height: 17px; margin-right: 12px; border-radius: 3px; background: var(--ea-action); vertical-align: -3px; }
body .layui-layer-easy .layui-layer-setwin { top: 21px; right: 22px; }
body .layui-layer-easy .layui-layer-setwin > span { color: var(--ea-muted) !important; }
body .layui-layer-easy .layui-layer-setwin > span::before, body .layui-layer-easy .layui-layer-setwin > span::after { border-color: var(--ea-muted) !important; color: var(--ea-muted) !important; }
body .layui-layer-easy .layui-layer-setwin > span:hover { color: var(--ea-action) !important; }
body .layui-layer-easy .layui-layer-setwin > a { color: var(--ea-muted) !important; opacity: 1; }
body .layui-layer-easy .layui-layer-setwin > a::after { color: var(--ea-muted); }
body .layui-layer-easy .layui-layer-setwin > a::before { border-color: var(--ea-muted); }
body .layui-layer-easy .layui-layer-setwin > a:hover { color: var(--ea-action) !important; opacity: .75; }
body .layui-layer-easy .layui-layer-setwin .layui-layer-min::after { border-color: var(--ea-muted); }
body .layui-layer-easy .layui-layer-setwin .layui-layer-max::after { border-color: var(--ea-muted); }
body .layui-layer-easy .layui-layer-content { border-radius: 0 0 14px 14px; }
body .layui-layer-easy .layui-layer-content iframe { border-radius: 0 0 14px 14px; }
body .layui-layer-easy ._winTopBtn { top: 20px !important; color: var(--ea-muted) !important; border-color: var(--ea-border) !important; border-radius: 5px; }
body .layui-layer-easy .layui-layer-btn { background: var(--ea-surface-2) !important; border-top: 1px solid var(--ea-border); text-align: right !important; padding: 16px 24px !important; }
body .layui-layer-easy .layui-layer-btn a { height: 36px; line-height: 36px; padding: 0 22px; border-radius: 7px; background: var(--ea-surface); border-color: var(--ea-field-border); color: var(--ea-text) !important; }
body .layui-layer-easy .layui-layer-btn .layui-layer-btn0 { background: var(--ea-action); border-color: var(--ea-action); color: #fff !important; }
/* Form pages: comfortable labels, clear controls, a permanently reachable footer. */
html body.ea-form-page { background: var(--ea-surface); }
.ea-form-page > .layuimini-container { background: var(--ea-surface) !important; min-height: 100vh; }
.ea-form-page .ea-editor-form { box-sizing: border-box; width: 100%; max-width: 780px; min-height: 100vh; margin: 0 auto; padding: 28px 36px 104px; }
.ea-form-page .ea-editor-intro { display: flex; align-items: center; gap: 12px; padding: 0 0 24px; margin-bottom: 24px; border-bottom: 1px solid var(--ea-border); }
.ea-editor-intro .ea-editor-icon { display: flex; width: 40px; height: 40px; flex-shrink: 0; align-items: center; justify-content: center; background: var(--ea-action-soft); color: var(--ea-action); border-radius: 11px; font-size: 17px; }
.ea-editor-intro h2 { font-size: 15px; font-weight: 600; color: var(--ea-text); margin: 0 0 5px; }
.ea-editor-intro p { font-size: 12px; color: var(--ea-muted); margin: 0; line-height: 1.6; }
.ea-form-page .ea-editor-form > .layui-form-item { padding: 0; float: none; width: auto; margin-bottom: 23px !important; }
.ea-form-page .ea-editor-form > .layui-form-item > .layui-form-label { float: none; display: block; box-sizing: border-box; width: auto; padding: 0; margin-bottom: 9px; text-align: left; font-size: 13px; line-height: 20px; color: var(--ea-text) !important; }
.ea-form-page .ea-editor-form > .layui-form-item > .required::after { position: static; margin-left: 5px; }
.ea-form-page .ea-editor-form > .layui-form-item > .layui-input-block { margin-left: 0; min-height: 40px; }
.ea-form-page .ea-editor-form .layui-input, .ea-form-page .ea-editor-form .layui-textarea { border: 1px solid var(--ea-field-border) !important; border-radius: 7px; background: var(--ea-surface) !important; color: var(--ea-text) !important; font-size: 13px; box-sizing: border-box; padding-left: 13px; }
.ea-form-page .ea-editor-form .layui-input { height: 42px; line-height: 42px; }
.ea-form-page .ea-editor-form .layui-input:focus, .ea-form-page .ea-editor-form .layui-textarea:focus { border-color: var(--ea-action) !important; box-shadow: 0 0 0 3px var(--ea-action-soft) !important; }
.ea-form-page .ea-editor-form .layui-textarea { min-height: 100px; padding: 11px 13px; line-height: 1.8; resize: vertical; }
.ea-form-page .ea-editor-form input[readonly]:not([onclick]) { background: var(--ea-surface-2) !important; color: var(--ea-muted) !important; }
.ea-form-page .ea-editor-form input:disabled { cursor: not-allowed; background: var(--ea-surface-2) !important; }
.ea-form-page .ea-editor-form tip { display: block; margin-top: 7px; line-height: 1.6; font-size: 11px; color: var(--ea-muted) !important; }
.ea-form-page .ea-editor-form .layui-form-checkbox[lay-skin=primary] { margin-top: 8px; margin-bottom: 4px; }
.ea-form-page .ea-editor-form .layui-form-checkbox > div { font-size: 13px; }
.ea-form-page .ea-editor-form .layui-form-checked[lay-skin=primary] i { background: var(--ea-action) !important; border-color: var(--ea-action) !important; }
.ea-form-page .ea-editor-form .layui-form-radio:hover *, .ea-form-page .ea-editor-form .layui-form-radioed > i { color: var(--ea-action) !important; }
.ea-form-page .ea-editor-form .layui-form-select dl dd.layui-this { background: var(--ea-action-soft) !important; color: var(--ea-action) !important; }
.ea-form-page .ea-editor-form > .hr-line { display: none; }
.ea-form-page .ea-editor-form .ea-form-actions { position: fixed; display: flex; align-items: center; justify-content: flex-end; gap: 10px; left: 0; right: 0; bottom: 0; z-index: 80; margin: 0 !important; padding: 16px 28px; border-top: 1px solid var(--ea-border); background: var(--ea-surface); box-shadow: 0 -6px 20px rgba(24,39,68,.025); }
.ea-form-page .ea-form-actions .layui-btn { height: 40px; line-height: 38px; min-width: 98px; border-radius: 7px; padding: 0 22px; margin: 0; font-size: 13px; box-shadow: none; }
.ea-form-page .ea-form-actions .layui-btn[lay-submit] { order: 2; background: var(--ea-action) !important; color: #fff !important; border: 1px solid var(--ea-action) !important; box-shadow: 0 3px 8px rgba(73,121,111,.13); }
.ea-form-page .ea-form-actions .layui-btn[lay-submit]:hover { background: var(--ea-action-hover) !important; filter: none; }
.ea-form-page .ea-form-actions .layui-btn[disabled] { opacity: .5; cursor: not-allowed; }
.ea-form-page .ea-form-actions .layui-btn[type=reset] { order: 1; background: var(--ea-surface) !important; color: var(--ea-muted) !important; border: 1px solid var(--ea-field-border) !important; }
.ea-form-page .ea-form-actions .layui-btn[type=reset]:hover { color: var(--ea-action) !important; border-color: var(--ea-action) !important; box-shadow: none; filter: none; }
.ea-form-page .layuimini-upload > .layui-input { float: none; width: 100%; padding-right: 175px; }
.ea-form-page .layuimini-upload .layuimini-upload-btn { top: 5px; right: 5px; display: flex; gap: 5px; }
.ea-form-page .layuimini-upload-btn .layui-btn { height: 32px; line-height: 30px; border-radius: 5px; padding: 0 12px; font-size: 12px; background: var(--ea-action-soft) !important; color: var(--ea-action) !important; border: 1px solid transparent; box-shadow: none; }
.ea-form-page .layuimini-upload-btn .layui-btn:hover { filter: none; border-color: var(--ea-action); }
/* Permission groups retain the zTree selection and parent/child linkage. */
.ea-form-page .ea-permission-form { max-width: 1000px; }
.ea-permission-form .ea-role-summary { background: var(--ea-surface-2); padding: 15px 18px !important; border: 1px solid var(--ea-border); border-radius: 9px; }
.ea-form-page .ea-role-summary > .layui-form-label { color: var(--ea-muted) !important; font-size: 11px !important; margin-bottom: 5px !important; }
.ea-form-page .ea-role-summary .layui-input { padding: 0; height: 26px; line-height: 26px; border: none !important; color: var(--ea-text) !important; font-weight: 600; background: transparent !important; box-shadow: none !important; }
.ea-form-page .ea-role-summary > .layui-input-block { min-height: 26px !important; }
.permission-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: 0 0 16px; color: var(--ea-muted); font-size: 12px; }
.permission-toolbar button { padding: 6px 10px; font-size: 12px; border: 1px solid var(--ea-field-border); border-radius: 6px; color: var(--ea-text); background: var(--ea-surface); cursor: pointer; margin-left: 5px; }
.permission-toolbar button:hover { color: var(--ea-action); border-color: var(--ea-action); }
.permission-toolbar strong { color: var(--ea-action); font-weight: 600; }
.ea-permission-form #tree.ztree { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 0; }
.ea-permission-form #tree.ztree > li { box-sizing: border-box; min-width: 0; padding: 11px 13px; border: 1px solid var(--ea-border); border-radius: 9px; background: var(--ea-surface-2); }
.ea-permission-form #tree.ztree > li > a { font-weight: 600; }
.ea-permission-form #tree.ztree li a { color: var(--ea-text); border-radius: 4px; text-decoration: none; padding: 0 4px; margin-left: 2px; vertical-align: middle; }
.ea-permission-form #tree.ztree li a:hover, .ea-permission-form #tree.ztree li a.curSelectedNode { color: var(--ea-action); background: var(--ea-action-soft); border: 0; }
.ea-permission-form #tree.ztree li span.node_name { font-size: 12px; }
.ea-permission-form #tree.ztree > li > ul { padding: 9px 0 0 6px; margin: 8px 0 0; border-top: 1px solid var(--ea-border); }
.ea-permission-form #tree.ztree li ul::before, .ea-permission-form #tree.ztree li li::before { display: none; }
.ea-permission-form #tree.ztree li li { padding: 3px 0; }
.ea-permission-form #tree.ztree li span.button { font-family: 'Font Awesome 6 Free'; font-weight: 900; }
.ea-permission-form #tree.ztree { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Microsoft YaHei', sans-serif; }
.ea-permission-form #tree.ztree li span.button.chk { box-sizing: border-box; width: 15px; height: 15px; padding: 0; margin: 6px 5px 6px 0; border: 1px solid #c0cdc5; border-radius: 4px; background: var(--ea-surface); }
.ea-permission-form #tree.ztree li span.button.chk::before { content: '' !important; }
.ea-permission-form #tree.ztree li span.button.chk[class*=true], .ea-permission-form #tree.ztree li span.button.chk[class*=part] { background: var(--ea-action); border-color: var(--ea-action); }
.ea-permission-form #tree.ztree li span.button.chk[class*=true]::before { content: '' !important; display: block; width: 7px; height: 4px; border-left: 2px solid white; border-bottom: 2px solid white; transform: rotate(-45deg); margin: 3px 2px; }
.ea-permission-form #tree.ztree li span.button.chk[class*=part]::before { content: '' !important; display: block; width: 7px; height: 0; border: 0; border-top: 2px solid white; transform: none; margin: 5px 3px; }
.ea-permission-form #tree.ztree li span.button.chk[class*=disable] { opacity: .45; cursor: not-allowed; }
.ea-permission-form #tree.ztree .permission-node-code { color: var(--ea-muted); font-size: 10px; font-weight: 400; margin-left: 6px; }
.ea-permission-form #tree.ztree li span.button.switch::before { color: var(--ea-muted); font-weight: 900; }
.ea-permission-form #tree.ztree li a span.button { color: var(--ea-muted); }
.ea-permission-form #tree.ztree li span.button[class*=docu] { display: none; }
.ea-permission-form .permission-loading { padding: 20px; border-radius: 8px; text-align: center; background: var(--ea-surface-2); color: var(--ea-muted); font-size: 13px; }
/* Table actions use quiet secondary colours; only the primary action is solid. */
.layuimini-container .layui-table-tool .layui-btn { height: 30px; line-height: 28px; padding: 0 10px; border-radius: 5px !important; margin: 0 4px 0 0; box-shadow: none; font-size: 12px; }
.layuimini-container .layui-table-tool .layui-btn[data-open] { background: var(--ea-surface) !important; color: var(--ea-muted) !important; border: 1px solid var(--ea-field-border); }
.layuimini-container .layui-table-tool .layui-btn[data-open][data-title="添加"] { background: #119d68 !important; color: #fff !important; border-color: #119d68; }
.layuimini-container .layui-table-tool .layui-btn[data-table-export], .layuimini-container .layui-table-tool .layui-btn[data-table-refresh] { background: var(--ea-surface) !important; color: var(--ea-muted) !important; border: 1px solid var(--ea-field-border); }
.layuimini-container .layui-table-tool .layui-btn[data-table-export] { background: #effbf3 !important; color: #008b5c !important; border-color: #a8e6bd; }
.layuimini-container .layui-table-tool .layui-btn-danger { background: #fff3f1 !important; color: #ca342c !important; border: 1px solid #ffd0c9; }
.layuimini-container .layui-table-body .layui-btn { border-radius: 5px !important; margin: 0 4px 0 0; padding: 0 9px; background: var(--ea-action-soft) !important; color: var(--ea-action) !important; border-color: transparent !important; box-shadow: none; }
.layuimini-container .table-search-fieldset .layui-btn { background: var(--ea-surface) !important; color: var(--ea-muted) !important; border: 1px solid var(--ea-field-border) !important; border-radius: 6px; box-shadow: none; }
.layuimini-container .layui-table-body .layui-btn-danger { background: var(--ea-surface) !important; color: #bd696b !important; }
.layuimini-container .layui-table-tool .layui-btn:hover, .layuimini-container .table-search-fieldset .layui-btn:hover { filter: none; box-shadow: none; border-color: var(--ea-action) !important; }
.layuimini-container .layui-table-tool .layui-btn-danger:hover, .layuimini-container .layui-table-body .layui-btn-danger:hover { background: #fcf0f0 !important; color: #b54f55 !important; border-color: #ddb5b8 !important; }
.dark .layuimini-container .layui-btn-danger { background: #422d39 !important; color: #e6a0a9 !important; border-color: #5b3747; }
.layuimini-container .layui-table-tool .layui-btn[data-open][data-title="添加"]:hover { background: #0b8758 !important; border-color: #0b8758 !important; }
.layuimini-container .layui-table-tool .layui-btn[data-table-export]:hover { background: #e1f5e9 !important; border-color: #72c996 !important; }
.dark .layuimini-container .layui-table-tool .layui-btn[data-table-export] { background: #233d31 !important; color: #93d9b2 !important; border-color: #42694f; }
@media (max-width: 640px) {
    .layuimini-container .layui-table-tool .layui-table-tool-temp { padding-right: 0; }
    .layuimini-container .layui-table-tool .layui-table-tool-self { position: static; display: flex; justify-content: flex-end; margin-top: 10px; }
    .ea-form-page .ea-editor-form { padding: 22px 20px 100px; }
    .ea-form-page .ea-editor-form .ea-form-actions { padding: 14px 20px; }
    .ea-permission-form #tree.ztree { grid-template-columns: 1fr; }
    .ea-form-page .ea-editor-intro { margin-bottom: 20px; padding-bottom: 20px; }
    body .layui-layer-easy .layui-layer-title { padding-left: 20px; }
}

