:root {
  --workspace-max-width: 1600px;
}
[hidden] { display:none!important; }

/* 工作区专属：内容最大宽度与居中 */
.admin-main>* { max-width:var(--workspace-max-width); margin-right:auto; margin-left:auto; }

/* 列表页操作按钮靠右 */
.search-bar { flex-wrap:nowrap; }
.search-bar .search-bar-action { margin-left:auto; flex:0 0 auto; }
@media(max-width:640px) { .search-bar { flex-wrap:wrap; }.search-bar .search-bar-action { width:100%; margin-left:0; } }

/* 顶部面包屑与全局搜索 */
.top-crumb { display:flex; align-items:center; gap:8px; margin-left:18px; color:var(--text-weak); font-size:13px; white-space:nowrap; }
.top-crumb b { color:var(--text-main); font-weight:550; }
.top-crumb span { color:#c4bdcf; }
.top-search { position:relative; display:flex; align-items:center; margin-right:10px; }
.top-search input { width:190px; height:36px; padding:0 58px 0 32px; border:1px solid var(--border-strong); border-radius:10px; outline:0; color:var(--text-main); background:var(--bg-subtle); font-size:12px; transition:border-color .15s ease,box-shadow .15s ease; }
.top-search input:focus { border-color:var(--admin-primary); box-shadow:0 0 0 3px rgba(var(--admin-primary-rgb),.1); background:var(--bg-card); }
.top-search::before { content:'⌕'; position:absolute; left:10px; color:var(--text-weak); font-size:15px; pointer-events:none; }
.top-search kbd { position:absolute; right:8px; padding:2px 6px; border:1px solid var(--border-color); border-radius:5px; color:var(--text-weak); background:var(--bg-card); font-family:inherit; font-size:10px; pointer-events:none; }
.top-search-go { position:absolute; right:44px; display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; border:0; border-radius:7px; color:var(--text-sub); background:transparent; font-size:15px; cursor:pointer; }
.top-search-go:hover { color:var(--admin-primary); background:var(--admin-primary-light); }
@media(max-width:1100px){.top-search{display:none}.top-crumb{display:none}}

/* 主题设置弹层 */
.theme-settings { position:relative; }
.theme-settings-panel { position:absolute; top:calc(100% + 13px); right:0; width:284px; padding:18px 20px 21px; border:1px solid var(--border-color); border-radius:12px; background:var(--bg-card); box-shadow:0 14px 36px rgba(31,24,40,.14); }
.theme-settings-title { padding:0 0 15px; color:var(--text-sub); border-bottom:1px solid var(--border-color); font-size:13px; text-align:center; }
.theme-settings .theme-switch { display:flex!important; justify-content:space-between; gap:12px; padding:20px 0 0; }
.theme-settings .theme-dot { position:relative; width:24px; height:24px; padding:0; border:2px solid var(--bg-card); }
.theme-settings .theme-dot.selected { box-shadow:none; }
.theme-settings .theme-dot.selected::after { content:""; position:absolute; top:5px; left:7px; width:6px; height:9px; border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg); }

/* 通知面板 */
.admin-notifications { position:relative; }
.admin-notifications .tb-icon-btn { position:relative; }
.notification-count { position:absolute; top:-3px; right:-4px; display:flex; align-items:center; justify-content:center; min-width:17px; height:17px; padding:0 4px; border:2px solid var(--bg-card); border-radius:9px; color:#fff; background:#e45867; font-size:9px; line-height:1; }
.notification-panel { position:absolute; top:calc(100% + 13px); right:0; width:340px; overflow:hidden; border:1px solid var(--border-color); border-radius:12px; background:var(--bg-card); box-shadow:0 14px 36px rgba(31,24,40,.14); }
.notification-head { display:flex; align-items:center; justify-content:space-between; padding:17px 18px; border-bottom:1px solid var(--border-color); }
.notification-head strong { font-size:14px; }.notification-head span { color:var(--text-weak); font-size:11px; }
.notification-item { display:flex; align-items:center; gap:12px; padding:15px 18px; border-bottom:1px solid var(--border-color); transition:background .15s ease; }
.notification-item:last-child { border-bottom:0; }.notification-item:hover { background:var(--bg-subtle); }
.notification-icon { display:grid; place-items:center; flex:0 0 34px; width:34px; height:34px; border-radius:9px; color:var(--admin-primary); background:var(--admin-primary-light); }
.notification-copy { flex:1; min-width:0; }.notification-copy strong { display:block; font-size:12px; }.notification-copy small { display:block; margin-top:4px; color:var(--text-sub); font-size:11px; }
.notification-item>b { min-width:20px; color:var(--admin-primary); font-size:16px; text-align:right; }
.notification-empty { padding:28px 18px; color:var(--text-sub); font-size:12px; text-align:center; }

/* 右上角用户菜单 */
.user-menu { position:relative; }
.tb-user-trigger { display:flex; align-items:center; gap:9px; padding:0; border:0; color:inherit; background:transparent; font:inherit; cursor:pointer; }
.user-menu-panel { position:absolute; right:0; top:calc(100% + 10px); width:210px; padding:8px; border:1px solid var(--border-color); border-radius:12px; background:var(--bg-card); box-shadow:0 14px 34px rgba(31,24,40,.16); z-index:300; }
.user-menu-head { padding:10px 12px; border-bottom:1px solid var(--border-color); margin-bottom:6px; }
.user-menu-head strong { display:block; font-size:13px; }
.user-menu-head small { display:block; margin-top:3px; color:var(--text-weak); font-size:10px; }
.user-menu-item { display:block; padding:9px 12px; border-radius:8px; color:var(--text-sub); font-size:12px; cursor:pointer; }
.user-menu-item:hover { background:var(--bg-subtle); color:var(--admin-primary); }
.user-menu-item.danger { color:var(--danger); }

/* 侧栏搜索（紧凑布局 + 全部展开按钮） */
.admin-aside .nav-search { display:flex; align-items:center; gap:7px; height:auto; margin:0 0 12px; padding:0; border:0; background:transparent; }
.admin-aside .nav-search:focus-within { box-shadow:none; }
.admin-aside .nav-search-field { display:flex; align-items:center; flex:1; min-width:0; gap:6px; height:36px; padding:0 8px; border:1px solid var(--border-color); border-radius:7px; background:var(--bg-subtle); }
.admin-aside .nav-search-field:focus-within { border-color:var(--admin-primary); }
.admin-aside .nav-search-field > span { display:flex; flex-shrink:0; color:var(--text-weak); }
.admin-aside .nav-search-field input { flex:1; min-width:0; width:0; height:32px; padding:0; border:0; background:transparent; box-shadow:none; }
.admin-aside .nav-search .nav-search-expand { position:static; display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; height:36px; padding:0 7px; border:1px solid var(--border-color); border-radius:7px; background:var(--bg-subtle); color:var(--text-sub); font-size:11px; white-space:nowrap; }
.admin-aside .nav-search .nav-search-expand:hover { color:var(--admin-primary); border-color:var(--admin-primary); }
.admin-aside .nav-search #menuSearchClear { position:static; width:19px; height:24px; align-items:center; justify-content:center; padding:0; border:0; }
.admin-aside .nav-search button:focus-visible { outline:2px solid var(--admin-primary); outline-offset:2px; }
body.sidebar-collapsed .admin-aside .nav-search-expand { display:none; }

.admin-aside .nav-dashboard { margin-bottom:12px; }
.admin-aside .menu-group { margin:0 0 3px; padding:0 0 3px; border:0; }
.admin-aside .mg-children { border-left:0; }

/* 组织权限弹窗 */
.permission-node { min-width:0; padding:10px 11px; border:1px solid var(--border-color); border-radius:9px; background:var(--bg-card); }
.permission-page { display:flex; align-items:center; gap:7px; color:var(--text-main); font-size:12px; font-weight:600; }
.permission-actions { display:flex; flex-wrap:wrap; gap:6px 10px; margin:8px 0 0 23px; }
.permission-actions label { display:inline-flex; align-items:center; gap:4px; color:var(--text-sub); font-size:11px; font-weight:400; white-space:nowrap; }
.permission-actions input { width:13px; height:13px; }
.modal-box:has(.permission-node) { width:min(1040px,calc(100% - 40px)); }
.modal-box:has(.permission-node) .permission-tree { max-height:48vh; }
@media(max-width:800px) { .permission-children { grid-template-columns:1fr 1fr; } }
@media(max-width:640px) { .permission-children { grid-template-columns:1fr; }.permission-tools { align-items:flex-start; gap:10px; }.permission-tools>span:first-child { line-height:1.6; } }

/* 上传尺寸提示 */
.oss-dimensions { color:var(--text-weak); font-size:11px; white-space:nowrap; }

/* 取色器（admin-color-picker.js） */
.du-color-field { position:relative; display:flex; align-items:center; }
.du-color-field input.form-control { padding-left:40px; padding-right:34px; cursor:pointer; caret-color:transparent; }
.du-color-swatch { position:absolute; left:11px; width:20px; height:20px; border-radius:6px; border:1px solid var(--border-strong); background:transparent; pointer-events:none; transition:background .12s ease; }
.du-color-swatch:empty { background:repeating-conic-gradient(#e8e6ed 0 25%, #fff 0 50%) 0 0/10px 10px; }
.du-color-caret { position:absolute; right:13px; color:var(--text-weak); font-size:12px; pointer-events:none; }
.du-color-clear { position:absolute; right:7px; display:none; align-items:center; justify-content:center; width:22px; height:22px; padding:0; border:0; border-radius:50%; background:transparent; color:var(--text-weak); font-size:15px; line-height:1; cursor:pointer; }
.du-color-clear:hover { background:var(--bg-subtle); color:var(--text-main); }
.du-color-panel { position:absolute; z-index:500; display:none; width:268px; max-width:calc(100vw - 24px); padding:14px; border:1px solid var(--border-strong); border-radius:12px; background:var(--bg-card); box-shadow:var(--shadow); }
.du-color-panel.show { display:block; }
.cp-sv { position:relative; height:170px; overflow:hidden; border-radius:9px; cursor:crosshair; touch-action:none; }
.cp-sv-white { position:absolute; inset:0; background:linear-gradient(to right, #fff, rgba(255,255,255,0)); }
.cp-sv-black { position:absolute; inset:0; background:linear-gradient(to top, #000, rgba(0,0,0,0)); }
.cp-sv-dot { position:absolute; width:14px; height:14px; border:2.5px solid #fff; border-radius:50%; box-shadow:0 0 0 1px rgba(0,0,0,.4), inset 0 0 0 1px rgba(0,0,0,.2); transform:translate(-50%,-50%); pointer-events:none; }
.cp-hue { position:relative; height:12px; margin-top:10px; border-radius:6px; background:linear-gradient(to right, #f00 0%, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%); cursor:crosshair; touch-action:none; }
.cp-hue-dot { position:absolute; top:50%; width:16px; height:16px; border:3px solid #fff; border-radius:50%; box-shadow:0 0 0 1px rgba(0,0,0,.35); transform:translate(-50%,-50%); pointer-events:none; }
.cp-fields { display:flex; align-items:center; gap:10px; margin-top:12px; }
.cp-swatch { width:34px; height:34px; flex:0 0 34px; border:1px solid var(--border-strong); border-radius:50%; }
.cp-rgb { display:flex; flex:1; gap:6px; min-width:0; }
.cp-rgb label { flex:1; min-width:0; display:flex; flex-direction:column; align-items:center; gap:2px; color:var(--text-weak); font-size:10px; }
.cp-rgb input { width:100%; height:30px; padding:0 4px; border:1px solid var(--border-color); border-radius:7px; background:var(--bg-card); color:var(--text-main); font-size:12px; text-align:center; }
.cp-rgb input:focus, .cp-hex:focus { outline:none; border-color:var(--admin-primary); }
.cp-hex { width:84px; height:30px; padding:0 8px; border:1px solid var(--border-color); border-radius:7px; background:var(--bg-card); color:var(--text-main); font-size:12px; text-transform:uppercase; }

/* 暗色模式：工作区细化 */
:root[data-mode="dark"] .admin-aside { background:#211e29; }
:root[data-mode="dark"] .admin-aside .nav-search { background:transparent; }
:root[data-mode="dark"] .admin-aside .nav-search input { border:0; background:transparent; }
:root[data-mode="dark"] .nav-dashboard.active,:root[data-mode="dark"] .admin-aside .menu-item.active { background:#302a39; }

/* 工作区响应式微调 */
@media (min-width:1700px) { .admin-main { padding-right:38px; padding-left:38px; }.metric-card { padding:24px; } }
@media (max-width:1280px) {
  .admin-topbar .logo { min-width:174px; }
  .metric-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .metric-card { border-bottom:1px solid var(--border-color); }
  .metric-card:nth-child(3n) { border-right:0; }
  .metric-card:nth-child(n+4) { border-bottom:0; }
}
@media (max-width:1080px) { .dashboard-main-grid { grid-template-columns:1fr; }.trend-card,.todo-card { min-height:0; }.theme-switch { display:none; } }
@media (max-width:960px) { .admin-topbar { padding:0 18px; }.admin-topbar .logo { min-width:0; }.admin-aside { padding-top:26px; }.admin-main { padding-top:calc(var(--topbar-height) + 22px); }.metric-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }.dashboard-insight-grid { gap:16px; } }
@media (max-width:640px) {
  :root { --topbar-height:64px; }
  .admin-topbar { gap:8px; padding:0 12px; }
  .logo-badge { width:36px; height:36px; border-radius:10px; }
  .tb-right { gap:1px; }
  .admin-main { padding:calc(var(--topbar-height) + 18px) 12px 28px; }
  .page-heading { margin-bottom:19px; }
  .page-heading h1 { font-size:23px; }
  .page-heading p { font-size:12px; line-height:1.7; }
  .card { margin-bottom:14px; padding:19px 16px; border-radius:13px; }
  .ops-summary { gap:18px; margin-bottom:14px; padding:22px 20px; border-radius:13px; }
  .ops-summary::after { display:none; }
  .ops-summary strong { font-size:19px; }
  .summary-actions { width:100%; }
  .summary-actions a { flex:1; justify-content:center; }
  .metric-grid { grid-template-columns:repeat(2,minmax(0,1fr)); margin-bottom:14px; border-radius:13px; }
  .metric-card { padding:18px 15px; }
  .metric-card:nth-child(3n) { border-right:1px solid var(--border-color); }
  .metric-card:nth-child(2n) { border-right:0; }
  .metric-card:nth-child(n+4) { border-bottom:1px solid var(--border-color); }
  .metric-card:nth-child(n+5) { border-bottom:0; }
  .metric-card strong { font-size:26px; }
  .metric-card .metric-icon { top:17px; right:13px; width:27px; height:27px; }
  .metric-card .metric-foot { max-width:90px; line-height:1.5; }
  .dashboard-main-grid,.dashboard-insight-grid,.dashboard-lower { gap:14px; margin-top:0; }
  .dashboard-insight-grid,.dashboard-lower { margin-top:0; }
  .todo-list>a { margin-right:-5px; margin-left:-5px; padding-right:5px; padding-left:5px; }
  .todo-list>a:not(:last-child)::after { left:22px; }
  .quick-grid { grid-template-columns:repeat(3,1fr); }
  .modal-box .modal-body { padding:20px 18px 0; }
  .modal-box .modal-body .form-actions { margin-right:-18px; margin-left:-18px; padding-right:18px; padding-left:18px; }
  .theme-settings-panel { right:-42px; }
}
