/* Integration, readable density and interaction details. */
.attachment-toolbar,.attachment-filter,.attachment-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;flex-wrap:wrap}
.attachment-filter{justify-content:flex-start;padding-top:0}.attachment-filter input{width:min(280px,100%)}.attachment-filter #attachment-feedback{font-size:11px;flex:1;min-width:140px}
.attachment-upload-label{margin:0!important;font-size:12px!important;cursor:pointer}.attachment-upload-label:has(input:disabled){opacity:.5;pointer-events:none}
.attachment-bulk{padding:0 20px 12px;display:flex;align-items:center;gap:12px;font-size:11px}
.attachment-name{display:flex;align-items:center;gap:10px;min-width:220px}.attachment-name strong{display:block;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.attachment-name small{display:block;max-width:260px;overflow:hidden;text-overflow:ellipsis;color:var(--text-secondary);font-size:10px;margin-top:4px}
.attachment-file-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;flex:none;color:var(--primary);background:var(--primary-light)}.attachment-file-icon svg{width:18px;height:18px;stroke-width:1.6}
.attachment-table th,.attachment-table td{padding:14px 16px}.attachment-table td:not(:nth-child(2)){white-space:nowrap}.attachment-table input[type=checkbox]{accent-color:var(--primary);width:15px;height:15px}
.attachment-actions{display:flex;align-items:center;gap:4px}.attachment-actions svg{width:15px;height:15px}.attachment-actions a{text-decoration:none}
.attachment-pagination{border-top:1px solid var(--line);font-size:11px}.attachment-pagination>div{display:flex;align-items:center;gap:12px}.attachment-pagination button:disabled{opacity:.4;cursor:default}
.dictionary-live-preview{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:20px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.dictionary-live-preview select{min-width:180px}.dictionary-live-preview #live-dictionary-tags{width:100%;display:flex;gap:8px;flex-wrap:wrap}
.menu-icon-selector{border:1px solid var(--line);border-radius:16px;background:var(--surface);overflow:hidden}
.menu-icon-toolbar{display:flex;align-items:center;gap:12px;padding:12px 12px 8px}
.menu-icon-toolbar input{min-width:0;flex:1;background:var(--canvas,#f7f9fc)}
.menu-icon-count{flex-shrink:0;min-width:56px;text-align:right;font:11px Consolas,monospace;color:var(--text-secondary)}
.menu-icon-categories{display:flex;flex-wrap:wrap;gap:5px;padding:0 12px 12px}
.menu-icon-categories button{border:1px solid transparent;border-radius:7px;padding:5px 8px;color:var(--text-secondary);background:transparent;font:inherit;font-size:11px;cursor:pointer;transition:background .15s,color .15s}
.menu-icon-categories button:hover{color:var(--primary);background:var(--primary-light)}
.menu-icon-categories button[aria-pressed=true]{color:var(--primary);border-color:var(--primary-light);background:var(--primary-light)}
.menu-icon-selector .menu-icon-picker{grid-template-columns:repeat(auto-fill,minmax(66px,1fr));gap:7px;max-height:296px;scrollbar-width:thin;border:0;border-top:1px solid var(--line);border-radius:0;background:var(--canvas,#f7f9fc)}
.menu-icon-selector .icon-choice{width:100%;height:62px;display:flex;flex-direction:column;justify-content:center;gap:7px;border-radius:9px;color:var(--text-secondary)}
.menu-icon-selector .icon-choice svg{width:21px;height:21px;stroke-width:1.6;flex-shrink:0}
.menu-icon-selector .icon-choice span{display:block;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:10px}
.menu-icon-selector .icon-choice:hover,.menu-icon-selector .icon-choice.selected{color:var(--primary);border-color:var(--primary);background:var(--primary-light);box-shadow:none}
.menu-icon-selector button:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}
.menu-icon-selector .menu-icon-picker[hidden],.menu-icon-empty[hidden]{display:none}
.menu-icon-empty{margin:0;padding:28px 12px;text-align:center;font-size:12px;color:var(--text-secondary);border-top:1px solid var(--line)}
.menu-icon-selection{display:flex;align-items:center;gap:10px;padding:12px;border-top:1px solid var(--line);font-size:11px;color:var(--text-secondary)}
.menu-icon-preview{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--primary-light);color:var(--primary)}
.menu-icon-preview svg{width:20px;height:20px;stroke-width:1.6}
.menu-icon-selection strong{font-weight:500;color:var(--ink)}
.menu-icon-selection code{display:block;margin-top:3px;color:var(--text-secondary);font-size:10px}
@media(prefers-reduced-motion:reduce){.menu-icon-selector button{transition:none!important;transform:none!important}}
body { font-size:14px; }
.login-error:empty{display:none!important}.login-error:not(:empty){display:block}
.login-progress{margin:12px 0 0;color:#527b70;font-size:12px;text-align:center;line-height:1.5}.login-progress:empty{display:none}.login-spinner{display:inline-block;width:15px;height:15px;margin-right:9px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;vertical-align:-3px;animation:login-spin .8s linear infinite}@keyframes login-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.login-spinner{animation:none;border-color:#fff}}
.nav-group{margin:4px 0}.nav-group>summary{list-style:none;display:flex;align-items:center;gap:12px;padding:13px 15px;color:#89aaa8;cursor:pointer;font-size:12px}.nav-group>summary::-webkit-details-marker{display:none}.nav-group>summary>svg{width:17px;height:17px}.nav-caret{margin-left:auto;display:grid;place-items:center;color:#70968b;transition:transform .2s ease}.nav-caret svg{width:13px!important;height:13px!important}.nav-group[open]>summary .nav-caret{transform:rotate(90deg);color:#8ce0c4}.nav-group>div{padding-left:12px;border-left:1px solid #42665c44;margin-left:22px}.nav-group .nav-item{font-size:12px;padding-left:10px}.nav-group[open]>summary{color:#bce7d7}.sidebar #main-nav{overflow:auto;flex:1;scrollbar-width:thin}
.theme-options{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;padding:15px 0}.theme-option{padding:11px;border:2px solid var(--line);background:var(--surface);border-radius:12px;text-align:left;color:var(--ink);cursor:pointer}.theme-option.active{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 8%,transparent)}.theme-option strong{display:block;margin:10px 0 3px;font-size:13px}.theme-option small{font-size:10px;color:var(--text-secondary)}.theme-preview{display:grid;grid-template-columns:23% 77%;height:93px;border-radius:6px;overflow:hidden;border:1px solid #71817920}.theme-preview .preview-side{background:var(--preview-sidebar)}.theme-preview .preview-body{background:var(--preview-bg);padding:9px}.theme-preview .preview-bar{height:9px;background:var(--preview-card);border-radius:3px;margin-bottom:7px}.theme-preview .preview-line{width:40%;height:4px;border-radius:2px;background:var(--preview-accent);margin-bottom:8px}.theme-preview .preview-cards{display:grid;grid-template-columns:1fr 1fr;gap:5px}.theme-preview .preview-cards i{height:26px;border-radius:3px;background:var(--preview-card)}
.profile-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:24px}.profile-card{text-align:center;padding:30px 22px}.profile-avatar{display:grid;place-items:center;margin:0 auto 17px;width:74px;height:74px;border-radius:23px;font-size:30px;background:var(--primary-light);color:var(--primary)}.profile-card h2{font-size:21px;font-weight:550;margin:4px 0}.profile-card p{font-size:12px;color:var(--text-secondary)}.profile-card .role-tag{margin:7px 2px}.profile-card .profile-meta{border-top:1px solid var(--line);margin-top:23px;padding-top:14px;text-align:left;font-size:12px;line-height:2}.profile-form{padding:25px}.profile-form h2{font-size:16px;font-weight:550;margin:0 0 20px}.profile-form .form-grid{gap:18px}.profile-form .btn{margin-top:20px}.profile-form .inline-message{font-size:12px;margin-top:15px;color:var(--primary)}.profile-form .inline-message.error{color:var(--danger)}.form-field textarea{resize:vertical}.menu-tree-table{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}.menu-tree-table th{text-align:left;font-weight:500;padding:16px 14px;color:var(--text-secondary);background:var(--surface-soft);border-bottom:1px solid var(--line)}.menu-tree-table td{padding:15px 14px;border-bottom:1px solid var(--line);color:var(--ink)}.menu-tree-table tr:last-child td{border-bottom:0}.menu-tree-table tbody tr:hover{background:var(--primary-light)}.menu-name{display:flex;align-items:center;gap:9px}.menu-name svg{width:16px;height:16px;color:var(--primary)}.menu-tree-table code{font:11px Consolas,monospace;color:var(--text-secondary)}.menu-type{font-size:10px;color:var(--text-secondary);border:1px solid var(--line);padding:3px 6px;border-radius:4px}.menu-help{padding:18px 22px;display:flex;justify-content:space-between;gap:15px;align-items:center;color:var(--text-secondary);font-size:11px}.menu-icon-grid{display:flex;gap:6px;flex-wrap:wrap}.theme-heading{font-size:16px;font-weight:500;margin:0 0 8px}.theme-note{font-size:12px;color:var(--text-secondary);line-height:1.8}
@media(max-width:1000px){.theme-options{grid-template-columns:repeat(2,1fr)}.profile-layout{grid-template-columns:1fr}.profile-card{padding:23px}.profile-meta{display:none}}
.boot-state { min-height:100vh;display:grid;place-content:center;text-align:center;gap:16px;color:#67877e; }
.boot-mark { display:grid;place-items:center;width:52px;height:52px;margin:auto;border-radius:15px;background:#103b36;color:#7ce2bd;font-size:26px; }
.nav-item { font-size:13px;min-height:49px; }
.nav-caption {font-size:11px}.page-heading p,.hero-copy p,.btn,.form-hint {font-size:12px}.breadcrumb {font-size:12px}
.stat-label,.panel-title {font-size:13px}.stat-change,.panel-subtitle,.quick-item,.system-row,.system-row>:last-child {font-size:11px}
.workspace {max-width:1740px}.hero-copy h2 {font-size:29px}.hero-copy p {max-width:340px}.hero-kicker {font-size:10px}
.stat-card {min-height:141px}.stat-value {font-size:30px}.page-footer{display:flex;justify-content:space-between;margin-top:27px;color:#94a5a7;font-size:10px;letter-spacing:.3px}
.table-action {cursor:pointer;display:inline-flex;align-items:center;gap:5px;margin:0 4px;padding:5px 10px;border:1px solid #d3e9e2;border-radius:7px;background:linear-gradient(125deg,#f3fbf8,#eaf8f4);color:#198d76;font-size:11px;line-height:19px;transition:box-shadow .2s,transform .2s}
.table-action:hover {transform:translateY(-1px);box-shadow:0 3px 10px #13967914;color:#06664e}.table-action svg{width:12px;height:12px}.table-action.danger{color:#c56f76;background:#fff8f8;border-color:#f0dedf}
.layui-table-view .layui-table-cell {height:57px;line-height:57px;font-size:12px}.layui-table-view .layui-table-header .layui-table-cell{height:43px;line-height:43px;font-size:11px;letter-spacing:.5px}
.layui-table-view .layui-table-cell .cell-user {height:57px}.cell-avatar {width:31px;height:31px;line-height:31px;text-align:center;display:inline-block;border-radius:9px;background:#e7f4ef;color:#368e76;margin-right:10px}
.cell-user{display:flex;align-items:center}.cell-meta{line-height:1.6;display:flex;flex-direction:column}.cell-meta strong{font-weight:500}.cell-meta small{font-size:10px;color:#9ca9ad}
.role-tag{display:inline-block;border:1px solid #e2e8f2;background:#f7f9fd;color:#6d829f;padding:1px 7px;border-radius:5px;font-size:10px;line-height:20px;margin-right:3px}
.status-pill {display:inline-flex;align-items:center;gap:5px;line-height:20px;padding:2px 8px;font-size:10px}.status-pill::before{content:'';width:4px;height:4px;background:currentColor;border-radius:50%}
.surface:has(.table-container){position:relative;border-top-color:#c2e5de;background:linear-gradient(110deg,#effbf7 0,#ffffff 48%);box-shadow:0 1px 0 #ffffff inset,0 8px 32px #235b4c04}
.surface:has(.table-container)::before{content:'';position:absolute;top:0;left:25px;width:180px;height:1px;background:linear-gradient(90deg,transparent,#49b7b0,#8be0c2,transparent)}
.layui-table-view .layui-table-header{background:linear-gradient(100deg,#eff9f6,#f4f9fb 75%,#f8fbfa)!important;border-bottom-color:#deeee8!important}
.layui-table-view .layui-table-header th{color:#5b8279!important;background:transparent!important}.layui-table-view .layui-table-body tr:hover td:first-child{box-shadow:inset 2px 0 #3bb79b}
.table-action.edit{border-color:#c7e5df;background:linear-gradient(125deg,#f5fcf9,#e8f7f4);box-shadow:0 1px 0 #fff inset}
.table-action.edit:hover{border-color:#7bd4bd;box-shadow:0 2px 12px #35bca522,0 0 0 2px #70d4be0d}
.status-pill.enabled::before{box-shadow:0 0 5px #2bad8055}.layui-table-body tr{transition:background-color .18s ease}
.panel-note{padding:0 22px 17px;font-size:10px;color:#91a3a5}.panel-body .system-row{padding:12px 0}.mini-table{width:100%;border-collapse:collapse;text-align:left;font-size:11px}.mini-table th{font-weight:400;color:#94a2a6;background:#f8fafb;padding:10px 13px}.mini-table td{padding:13px;border-bottom:1px solid #eff3f4;color:#647d83}.mini-table tr:last-child td{border-bottom:0}.mini-table-wrap{padding:20px 14px 9px;overflow:auto}
.drawer-backdrop{z-index:99}.drawer{z-index:100;width:min(560px,100vw)}.drawer-body{overflow:auto;flex:1}.drawer form{display:flex;flex-direction:column;min-height:0;flex:1}.drawer-header p{font-size:12px;color:#859999;margin:6px 0 0}.drawer-footer{flex-wrap:wrap}.drawer-error{color:#c85362;font-size:12px;margin:0;flex:1;min-width:150px}.form-field label{display:block;margin-bottom:7px;font-size:12px}.form-field input:not([type=checkbox]):not([type=radio]),.form-field select,.form-field textarea{width:100%}.form-field input[type=checkbox]{margin:0 7px 0 0}.form-grid .full{grid-column:1/-1}.field-option{display:inline-flex!important;align-items:center;gap:6px;margin:7px 15px 7px 0!important}.form-hint{font-size:11px;color:#889b9e;margin-top:6px}.permission-group h4{font-weight:500;font-size:13px;margin:0 0 12px}.permission-item{font-size:12px}.permission-item small{font:9px Consolas,monospace;color:#8aa09f;margin-left:auto}.permission-summary{font-size:12px;color:#278970;margin:10px 0}.password-hint{font-size:11px;color:#7a9198;line-height:1.8}.scope-options label{display:block;padding:10px;margin-top:6px;border:1px solid #e4edeb;border-radius:8px}
.drawer:not(.open){visibility:hidden;pointer-events:none}.drawer.open{visibility:visible;pointer-events:auto}
.component-main{background:white;border:1px solid var(--line);border-radius:12px;padding:24px}
.login-screen{min-height:100vh;display:grid;grid-template-columns:1.15fr 1fr;background:#f7faf9;padding:0}.login-art{position:relative;background:#153834;display:flex;flex-direction:column;justify-content:center;padding:11%;height:100vh;overflow:hidden;color:#d2ede2}.login-art h1{font-size:44px;line-height:1.4;font-weight:500;letter-spacing:-1px;position:relative;z-index:1}.login-art p{font-size:13px;line-height:2;color:#8eb3a6;position:relative;z-index:1}.login-art .brand{padding:0;position:absolute;left:11%;top:50px}.login-art canvas{position:absolute;left:0;right:0;bottom:0;width:100%;height:50%;opacity:.75}.login-panel{display:flex;justify-content:center;align-items:center;padding:42px}.login-card{width:100%;max-width:385px;padding:0;border:0;background:transparent;box-shadow:none}.login-card h2{font-size:29px;font-weight:550;color:#204338;margin:10px 0}.login-card .form-field{margin-top:22px}.login-card .btn{width:100%;margin-top:25px;min-height:43px}.login-logo{color:#168f77;font-size:11px;letter-spacing:2px}.login-subtitle{font-size:12px;color:#849c95}.login-footer{font-size:10px;color:#91a79f;text-align:center;margin-top:27px}.login-error{font-size:12px;color:#c75e6c;margin-top:14px;min-height:20px}.login-help{border-top:1px solid #e5ece8;margin-top:30px;padding-top:17px;font-size:11px;line-height:1.9;color:#8ba297}.login-help code{color:#557c6e}
.component-layout{grid-template-columns:185px minmax(0,1fr)}.component-nav{align-self:start}.component-nav h3{font-size:13px;margin:8px 12px 17px}.component-nav-item{font-size:12px;display:flex;align-items:center;gap:10px;width:100%;text-align:left}.component-nav-item svg{width:16px;height:16px}.component-main{min-width:0}.component-main h2{font-size:17px;font-weight:550;margin:0}.component-main .example-description{font-size:12px;color:#8a9ea1;margin:8px 0 22px}.example-tabs{display:flex;flex-wrap:wrap;gap:20px;border-bottom:1px solid #e8efec;margin-bottom:20px}.example-tab{border:0;background:transparent;padding:10px 0 13px;color:#91a19f;border-bottom:2px solid transparent;font-size:12px}.example-tab.active{color:#139679;border-color:#139679}.demo-stage{min-height:180px;padding:22px;border:1px solid #e7eeeb;border-radius:10px}.demo-stage .form-grid{max-width:580px}.code-panel{position:relative;margin-top:20px;max-height:450px;overflow:auto;border:1px solid #e4edeb;border-radius:10px;background:#f6f9f8}.code-panel pre{margin:0;padding:23px;white-space:pre;overflow:auto;font:11px/1.9 Consolas,monospace;color:#47796b}.code-heading{display:flex;justify-content:space-between;align-items:center;padding:12px 17px;background:#fcfefd;border-bottom:1px solid #e6eeeb;font-size:11px;color:#849b92}.demo-feedback{margin-top:16px;font-size:12px;color:#268b70;min-height:21px}.component-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:20px}.component-card{padding:16px;border:1px solid #e5eeea;border-radius:10px;background:white;cursor:pointer;text-align:left}.component-card strong{display:block;font-size:12px;color:#385d51;margin:10px 0}.component-card small{color:#93a49e;font-size:10px}.example-pill{font-size:9px;padding:3px 7px;border-radius:4px;background:#eaf7ef;color:#329c77;vertical-align:middle;margin-left:10px}.upload-preview{display:flex;gap:10px;flex-wrap:wrap;margin-top:15px}.upload-preview img{max-width:120px;max-height:95px;object-fit:cover;border-radius:8px}.fluid-demo{height:225px;position:relative;background:#edf7f0;border-radius:9px;overflow:hidden}.fluid-demo canvas{width:100%;height:100%}.demo-buttons{display:flex;gap:10px;flex-wrap:wrap}.dev-docs{font-size:12px;line-height:1.9}.dev-docs h3{font-size:15px;color:#355d4f;margin:20px 0 8px}.dev-docs code{background:#f0f5f2;color:#44745e;padding:2px 4px}.dev-docs pre{overflow:auto;background:#f3f7f5;padding:14px;font-size:11px}.motion-setting{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 0;border-bottom:1px solid #edf1ef}.motion-setting h3{font-size:14px;font-weight:500;margin:0 0 4px}.motion-setting p{margin:0;font-size:12px;color:#8aa298}.section-gap{margin-top:22px}.table-filter{padding:18px 22px 10px}.table-container{padding:0 16px 10px}.table-footer-note{font-size:11px;color:#91a4a0;padding:4px 22px 17px}.search-results button{display:flex;align-items:center;gap:10px;width:100%;padding:15px;border:0;border-bottom:1px solid #eaf1ed;background:white;text-align:left}.search-results button:hover{background:#f0f8f4}.danger-note{font-size:11px;color:#9b7e7c;background:#fff9f7;padding:12px;border-radius:7px}.error-state button{margin-top:16px}
@media(min-width:1600px){.workspace{padding:36px 44px}.hero-banner{min-height:254px}.hero-copy{padding-left:40px}}
@media(max-width:1050px){.dashboard-grid{grid-template-columns:minmax(0,1.5fr) minmax(240px,1fr)}.login-art h1{font-size:34px}.hero-copy h2{font-size:25px}.component-layout{grid-template-columns:155px minmax(0,1fr)}}
@media(max-width:760px){.login-screen{grid-template-columns:1fr}.login-art{display:none}.login-panel{min-height:100vh;padding:28px}.dashboard-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,1fr)}.component-layout{grid-template-columns:1fr}.component-nav{display:flex;overflow:auto;padding:8px}.component-nav h3{display:none}.component-nav-item{width:auto;white-space:nowrap}.component-cards{grid-template-columns:1fr}.hero-copy{max-width:85%;padding:25px}.hero-art{opacity:.4}.hero-copy h2{font-size:23px}.page-footer{display:block}.hero-status{display:none}.component-main{padding:16px}.demo-stage{padding:12px}.filter-row{flex-wrap:wrap}.topbar-actions{gap:9px}.table-container{padding:0 8px}.page-heading{align-items:flex-start}.page-heading h1{font-size:23px}}
@media(max-width:760px){.chart-container{min-height:0;margin-bottom:18px}.chart-container svg{height:auto;min-height:155px}.hero-copy h2{font-size:21px;letter-spacing:-.6px}}
@media(max-width:560px){.topbar-actions>.icon-btn[data-page="settings"]{display:inline-grid}.breadcrumb{min-width:0}.breadcrumb #breadcrumb-current{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}

/* Layui supplies interaction primitives; these overrides give them BlackAdmin's quieter surface. */
#workspace :is(.layui-btn,.layui-btn-primary,.layui-btn-normal,.layui-btn-danger){height:36px;padding:0 14px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font-size:12px;line-height:34px;box-shadow:0 1px 2px #142e2710;transition:transform .16s,border-color .16s,box-shadow .16s,background .16s}
#workspace :is(.layui-btn,.layui-btn-primary,.layui-btn-normal):hover{border-color:var(--theme-accent-line);background:var(--theme-selected);color:var(--primary-dark);transform:translateY(-1px);box-shadow:0 5px 14px var(--theme-focus)}
#workspace .layui-btn-primary{border-color:var(--primary);background:var(--primary);color:#fff}#workspace .layui-btn-primary:hover{background:var(--primary-dark);color:#fff}
#workspace .layui-btn-danger{border-color:var(--theme-danger-line);background:var(--theme-danger-bg);color:var(--danger)}
#workspace :is(.layui-input,.layui-select,.layui-textarea,.layui-form-select dl){border-color:var(--line);border-radius:8px;background:var(--surface);color:var(--ink);box-shadow:none;transition:border-color .16s,box-shadow .16s}
#workspace :is(.layui-input,.layui-select,.layui-textarea):focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--theme-focus)}
#workspace .layui-table-view{overflow:hidden;border:1px solid var(--line);border-radius:11px;box-shadow:0 2px 8px #183e3008}
#workspace .layui-table-view .layui-table-header{border-radius:10px 10px 0 0}#workspace .layui-table-view .layui-table-cell{padding:0 15px}
#workspace :is(.layui-laypage a,.layui-laypage span,.layui-laypage input,.layui-laypage select){border-radius:6px}
#workspace .layui-form-checked[lay-skin=primary]>i{border-color:var(--primary)!important;background-color:var(--primary)!important}
.snippet-hint{display:flex;align-items:center;gap:8px;margin:14px 0 0;padding:10px 13px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft);color:var(--text-secondary);font-size:11px;cursor:pointer;transition:all .16s}.snippet-hint:hover{border-color:var(--theme-accent-line);color:var(--primary);background:var(--theme-selected)}.snippet-hint svg{width:14px;height:14px}.snippet-hint svg:last-child{margin-left:auto}
.profile-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:22px;align-items:start}.profile-grid .panel{min-width:0}.profile-grid .panel-body{padding:24px}.profile-grid .form-hint{line-height:1.7}@media(max-width:900px){.profile-grid{grid-template-columns:1fr}}
.dictionary-panel{overflow:hidden;border-color:var(--line);box-shadow:0 5px 24px #173e3008}.dictionary-panel .table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px;border-bottom:1px solid var(--line)}.dictionary-panel .table-container{padding:0 12px}.dictionary-table{width:100%;border-collapse:separate;border-spacing:0;font-size:12px}.dictionary-table th{padding:13px 12px;background:var(--surface-soft);color:var(--text-secondary);font-size:10px;font-weight:550;letter-spacing:.35px;text-align:left;border-bottom:1px solid var(--line)}.dictionary-table th:first-child{border-radius:7px 0 0 0}.dictionary-table th:last-child{border-radius:0 7px 0 0}.dictionary-table td{padding:13px 12px;border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent);color:var(--ink);vertical-align:middle}.dictionary-table tbody tr{transition:background .15s}.dictionary-table tbody tr:hover{background:var(--theme-hover)}.dictionary-table tbody tr:last-child td{border-bottom:0}.dictionary-category{display:inline-flex;padding:3px 7px;margin-right:5px;border:1px solid var(--theme-accent-line);border-radius:6px;background:var(--theme-selected);color:var(--primary);font-size:10px}.dictionary-code,.dictionary-value{font:11px/1.6 ui-monospace,Consolas,monospace;color:var(--text-secondary)}.dictionary-label{display:block;font-weight:550}.dictionary-remark{display:block;margin-top:4px;color:var(--text-secondary);font-size:10px}.dictionary-value{padding:4px 7px;border:1px solid var(--line);border-radius:6px;background:var(--surface-soft)}.dictionary-color{display:inline-flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:10px}.color-dot{width:7px;height:7px;border-radius:50%;background:#99a2aa;box-shadow:0 0 0 3px #99a2aa18}.color-dot.green{background:#35a77e;box-shadow:0 0 0 3px #35a77e1c}.color-dot.blue{background:#5388dc;box-shadow:0 0 0 3px #5388dc1c}.color-dot.violet{background:#9367cf;box-shadow:0 0 0 3px #9367cf1c}.color-dot.orange{background:#e49a48;box-shadow:0 0 0 3px #e49a481c}.color-dot.red{background:#dc6871;box-shadow:0 0 0 3px #dc68711c}.color-dot.teal{background:#1cae9a;box-shadow:0 0 0 3px #1cae9a1c}.dictionary-sort{display:inline-grid;min-width:27px;height:25px;place-items:center;border-radius:6px;background:var(--surface-soft);color:var(--text-secondary);font-variant-numeric:tabular-nums}.dictionary-actions{display:flex;gap:6px}.dictionary-actions .table-action{width:30px;height:30px;justify-content:center;margin:0;padding:0;border-radius:8px}.dictionary-actions .table-action svg{width:13px;height:13px}.dictionary-panel .dictionary-search{display:flex;align-items:center;gap:8px;min-width:210px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text-secondary)}.dictionary-search svg{width:14px;height:14px;flex:none}.dictionary-search .search-input{height:34px;min-width:0;border:0;outline:0;background:transparent;color:var(--ink);font:inherit}.dictionary-panel .filter-chip{border-radius:7px}.dictionary-panel .table-footer-note{padding:12px 22px 16px}
@media(max-width:760px){.dictionary-panel .table-toolbar{align-items:stretch;flex-direction:column;padding:13px}.dictionary-panel .dictionary-search{min-width:0}.dictionary-panel .table-container{overflow:auto}.dictionary-table{min-width:780px}}
.dictionary-search .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.demo-thumb{object-fit:cover}
.demo-status{line-height:1.35}.demo-file,.demo-link{line-height:1.4}
.chart-demo-toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:12px}.chart-demo-mode{padding:7px 10px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--text-secondary);font-size:11px;cursor:pointer;transition:all .18s}.chart-demo-mode:hover,.chart-demo-mode.active{border-color:var(--theme-accent-line);background:var(--theme-selected);color:var(--primary);box-shadow:0 2px 8px var(--theme-focus)}.chart-demo-note{margin-left:auto;color:var(--muted);font-size:10px}.chart-demo-card{overflow:hidden;border:1px solid var(--line);border-radius:12px;background:linear-gradient(145deg,var(--surface),var(--surface-soft));box-shadow:0 7px 24px #183e3007}.chart-demo-heading{display:flex;align-items:center;justify-content:space-between;padding:17px 20px 0}.chart-demo-heading strong,.chart-demo-heading small{display:block}.chart-demo-heading strong{color:var(--ink);font-size:13px;font-weight:550}.chart-demo-heading small{margin-top:5px;color:var(--text-secondary);font-size:10px}.chart-live-dot{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border:1px solid var(--theme-success-line);border-radius:20px;background:var(--theme-success-bg);color:var(--theme-success-text);font-size:9px}.chart-live-dot:before{width:5px;height:5px;border-radius:50%;background:currentColor;box-shadow:0 0 7px currentColor;content:''}.echarts-canvas{width:100%;height:310px}.chart-load-error{margin:15px;padding:12px;border:1px solid #f1d8d9;border-radius:8px;background:#fff7f7;color:#b8525a;font-size:11px}.chart-demo-card:has(.chart-load-error:not([hidden])) .echarts-canvas{display:none}
@media(max-width:760px){.demo-stage:has(#demo-table) .layui-table-view{overflow-x:auto}.demo-stage:has(#demo-table) .layui-table-header,.demo-stage:has(#demo-table) .layui-table-body{min-width:757px}}
@media(max-width:760px){.chart-demo-heading{padding:14px 14px 0}.echarts-canvas{height:265px}.chart-demo-note{width:100%;margin:4px 0 0 2px}}
.table-demo-toolbar{display:flex;flex-direction:column;gap:14px;margin-bottom:14px}.table-demo-tabs{display:flex;gap:5px;align-items:center;padding:4px;width:max-content;max-width:100%;overflow:auto;border:1px solid #e7efeb;border-radius:10px;background:linear-gradient(120deg,#f7fbf9,#f6f8fb)}.table-demo-tab{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;padding:8px 11px;border:0;border-radius:7px;background:transparent;color:#718681;font-size:11px;cursor:pointer;transition:all .18s ease}.table-demo-tab span{display:inline-grid;place-items:center;min-width:19px;height:19px;padding:0 5px;border-radius:10px;background:#e9f0ed;color:#78908a;font-size:9px}.table-demo-tab:hover{color:#127d67;background:#edf8f3}.table-demo-tab.active{color:#137e68;background:#fff;box-shadow:0 2px 8px #254f3d12,0 0 0 1px #e5efea}.table-demo-tab.active span{background:#e5f6ef;color:#11866d}.demo-stage:has(#demo-table){padding:18px 20px 12px}.demo-stage #demo-table+.form-hint{margin:10px 2px 0}.order-cell,.order-product{display:flex;align-items:center;gap:10px}.order-cell{flex-direction:column;align-items:flex-start;gap:3px;line-height:1.5}.order-cell strong{font:10px/1.5 Consolas,monospace;color:#456d63}.order-cell small{color:#92a39e;font-size:10px}.order-product{font-size:11px;color:#526b65}.demo-thumb{display:grid;place-items:center;flex:0 0 31px;width:31px;height:31px;border:1px solid #d8eee6;border-radius:9px;background:radial-gradient(circle at 30% 25%,#ffffff,#d8f3e9 58%,#cae9e6);color:#278c78;font-size:12px;font-weight:600;box-shadow:inset 0 1px #ffffff}.demo-amount{font-size:11px;font-variant-numeric:tabular-nums;color:#355c51}.demo-status{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border:1px solid transparent;border-radius:6px;font-size:10px;white-space:nowrap}.demo-status:before{content:'';width:5px;height:5px;border-radius:50%;background:currentColor;box-shadow:0 0 6px currentColor}.demo-status.warning{color:#ac7a2b;background:#fff9e9;border-color:#f3e7c9}.demo-status.enabled{color:#18856c;background:#ebf8f2;border-color:#d8eee4}.demo-status.muted{color:#82918f;background:#f3f5f5;border-color:#e7ebea}.demo-tags{display:flex;gap:4px;flex-wrap:wrap}.demo-tags span{padding:3px 6px;border:1px solid #e2eae7;border-radius:5px;background:linear-gradient(140deg,#fbfdfc,#f3f7f5);color:#738781;font-size:9px;line-height:1.4}.demo-file,.demo-link{display:inline-flex;align-items:center;gap:5px;max-width:130px;padding:4px 6px;border:1px solid transparent;border-radius:6px;background:transparent;color:#60837a;font-size:10px;cursor:pointer;text-align:left}.demo-file{border-color:#e8efec;background:#fafcfb}.demo-file svg{flex:0 0 13px;width:13px;height:13px;color:#3d9d83}.demo-file span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.demo-file:hover{border-color:#bbdfd1;background:#f1faf6;color:#147e66}.demo-link{color:#178a73}.demo-link:hover{background:#eff9f4;color:#0b654e}.component-form-demo{grid-template-columns:repeat(2,minmax(0,1fr));gap:17px 20px;max-width:900px}.component-form-demo .form-field label em{color:#d77a78;font-style:normal}.component-form-demo input[type=color]{height:39px;padding:4px}.component-form-demo input[type=range]{accent-color:#159e7c}.component-form-demo .field-option{font-size:11px!important}.region-selects{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.example-field-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0 19px}.example-field-list>div{display:grid;grid-template-columns:minmax(100px,.7fr) 68px 1.4fr;align-items:center;gap:8px;padding:10px;border:1px solid #e8efec;border-radius:8px;background:linear-gradient(120deg,#fff,#fbfdfc)}.example-field-list code{font-size:10px;overflow-wrap:anywhere}.example-field-list strong{font-size:10px;color:#3e7162;font-weight:500}.example-field-list span{font-size:10px;color:#82938e;line-height:1.6}.component-form-demo .full{grid-column:1/-1}
@media(max-width:760px){.component-form-demo{grid-template-columns:1fr}.example-field-list{grid-template-columns:1fr}.example-field-list>div{grid-template-columns:minmax(90px,.7fr) 58px 1.4fr}.region-selects{grid-template-columns:1fr}.table-demo-tabs{width:100%;justify-content:flex-start}.demo-stage:has(#demo-table){padding:14px 10px}.table-demo-toolbar .filter-row{flex-wrap:wrap}}

/* 图片字段显示图标，大图按点击加载。 */
.table-image-trigger{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid #d7e5fa;border-radius:9px;color:var(--primary,#4679d9);background:linear-gradient(135deg,#f5f9ff,#eaf2ff);cursor:pointer;transition:transform .15s,box-shadow .15s}
.table-image-trigger:hover{transform:translateY(-2px);box-shadow:0 4px 12px #3b82f622}
.table-image-trigger:focus-visible{outline:2px solid #77a5fa;outline-offset:2px}
.table-image-trigger svg{width:17px;height:17px}
@media(prefers-reduced-motion:reduce){.table-image-trigger{transition:none}}
/* 开发者示例统一二次设计，组件内部仍复用 Layui 的成熟交互。 */
/* 富文本使用本地 Quill，颜色、间距与边框跟随后台主题。 */
.rich-text-shell .ql-toolbar.ql-snow .ql-picker-label,.rich-text-shell .ql-toolbar.ql-snow .ql-picker-item{color:var(--ink,#273449)}.rich-text-shell .ql-tooltip.ql-editing,.rich-text-shell .ql-tooltip{border:1px solid var(--line,#dce5f0);border-radius:9px;background:var(--surface,#fff);color:var(--ink,#273449);box-shadow:0 8px 22px #172f4b20}.rich-text-shell .ql-tooltip input[type=text]{color:var(--ink,#273449);background:var(--surface,#fff);border:1px solid var(--line,#dce5f0)}
.rich-text-editor{min-height:210px}.rich-text-shell .ql-toolbar.ql-snow{display:flex;flex-wrap:wrap;gap:4px;padding:9px;border:1px solid var(--line,#dce5f0);border-radius:12px 12px 0 0;background:var(--surface-soft,#f7f9fc)}.rich-text-shell .ql-toolbar .ql-formats{margin-right:7px}.rich-text-shell .ql-toolbar button,.rich-text-shell .ql-toolbar .ql-picker-label{border-radius:6px}.rich-text-shell .ql-toolbar button:hover,.rich-text-shell .ql-toolbar button.ql-active,.rich-text-shell .ql-toolbar .ql-picker-label:hover{background:color-mix(in srgb,var(--primary,#3b82f6) 12%,transparent)}.rich-text-shell .ql-container.ql-snow{border:1px solid var(--line,#dce5f0);border-top:0;border-radius:0 0 12px 12px;background:var(--surface,#fff);color:var(--ink,#273449);font-family:inherit;font-size:13px}.rich-text-shell .ql-editor{min-height:160px;max-height:360px;overflow:auto;line-height:1.7}.rich-text-shell .ql-editor.ql-blank::before{color:var(--muted,#8593a6);font-style:normal}.rich-text-shell .ql-editor a,.rich-text-display a{color:var(--primary,#3b82f6);text-decoration:underline;text-underline-offset:2px}.rich-text-shell .ql-toolbar.ql-snow .ql-picker-options{background:var(--surface,#fff);border-color:var(--line,#dce5f0);color:var(--ink,#273449)}.rich-text-shell .ql-toolbar.ql-snow .ql-stroke{stroke:var(--muted,#74849a)}.rich-text-shell .ql-toolbar.ql-snow .ql-fill{fill:var(--muted,#74849a)}.rich-text-shell .ql-toolbar.ql-snow button:hover .ql-stroke,.rich-text-shell .ql-toolbar.ql-snow button.ql-active .ql-stroke{stroke:var(--primary,#3b82f6)}.rich-text-shell .ql-toolbar.ql-snow button:hover .ql-fill,.rich-text-shell .ql-toolbar.ql-snow button.ql-active .ql-fill{fill:var(--primary,#3b82f6)}.rich-text-display{min-height:160px;padding:20px;color:var(--ink,#273449);font-size:13px;line-height:1.8;overflow-wrap:anywhere}.rich-text-display :first-child{margin-top:0}.rich-text-display h1,.rich-text-display h2,.rich-text-display h3{font-weight:700;line-height:1.4;margin:16px 0 8px}.rich-text-display h1{font-size:22px}.rich-text-display h2{font-size:19px}.rich-text-display h3{font-size:16px}.rich-text-display p,.rich-text-display ul,.rich-text-display ol,.rich-text-display blockquote,.rich-text-display pre{margin:0 0 12px}.rich-text-display blockquote{padding-left:14px;border-left:3px solid var(--primary,#3b82f6);color:var(--muted,#74849a)}.rich-text-display pre{padding:12px;border:1px solid var(--line,#dce5f0);border-radius:8px;background:var(--surface-soft,#f7f9fc);white-space:pre-wrap}.rich-text-display ul,.rich-text-display ol{padding-left:24px}.rich-text-editor[hidden],.rich-text-editor+textarea[hidden]{display:none!important}
.component-layout,.component-main{scroll-margin-top:calc(var(--topbar-height) + 16px)}.component-nav{position:sticky;top:calc(var(--topbar-height) + 16px);align-self:start;max-height:calc(100vh - var(--topbar-height) - 32px);overflow:auto}.component-nav input[type=search]{width:100%;margin:0 0 8px;padding:9px 10px;font-size:12px;border:1px solid var(--border,#dfe7f2);border-radius:8px;background:var(--surface,#fff);color:var(--text,#273449)}#component-search-count{display:block;margin-bottom:10px;color:var(--muted,#8593a6);font-size:11px}#component-navigation h4{margin:18px 12px 7px;color:var(--muted,#8292aa);font-size:11px;font-weight:500}#component-navigation .component-nav-item{font-size:12px;min-height:36px}.component-demo-scope{font-size:13px;color:var(--text,#273449)}.component-demo-scope [hidden],#component-navigation [hidden]{display:none!important}.component-demo-scope .form-field>label{font-size:12px!important}.component-demo-scope p,.component-demo-scope .form-hint{font-size:12px!important;line-height:1.7}.component-demo-scope .form-grid{max-width:none}.component-result{padding:15px;margin:20px 0 0;border:1px solid var(--border,#dce6f4);border-radius:10px;background:var(--surface-soft,#f4f7fc);font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere}.input-with-action{display:flex;gap:8px;align-items:center}.input-with-action input{min-width:0;flex:1}.component-widget{padding:16px 5px}.component-demo-scope .layui-form-select dl{border-radius:10px;border-color:#dce5f5;box-shadow:0 12px 30px #244e9220}.component-demo-scope .layui-form-select dl dd.layui-this{background:var(--primary,#3b82f6);color:#fff}.component-demo-scope .layui-form-radio>i:hover,.component-demo-scope .layui-form-radioed>i{color:var(--primary,#3b82f6)}.component-demo-scope .layui-form-switch{border-radius:20px}.component-demo-scope .layui-form-onswitch,.component-demo-scope .layui-slider-bar{background:var(--primary,#3b82f6);border-color:var(--primary,#3b82f6)}.component-demo-scope .layui-tree-entry{padding:9px 8px;border-radius:8px;height:auto}.component-demo-scope .layui-tree-entry:hover{background:#edf3ff}.component-demo-scope .layui-tree-txt{font-size:13px}.component-demo-scope .layui-transfer-box{border:1px solid #dce5f5;border-radius:12px;overflow:hidden;background:var(--surface,#fff)}.component-demo-scope .layui-transfer-header{background:#f3f7ff;border-color:#e1e9f7}.component-demo-scope .layui-transfer-search{padding:9px}.component-transfer{overflow-x:auto;margin-bottom:16px}.component-demo-scope .layui-rate{color:#df9c39}.component-steps{display:flex;padding:0;list-style:none;gap:10px;margin:0 0 22px}.component-steps li{flex:1;padding:12px;border-bottom:2px solid #dce5f4;color:#8493a8}.component-steps li.active{color:var(--primary,#3b82f6);border-color:var(--primary,#3b82f6)}.component-demo-scope [role=tabpanel]{padding:22px 8px;min-height:110px}.component-accordion details{padding:16px;margin:10px 0;border:1px solid var(--border,#dce5f5);border-radius:10px;background:var(--surface,#fff)}.component-accordion summary{cursor:pointer;font-weight:600}.component-timeline{list-style:none;border-left:2px solid #d6e5fc;padding-left:22px}.component-timeline li{position:relative;margin-bottom:23px}.component-timeline li::before{content:'';position:absolute;width:10px;height:10px;border-radius:50%;left:-28px;top:8px;background:#bfd3f5}.component-timeline li.active::before{background:var(--primary,#3b82f6);box-shadow:0 0 0 5px #3b82f617}.component-timeline time{display:block;font-size:11px;color:#8191a9}.component-progress{height:9px;border-radius:8px;background:#e7eef9;margin:14px 0;overflow:hidden}.component-progress span{display:block;height:100%;border-radius:8px;background:linear-gradient(90deg,#3b82f6,#8b5cf6);transition:width .2s}.component-file-row{display:flex;align-items:center;gap:12px;padding:10px;margin:8px 0;border:1px solid #e0e8f5;border-radius:10px}.component-file-row img{width:45px;height:45px;object-fit:cover;border-radius:8px}.component-file-row span{flex:1;min-width:0;overflow-wrap:anywhere}.component-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:20px 0}.component-stat-grid article{padding:22px;border:1px solid #dfe8fa;border-radius:15px;background:linear-gradient(130deg,#f6faff,#eef1ff)}.component-stat-grid strong{display:block;font-size:28px;margin:8px 0}.component-skeleton{padding:24px;display:grid;gap:12px}.component-skeleton span{height:22px;border-radius:6px;background:linear-gradient(90deg,#e9eef6,#f7f9fd,#e9eef6);background-size:200% 100%;animation:component-skeleton 1.5s infinite}.component-skeleton span:last-child{width:70%}@keyframes component-skeleton{to{background-position:-200% 0}}@media(max-width:760px){.component-nav{position:static;max-height:320px}.component-steps{font-size:11px;gap:3px}.component-steps li{padding:9px 3px}.component-stat-grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.component-skeleton span{animation:none}.component-progress span{transition:none}}
