*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC',Arial,sans-serif;background:#f5f7fb;color:#1f2937}.install-card,.login{max-width:860px;margin:60px auto;background:#fff;padding:32px;border-radius:18px;box-shadow:0 10px 30px #0001}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}label{display:flex;flex-direction:column;gap:6px;font-size:14px}input,select,textarea{border:1px solid #d8dee9;border-radius:10px;padding:10px;font-size:14px;background:#fff}button{border:0;border-radius:10px;padding:10px 16px;background:#0862EC;color:#fff;cursor:pointer}button.light{background:#e8f1ff;color:#0862EC}.app{display:flex;min-height:100vh}.side{width:220px;background:#0862EC;color:#fff;padding:22px}.brand{font-size:20px;font-weight:700;margin-bottom:25px}.nav a{display:block;color:#d1d5db;text-decoration:none;padding:11px;border-radius:10px;margin:4px 0}.nav a.active,.nav a:hover{background:#0862EC;color:#fff}.main{flex:1;padding:24px}.top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.card{background:#fff;border-radius:16px;padding:20px;box-shadow:0 4px 16px #0000000a}.num{font-size:28px;font-weight:700}.toolbar{display:flex;gap:10px;margin-bottom:12px}.table{width:100%;border-collapse:collapse;background:#fff;border-radius:14px;overflow:hidden}.table th,.table td{border-bottom:1px solid #eef2f7;padding:11px;text-align:left;font-size:14px}.modal{position:fixed;inset:0;background:#0005;display:none;align-items:center;justify-content:center}.modal.show{display:flex}.box{background:#fff;width:720px;max-height:90vh;overflow:auto;border-radius:18px;padding:24px}pre{white-space:pre-wrap;background:#0862EC;color:#e5e7eb;padding:12px;border-radius:10px}.danger{background:#dc2626}.hide{display:none}@media(max-width:900px){.grid,.cards{grid-template-columns:1fr}.side{width:170px}.box{width:94vw}}
.error{color:#b91c1c;white-space:pre-wrap}.login button:disabled{opacity:.6;cursor:not-allowed}

.version{font-size:12px;opacity:.65;margin:0 0 12px 0;}
.notice{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;padding:10px 12px;border-radius:10px;margin-bottom:12px;}
.checks{display:grid;grid-template-columns:repeat(2,minmax(120px,1fr));gap:6px;margin:4px 0 8px}.check{font-weight:400!important;display:flex!important;align-items:center;gap:6px}.check input{width:auto!important}.importbox{grid-column:1/-1;line-height:1.7}.importbox input[type=file]{border:1px dashed #bbb;padding:14px;border-radius:8px;background:#fafafa;width:100%}
.login-footer{margin-top:24px;padding-top:14px;border-top:1px solid #eef2f7;color:#6b7280;font-size:12px;line-height:1.6;text-align:center}.login-footer p{margin:4px 0}.owner-checks{grid-template-columns:repeat(3,minmax(150px,1fr));max-height:260px;overflow:auto;border:1px solid #eef2f7;border-radius:10px;padding:10px}.panel{background:#fff;border-radius:16px;padding:18px;margin-top:14px;box-shadow:0 4px 16px #0000000a}.toolbar label{flex-direction:row;align-items:center;gap:4px}
.login-footer{font-size:12px;line-height:1.6;margin-top:22px;color:#666;max-width:920px;white-space:normal}.login-footer p{margin:4px 0}.perm-group{grid-column:1/-1;border:1px solid #eee;border-radius:10px;padding:12px;margin:6px 0;background:#fafafa}.checks{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.check,.check-inline{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border:1px solid #eee;border-radius:8px;background:white}.full{grid-column:1/-1}.hint{color:#666;font-size:13px}.user-search-box{border:1px solid #eee;border-radius:10px;padding:8px}.user-search-box .userSearch{width:180px;margin-right:8px}
/* v10.4 */
.login-footer{white-space:nowrap;overflow-x:auto;text-align:center;font-size:12px;}
.todo-pending{background:#fff7cc!important;}
.cc-unread{background:#f3f4f6!important;}
.hint{color:#6b7280;font-size:13px;align-self:center;}
@media(max-width:900px){.login-footer{white-space:normal}.table{display:block;overflow-x:auto}.toolbar{flex-wrap:wrap}}
.status-badge{display:inline-block;border-radius:12px;padding:2px 8px;font-size:12px;background:#e5e7eb;color:#0862EC;white-space:nowrap}.status-badge.todo{background:#fef3c7;color:#92400e}.status-badge.cc{background:#e5e7eb;color:#0862EC}.status-badge.done{background:#dcfce7;color:#166534}tr.todo-pending{background:#fff7d6}tr.cc-unread{background:#f3f4f6}.history-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}.history-item{border:1px solid #e5e7eb;border-radius:10px;padding:10px;background:#fafafa}.history-meta{font-size:12px;color:#6b7280;margin-bottom:4px}.flow-list{display:flex;flex-direction:column;gap:8px}.flow-item{border-left:4px solid #d1d5db;background:#fafafa;padding:10px;border-radius:8px}.flow-item.todo{border-left-color:#f59e0b}.flow-item.cc{border-left-color:#9ca3af}.one-line-footer{white-space:nowrap;font-size:12px;color:#666;margin-top:16px;overflow:hidden;text-overflow:ellipsis}
.mini-table{width:100%;border-collapse:collapse;margin-top:8px;font-size:12px;background:#fff}
.mini-table th,.mini-table td{border:1px solid #e5e7eb;padding:6px;text-align:left;vertical-align:top;max-width:260px;word-break:break-all}
.history-json{white-space:pre-wrap;background:#f8fafc;border:1px solid #e5e7eb;border-radius:8px;padding:8px;font-size:12px;max-height:220px;overflow:auto}
.done-row{background:#f0fdf4!important;}
.file-page{max-width:1200px;margin:0 auto;padding:20px}.file-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.file-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.file-layout{display:grid;grid-template-columns:260px 1fr;gap:16px}.file-tree,.file-main{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:14px}.dir-item{display:block;width:100%;text-align:left;border:0;background:transparent;margin:6px 0;padding:9px 10px;border-radius:8px;cursor:pointer}.dir-item.active{background:#0862EC;color:#fff}.dir-item:not(.active):hover{background:#eef5ff;color:#0862EC}.drop-zone{border:2px dashed #cbd5e1;border-radius:12px;padding:18px;text-align:center;background:#f8fafc}.file-actions a,.file-actions button{margin-right:6px}.breadcrumb{font-size:14px;color:#64748b}.muted{color:#64748b}.file-table td{vertical-align:middle}.file-name{font-weight:600}.file-empty{padding:28px;text-align:center;color:#64748b}.page-footer{margin-top:18px;color:#64748b;font-size:12px;text-align:center}

.drop-zone.active{border-color:#0862EC;background:#eef5ff;color:#0862EC}
a{color:#0862EC}


/* v11.3 文件管理与侧边栏美化 */
:root{--fw-primary:#0862EC;--fw-primary-dark:#064fbf;--fw-primary-soft:#eaf2ff;--fw-border:#e6edf7;--fw-text:#102033;--fw-muted:#64748b;}
body{background:linear-gradient(180deg,#f6f9ff 0%,#f3f6fb 100%);color:var(--fw-text)}
.side{background:linear-gradient(180deg,var(--fw-primary) 0%,#064fbf 100%);box-shadow:8px 0 24px rgba(8,98,236,.12);padding:24px 18px;}
.brand{font-size:22px;letter-spacing:.5px;margin-bottom:28px;display:flex;align-items:center;gap:8px;}
.brand:before{content:"";width:10px;height:10px;background:#fff;border-radius:50%;box-shadow:0 0 0 5px rgba(255,255,255,.16)}
.nav a{color:rgba(255,255,255,.78);padding:12px 14px;margin:6px 0;border-radius:14px;transition:all .18s ease;font-weight:500;}
.nav a.active,.nav a:hover{background:rgba(255,255,255,.18);color:#fff;transform:translateX(2px);box-shadow:inset 3px 0 0 rgba(255,255,255,.95)}
.card,.table,.box,.file-tree,.file-main{box-shadow:0 10px 28px rgba(15,35,75,.06);border-color:var(--fw-border)}
.file-page{max-width:1280px;padding:24px}.file-head{background:#fff;border:1px solid var(--fw-border);border-radius:18px;padding:18px 20px;box-shadow:0 10px 28px rgba(15,35,75,.06)}
.file-layout{grid-template-columns:280px 1fr;gap:18px}.file-tree,.file-main{border-radius:18px;padding:18px;background:#fff}.file-tree{background:linear-gradient(180deg,#ffffff 0%,#f9fbff 100%)}
.file-tree h3{margin:0 0 14px;font-size:16px;color:var(--fw-text);display:flex;align-items:center;gap:8px}.file-tree h3:before{content:"";width:6px;height:18px;border-radius:999px;background:var(--fw-primary)}
.dir-item{display:flex;align-items:center;gap:8px;width:100%;text-align:left;border:1px solid transparent;background:#f6f8fc;color:#24364f;margin:8px 0;padding:11px 12px;border-radius:12px;cursor:pointer;transition:all .16s ease;font-weight:500;box-shadow:none;}
.dir-item:not(.active){background:#f6f8fc;color:#24364f;border-color:#edf2f8;}
.dir-item:not(.active):hover{background:#eaf2ff;color:var(--fw-primary);border-color:#cfe0ff;transform:translateX(2px)}
.dir-item.active{background:var(--fw-primary);color:#fff;border-color:var(--fw-primary);box-shadow:0 8px 18px rgba(8,98,236,.25)}
#dir-root.dir-item:not(.active){background:#f6f8fc;color:#24364f;border-color:#edf2f8;}
.drop-zone{border-color:#b8cdf5;background:linear-gradient(180deg,#f8fbff 0%,#f1f6ff 100%);color:#335070;border-radius:16px}.drop-zone.active{border-color:var(--fw-primary);background:#eaf2ff;color:var(--fw-primary)}
.file-toolbar button,.file-toolbar .light{border-radius:12px}.breadcrumb{background:#f6f8fc;border:1px solid #edf2f8;border-radius:12px;padding:10px 12px;color:#42546e}.file-table th{background:#f8fbff;color:#42546e;font-weight:700}.file-actions button,.file-actions a{border-radius:10px}.muted{color:var(--fw-muted)}
@media(max-width:900px){.file-layout{grid-template-columns:1fr}.file-page{padding:14px}.side{width:180px}}


/* v11.4 左侧栏深度美化 + 响应式密度调整 */
:root{--fw-density-desktop:.9;--fw-density-mobile:.75;--fw-sidebar-bg:#0758d4;--fw-sidebar-bg2:#0862EC;--fw-sidebar-active:#ffffff;--fw-sidebar-hover:rgba(255,255,255,.14)}
html{font-size:90%;}
body{letter-spacing:.01em;}
.side{width:210px;padding:20px 14px;background:linear-gradient(180deg,#0862EC 0%,#0758d4 48%,#0648ad 100%);border-right:1px solid rgba(255,255,255,.16);box-shadow:10px 0 30px rgba(8,98,236,.16)}
.brand{font-size:20px;margin-bottom:22px;padding:10px 10px;border-radius:16px;background:rgba(255,255,255,.10);box-shadow:inset 0 1px 0 rgba(255,255,255,.18)}
.brand:before{width:9px;height:9px;box-shadow:0 0 0 4px rgba(255,255,255,.18)}
.nav{display:flex;flex-direction:column;gap:4px}.nav a{position:relative;display:flex;align-items:center;min-height:38px;color:rgba(255,255,255,.78);padding:10px 12px 10px 14px;margin:2px 0;border-radius:14px;transition:background .16s ease,color .16s ease,transform .16s ease,box-shadow .16s ease;font-size:14px;line-height:1.15}.nav a:hover{background:var(--fw-sidebar-hover);color:#fff;transform:translateX(3px);box-shadow:inset 3px 0 0 rgba(255,255,255,.58)}.nav a.active{background:#fff;color:#0862EC;box-shadow:0 10px 22px rgba(0,28,85,.16);transform:none;font-weight:700}.nav a.active:before{content:"";position:absolute;left:7px;top:50%;transform:translateY(-50%);width:4px;height:18px;border-radius:999px;background:#0862EC}.nav a.active:hover{background:#fff;color:#0862EC;transform:none}
.main{padding:22px}.card{padding:18px}.table th,.table td{padding:10px 9px;font-size:13px}input,select,textarea{padding:9px 10px;font-size:13px}button{padding:9px 14px;font-size:13px}.box{padding:22px}.toolbar{gap:8px}.file-page{max-width:1220px;padding:20px}.file-head{padding:16px 18px;border-radius:18px}.file-head h2{margin:.2em 0;font-size:20px}.file-layout{grid-template-columns:260px 1fr;gap:16px}.file-tree,.file-main{padding:16px;border-radius:18px}.file-tree h3{font-size:15px;margin-bottom:12px}.dir-item{min-height:38px;margin:7px 0;padding:10px 12px;border-radius:13px;background:#f7faff;border-color:#e6eefb;color:#21344f}.dir-item:not(.active){background:#f7faff;color:#21344f;border-color:#e6eefb}.dir-item:not(.active):hover{background:#edf5ff;color:#0862EC;border-color:#c9ddff;transform:translateX(3px);box-shadow:0 6px 14px rgba(8,98,236,.08)}.dir-item.active{background:linear-gradient(135deg,#0862EC 0%,#0758d4 100%);color:#fff;border-color:#0862EC;box-shadow:0 10px 20px rgba(8,98,236,.24)}#dir-root.dir-item:not(.active){background:#f7faff;color:#21344f;border-color:#e6eefb}.file-toolbar{gap:7px;margin:10px 0}.drop-zone{padding:15px;border-radius:15px}.breadcrumb{padding:9px 11px}.page-footer{font-size:11px}
@media(max-width:900px){html{font-size:75%;}.app{min-height:100vh}.side{width:132px;padding:12px 8px}.brand{font-size:16px;margin-bottom:14px;padding:8px;border-radius:12px}.brand:before{width:7px;height:7px;box-shadow:0 0 0 3px rgba(255,255,255,.18)}.nav{gap:2px}.nav a{min-height:31px;padding:8px 8px 8px 10px;margin:1px 0;border-radius:10px;font-size:12px}.nav a.active:before{left:4px;height:14px;width:3px}.main{padding:12px}.top{margin-bottom:10px}.cards{gap:9px}.card{padding:12px;border-radius:12px}.num{font-size:21px}.toolbar{gap:6px;margin-bottom:8px}.table th,.table td{padding:7px 6px;font-size:12px}.box{padding:14px;border-radius:14px}.grid{gap:9px}input,select,textarea{padding:7px 8px;font-size:12px;border-radius:8px}button{padding:7px 10px;font-size:12px;border-radius:8px}.file-page{padding:10px}.file-head{padding:12px;border-radius:14px;align-items:flex-start}.file-head h2{font-size:17px}.file-layout{grid-template-columns:1fr;gap:10px}.file-tree,.file-main{padding:12px;border-radius:14px}.dir-item{min-height:31px;margin:5px 0;padding:8px 9px;border-radius:10px}.drop-zone{padding:12px}.breadcrumb{font-size:12px;padding:7px 9px}.file-toolbar input[type=file]{max-width:100%}.file-table{font-size:12px}.page-footer{font-size:10px}}

/* v11.5 手机端密度 80% + 客户/联系人列表单行展示 */
:root{--fw-density-mobile:.8;}
@media(max-width:900px){
  html{font-size:80%;}
  .side{width:142px;padding:13px 9px;}
  .brand{font-size:17px;margin-bottom:15px;padding:9px;border-radius:13px;}
  .nav a{min-height:33px;padding:8px 9px 8px 11px;font-size:12.5px;}
  .main{padding:13px;}
  .card{padding:13px;}
  .table th,.table td{padding:8px 7px;font-size:12.5px;}
  input,select,textarea{padding:8px 9px;font-size:12.5px;}
  button{padding:8px 11px;font-size:12.5px;}
  .box{padding:15px;}
}
/* 客户管理、联系人列表压缩为单行：完整信息横向展示，不再拆成两行 */
.table{table-layout:auto;}
.table th,.table td{white-space:nowrap;line-height:1.25;vertical-align:middle;}
.table td{height:36px;max-height:36px;}
.table td .cell,.table th .cell{white-space:nowrap;}
.table input,.table select,.table button{white-space:nowrap;}
.main{overflow-x:auto;}
/* 移动端表格保持横向滚动，避免内容被换行压缩 */
@media(max-width:900px){
  .table{min-width:max-content;}
  .table td{height:32px;max-height:32px;}
}


/* v11.6 客户列表快捷筛选标签 */
.quick-filter-panel{background:#fff;border:1px solid var(--fw-border,#e6edf7);border-radius:16px;padding:12px 14px;margin:0 0 12px 0;box-shadow:0 8px 22px rgba(15,35,75,.05)}
.quick-filter-title{font-weight:700;color:#102033;margin-bottom:8px;font-size:13px;display:flex;align-items:center;gap:6px}.quick-filter-title:before{content:"";width:6px;height:16px;border-radius:999px;background:#0862EC}.quick-filter-tags{display:flex;flex-wrap:wrap;gap:8px}.filter-chip{background:#f4f7ff;color:#2b405f;border:1px solid #e4edff;border-radius:999px;padding:7px 12px;font-weight:600;box-shadow:none}.filter-chip:hover{background:#eaf2ff;color:#0862EC;border-color:#c9ddff}.filter-chip.active{background:#0862EC;color:#fff;border-color:#0862EC;box-shadow:0 8px 18px rgba(8,98,236,.22)}.filter-chip span{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;margin-left:6px;padding:0 6px;border-radius:999px;background:rgba(255,255,255,.75);color:#0862EC;font-size:12px}.filter-chip.active span{background:rgba(255,255,255,.20);color:#fff}.quick-filter-summary{margin-top:8px;color:#64748b;font-size:12px}
@media(max-width:900px){.quick-filter-panel{padding:9px 10px;border-radius:12px}.quick-filter-tags{gap:6px}.filter-chip{padding:6px 9px;font-size:12px}.quick-filter-summary{font-size:11px}}

/* v11.7 客户列表字段精简 + 品牌 Logo */
.login{max-width:920px;text-align:center}.login label{text-align:left}.login-logo-wrap{display:flex;justify-content:center;align-items:center;margin:0 auto 12px}.login-logo{width:min(560px,92vw);height:auto;display:block;object-fit:contain}.logo-brand{padding:8px 10px!important;background:rgba(255,255,255,.10)!important;min-height:54px;display:flex!important;align-items:center;justify-content:center}.logo-brand:before{display:none!important}.side-logo{display:block;width:150px;max-width:100%;height:auto;object-fit:contain;filter:brightness(0) invert(1);mix-blend-mode:screen}.side .user{font-size:12px;color:rgba(255,255,255,.78);margin:8px 4px 14px;line-height:1.4}.table th,.table td{white-space:nowrap}.toolbar input#kw{min-width:320px}.brand.logo-brand{margin-bottom:10px}
@media(max-width:900px){.login-logo{width:min(360px,90vw)}.logo-brand{min-height:42px;padding:6px!important}.side-logo{width:104px}.toolbar input#kw{min-width:220px;width:100%}.side .user{font-size:10.5px;margin:6px 3px 10px}}

/* v11.8 品牌与交互动效优化：磨砂顶栏、按钮/标签 hover、精确 Logo 尺寸 */
:root{--fw-blue:#0862EC;--fw-blue-dark:#064fc0;--fw-blue-soft:#eaf2ff;--fw-shadow:0 10px 28px rgba(8,98,236,.12)}
.login-logo{width:70px!important;max-width:70px!important;height:auto!important;object-fit:contain!important;transform:none!important;}
.login-logo-wrap{margin-bottom:10px!important;}
.logo-brand{background:transparent!important;box-shadow:none!important;min-height:48px!important;padding:6px 4px!important;justify-content:flex-start!important;}
.side-logo{width:118px!important;filter:none!important;mix-blend-mode:normal!important;}
.side{background:linear-gradient(180deg,#0862EC 0%,#0758d4 58%,#064fc0 100%)!important;box-shadow:8px 0 28px rgba(8,98,236,.12);}
.top{position:sticky;top:0;z-index:20;margin:-24px -24px 18px -24px;padding:15px 24px;background:rgba(245,247,251,.82);backdrop-filter:saturate(180%) blur(18px);-webkit-backdrop-filter:saturate(180%) blur(18px);border-bottom:1px solid rgba(226,232,240,.78);box-shadow:0 8px 24px rgba(15,23,42,.05);}
.top h2{margin:0;font-weight:750;letter-spacing:.2px;color:#0f172a;}
button,.filter-chip,.nav a,.card,.panel,.box,input,select,textarea{transition:background-color .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease;}
button:hover{transform:translateY(-1px);box-shadow:0 10px 20px rgba(8,98,236,.18);background:var(--fw-blue-dark);}
button.light:hover{background:#dceaff;color:var(--fw-blue);box-shadow:0 8px 18px rgba(8,98,236,.12);}
button:active,.filter-chip:active{transform:translateY(0) scale(.99);}
.card:hover,.panel:hover{box-shadow:0 12px 30px rgba(15,23,42,.08);transform:translateY(-1px);}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--fw-blue);box-shadow:0 0 0 4px rgba(8,98,236,.10);}
.table tbody tr{transition:background-color .16s ease,box-shadow .16s ease;}
.table tbody tr:hover{background:#f8fbff;box-shadow:inset 3px 0 0 var(--fw-blue);}
.nav a:hover{background:rgba(255,255,255,.18)!important;color:#fff!important;transform:translateX(4px);}
.nav a.active{background:#fff!important;color:var(--fw-blue)!important;box-shadow:0 12px 26px rgba(0,28,85,.18)!important;}
.quick-filter-tags{gap:9px}.filter-chip:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(8,98,236,.14);}.filter-chip.active:hover{box-shadow:0 10px 22px rgba(8,98,236,.25);}
.login{box-shadow:0 20px 60px rgba(15,23,42,.10)!important;border:1px solid rgba(226,232,240,.8);}
.login-footer.one-line-footer{white-space:nowrap!important;}
@media(max-width:900px){.login-logo{width:58px!important;max-width:58px!important}.side-logo{width:92px!important}.top{margin:-12px -12px 12px -12px;padding:10px 12px}.logo-brand{min-height:38px!important}.login-footer.one-line-footer{white-space:normal!important}}


/* v11.8.1 logo/footer polish */
.login-logo{width:140px!important;max-width:140px!important;height:auto!important;object-fit:contain!important;transform:none!important;}
.login-logo-wrap{margin-bottom:18px!important;}
.login>p{display:none!important;}
.login-footer.one-line-footer{white-space:nowrap!important;font-size:12px;color:#64748b;text-align:center;margin-top:22px;}
.side-logo{width:180px!important;max-width:100%!important;height:auto!important;object-fit:contain!important;filter:none!important;mix-blend-mode:normal!important;}
.logo-brand{min-height:64px!important;padding:10px 12px!important;}
@media(max-width:900px){.login-logo{width:116px!important;max-width:116px!important}.side-logo{width:110px!important}.logo-brand{min-height:44px!important}.login-footer.one-line-footer{white-space:normal!important;font-size:10.5px;line-height:1.45}}


/* v11.8.2 customer/contact list, print, sticky layout */
.login-logo{width:280px!important;max-width:min(280px,82vw)!important;height:auto!important;}
.login>h1,.login .login-title,.login .subtitle{display:none!important;}
.login-footer.one-line-footer{white-space:nowrap!important;font-size:12px;color:#64748b;text-align:center;margin-top:22px;}
.side-logo{width:216px!important;}
.detail-actions{display:flex;gap:8px;justify-content:flex-end;margin-bottom:10px}.print-area h3{margin:0 0 12px}.mini-table{border-collapse:collapse;width:100%;font-size:12px;margin-top:8px}.mini-table th,.mini-table td{border:1px solid #e5e7eb;padding:6px;text-align:left}.history-item{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:12px;margin:10px 0}.history-meta{font-size:12px;color:#64748b;margin-bottom:6px}
.app{height:100vh;overflow:hidden}.side{position:sticky;left:0;top:0;height:100vh;z-index:30;flex:0 0 240px}.main{height:100vh;overflow:auto;position:relative}.top{position:sticky;top:0;z-index:25}.table{min-width:max-content}.content-scroll,#content{overflow-x:auto}.table th:first-child,.table td:first-child{position:sticky;left:0;z-index:8;background:#fff}.table th:first-child{z-index:12;background:#f8fafc}.table tbody tr:hover td:first-child{background:#f8fbff}
.file-layout{align-items:stretch}.file-tree{position:sticky;top:14px;align-self:flex-start;max-height:calc(100vh - 90px);overflow:auto}.dir-item{background:#f8fafc!important;border:1px solid #e2e8f0!important;color:#0f172a!important}.dir-item:hover{background:#eef5ff!important;border-color:#bcd5ff!important;color:#0862EC!important;transform:translateX(2px)}.dir-item.active{background:#0862EC!important;border-color:#0862EC!important;color:#fff!important;box-shadow:0 10px 22px rgba(8,98,236,.22)!important}.dir-item.child{padding-left:22px!important}.dir-item.depth-2{padding-left:34px!important}.dir-item.depth-3{padding-left:46px!important}
@media(max-width:900px){.login-logo{width:220px!important;max-width:76vw!important}.side-logo{width:132px!important}.app{height:auto;overflow:visible}.side{height:auto;position:sticky;top:0}.main{height:auto;overflow:auto}.file-tree{position:relative;max-height:none}}
@media print{.no-print,.side,.top,.modal button{display:none!important}.modal{position:static!important;background:#fff!important}.modal .box{box-shadow:none!important;width:100%!important;max-width:none!important}.print-area{display:block!important}.table th,.table td{border:1px solid #ddd!important}}

/* v11.8.3 login layout + sticky top fix */
:root{--fw-v1183:#0862EC;}
body:has(.login){min-height:100vh;background:radial-gradient(circle at 18% 20%, rgba(8,98,236,.16), transparent 30%),linear-gradient(135deg,#f7faff 0%,#eef4ff 45%,#ffffff 100%);}
.login{max-width:1080px!important;width:min(1080px,92vw)!important;min-height:520px;margin:56px auto!important;padding:0!important;display:grid!important;grid-template-columns:1.1fr 420px;align-items:center;overflow:hidden;text-align:left!important;border-radius:28px!important;background:rgba(255,255,255,.88)!important;box-shadow:0 28px 80px rgba(15,23,42,.14)!important;border:1px solid rgba(226,232,240,.92)!important;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);position:relative;}
.login:before{content:"";display:block;align-self:stretch;min-height:520px;background:linear-gradient(145deg,rgba(8,98,236,.12),rgba(8,98,236,.02));border-right:1px solid rgba(226,232,240,.82);}
.login-logo-wrap{position:absolute!important;left:72px;top:50%;transform:translateY(-50%);margin:0!important;display:flex!important;align-items:center!important;justify-content:flex-start!important;}
.login-logo{width:112px!important;max-width:112px!important;height:auto!important;display:block!important;object-fit:contain!important;}
.login label,.login button,.login p.error,.login-footer{grid-column:2;}
.login label{width:320px;margin:0 auto 14px;font-size:13px;color:#334155;font-weight:600;}
.login input{height:42px;border-radius:12px;background:#fff;border-color:#dbe6f3;}
.login button{justify-self:start;margin-left:50px;min-width:112px;height:42px;border-radius:12px;font-weight:700;box-shadow:0 10px 22px rgba(8,98,236,.18);}
.login button.light{margin-left:8px;min-width:auto;background:#eef5ff;color:#0862EC;box-shadow:none;}
.login p.error{width:320px;margin:10px auto 0;min-height:22px;}
.login-footer.one-line-footer{position:absolute;left:0;right:0;bottom:18px;border:0!important;margin:0!important;padding:0 22px!important;text-align:center!important;font-size:12px!important;color:#64748b!important;white-space:nowrap!important;}
.main{padding-top:0!important;}
.top{top:0!important;margin:0 -24px 18px -24px!important;padding:15px 24px!important;border-top:0!important;}
@media(max-width:900px){
  .login{width:min(430px,92vw)!important;min-height:auto!important;display:block!important;margin:32px auto!important;padding:34px 24px 58px!important;text-align:left!important;}
  .login:before{display:none!important;}
  .login-logo-wrap{position:static!important;transform:none!important;justify-content:center!important;margin:0 auto 22px!important;}
  .login-logo{width:88px!important;max-width:88px!important;}
  .login label,.login p.error{width:100%!important;margin-left:0!important;margin-right:0!important;}
  .login button{margin-left:0!important;margin-top:4px;}
  .login-footer.one-line-footer{white-space:normal!important;bottom:14px!important;font-size:10.5px!important;line-height:1.45!important;}
  .main{padding-top:0!important;}
  .top{margin:0 -12px 12px -12px!important;padding:10px 12px!important;top:0!important;}
}


/* v11.8.5 login/contact fixes */
body:has(.login){min-height:100vh;background:radial-gradient(circle at 18% 20%, rgba(8,98,236,.14), transparent 30%),linear-gradient(135deg,#f7faff 0%,#eef4ff 46%,#ffffff 100%);} 
.login{max-width:1040px!important;width:min(1040px,92vw)!important;min-height:520px!important;margin:56px auto!important;padding:0!important;display:grid!important;grid-template-columns:1fr 420px!important;align-items:center!important;text-align:left!important;overflow:hidden!important;border-radius:28px!important;background:rgba(255,255,255,.90)!important;}
.login:before{content:""!important;display:block!important;grid-column:1!important;grid-row:1 / span 8!important;align-self:stretch!important;min-height:520px!important;background:linear-gradient(145deg,rgba(8,98,236,.10),rgba(8,98,236,.02))!important;border-right:1px solid rgba(226,232,240,.82)!important;}
.login-logo-wrap{position:absolute!important;left:76px!important;top:50%!important;transform:translateY(-50%)!important;background:transparent!important;margin:0!important;padding:0!important;box-shadow:none!important;border:0!important;}
.login-logo{width:118px!important;max-width:118px!important;height:auto!important;display:block!important;object-fit:contain!important;background:transparent!important;border:0!important;box-shadow:none!important;}
.login label{grid-column:2!important;width:320px!important;margin:0 auto 14px!important;font-size:13px!important;color:#334155!important;font-weight:600!important;display:flex!important;flex-direction:column!important;gap:7px!important;}
.login input{width:100%!important;height:42px!important;border-radius:12px!important;background:#fff!important;border:1px solid #dbe6f3!important;padding:0 12px!important;line-height:42px!important;}
.login br{display:none!important;}
.login button{grid-column:2!important;width:320px!important;min-width:320px!important;margin:2px auto 0!important;height:42px!important;border-radius:12px!important;font-weight:700!important;display:block!important;}
.login button.light{width:320px!important;min-width:320px!important;margin:10px auto 0!important;background:#eef5ff!important;color:#0862EC!important;box-shadow:none!important;}
.login p.error{grid-column:2!important;width:320px!important;margin:10px auto 0!important;min-height:22px!important;}
.login-footer.one-line-footer{position:absolute!important;left:0!important;right:0!important;bottom:18px!important;border:0!important;margin:0!important;padding:0 22px!important;text-align:center!important;font-size:12px!important;color:#64748b!important;white-space:nowrap!important;}
.toolbar input#contactKw{min-width:380px;}
.table tr:hover td:first-child,.table tr.todo-pending td:first-child,.table tr.cc-unread td:first-child,.table tr.done-row td:first-child{background:inherit!important;}
@media(max-width:900px){
  .login{width:min(430px,92vw)!important;min-height:auto!important;display:block!important;margin:32px auto!important;padding:34px 24px 64px!important;text-align:left!important;}
  .login:before{display:none!important;}
  .login-logo-wrap{position:static!important;transform:none!important;justify-content:center!important;margin:0 auto 22px!important;display:flex!important;}
  .login-logo{width:88px!important;max-width:88px!important;}
  .login label,.login p.error,.login button,.login button.light{width:100%!important;min-width:0!important;margin-left:0!important;margin-right:0!important;}
  .login-footer.one-line-footer{white-space:normal!important;bottom:14px!important;font-size:10.5px!important;line-height:1.45!important;}
  .toolbar input#contactKw{min-width:220px;width:100%;}
}

/* v11.8.6 login layout + transparent logo + modal overlay fix */
body:has(.login){
  min-height:100vh!important;
  background:radial-gradient(circle at 16% 20%, rgba(8,98,236,.14), transparent 32%),linear-gradient(135deg,#f7faff 0%,#eef4ff 48%,#ffffff 100%)!important;
  overflow:hidden;
}
.login{
  width:min(1120px,92vw)!important;
  min-height:560px!important;
  margin:44px auto 64px!important;
  padding:0!important;
  display:grid!important;
  grid-template-columns:minmax(420px,1.15fr) 430px!important;
  align-items:stretch!important;
  border-radius:30px!important;
  overflow:hidden!important;
  background:rgba(255,255,255,.92)!important;
  border:1px solid rgba(226,232,240,.95)!important;
  box-shadow:0 28px 80px rgba(15,23,42,.13)!important;
  text-align:left!important;
  position:relative!important;
}
.login:before{
  content:""!important;
  display:block!important;
  grid-column:1!important;
  grid-row:1 / span 10!important;
  min-height:560px!important;
  background:linear-gradient(145deg,rgba(8,98,236,.10),rgba(8,98,236,.025))!important;
  border-right:1px solid rgba(226,232,240,.85)!important;
}
.login-logo-wrap{
  position:absolute!important;
  left:72px!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  width:250px!important;
  height:auto!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  padding:0!important;
  margin:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
}
.login-logo{
  width:230px!important;
  max-width:230px!important;
  height:auto!important;
  display:block!important;
  object-fit:contain!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
.login label{
  grid-column:2!important;
  width:320px!important;
  margin:0 auto 16px!important;
  display:flex!important;
  flex-direction:column!important;
  gap:8px!important;
  font-size:13px!important;
  line-height:1.2!important;
  color:#334155!important;
  font-weight:700!important;
}
.login label:first-of-type{align-self:end!important;margin-top:0!important;}
.login input{
  width:100%!important;
  height:44px!important;
  border-radius:14px!important;
  border:1px solid #dbe6f3!important;
  background:#fff!important;
  padding:0 14px!important;
  line-height:44px!important;
  box-shadow:0 0 0 4px rgba(8,98,236,.04)!important;
}
.login input:focus{outline:none!important;border-color:#0862EC!important;box-shadow:0 0 0 4px rgba(8,98,236,.12)!important;}
.login br{display:none!important;}
.login button{
  grid-column:2!important;
  width:320px!important;
  min-width:320px!important;
  height:44px!important;
  margin:4px auto 0!important;
  border-radius:14px!important;
  display:block!important;
  font-weight:800!important;
  box-shadow:0 12px 24px rgba(8,98,236,.20)!important;
}
.login button.light{
  width:auto!important;
  min-width:0!important;
  height:auto!important;
  padding:0!important;
  margin:12px auto 0!important;
  background:transparent!important;
  color:#0862EC!important;
  box-shadow:none!important;
  font-weight:700!important;
}
.login p.error{
  grid-column:2!important;
  width:320px!important;
  min-height:22px!important;
  margin:10px auto 0!important;
}
.login-footer.one-line-footer{
  position:fixed!important;
  left:0!important;
  right:0!important;
  bottom:14px!important;
  z-index:2!important;
  width:100%!important;
  border:0!important;
  margin:0!important;
  padding:0 18px!important;
  text-align:center!important;
  color:#64748b!important;
  font-size:12px!important;
  line-height:1.6!important;
  white-space:nowrap!important;
  background:transparent!important;
}
.modal{z-index:99999!important;}
.modal.show{z-index:99999!important;}
.table th:first-child,.table td:first-child{z-index:1;}
.modal .table th:first-child,.modal .table td:first-child{background:#f8fafc!important;z-index:auto!important;}
.modal .table td:first-child{background:#fff!important;}
@media(max-width:900px){
  body:has(.login){overflow:auto!important;}
  .login{
    display:block!important;
    width:min(430px,92vw)!important;
    min-height:auto!important;
    margin:28px auto 86px!important;
    padding:34px 24px 54px!important;
    border-radius:24px!important;
  }
  .login:before{display:none!important;}
  .login-logo-wrap{position:static!important;transform:none!important;width:auto!important;justify-content:center!important;margin:0 auto 24px!important;}
  .login-logo{width:170px!important;max-width:72vw!important;}
  .login label,.login button,.login p.error{width:100%!important;min-width:0!important;margin-left:0!important;margin-right:0!important;}
  .login button.light{width:auto!important;margin-left:auto!important;margin-right:auto!important;}
  .login-footer.one-line-footer{white-space:normal!important;font-size:10.5px!important;bottom:10px!important;line-height:1.45!important;}
}

/* v11.8.7 definitive login layout: independent from old .login rules */
html,body,#root{min-height:100%;}
body:has(.login-page-v1187){
  min-height:100vh!important;
  margin:0!important;
  overflow:hidden!important;
  background:radial-gradient(circle at 15% 18%,rgba(8,98,236,.13),transparent 34%),linear-gradient(135deg,#f7faff 0%,#eef4ff 52%,#fff 100%)!important;
}
.login-page-v1187{
  min-height:100vh;
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:42px 44px 64px;
  position:relative;
}
.login-card-v1187{
  width:min(1120px,92vw);
  min-height:560px;
  display:grid;
  grid-template-columns:minmax(430px,1fr) 420px;
  overflow:hidden;
  border-radius:30px;
  border:1px solid rgba(226,232,240,.95);
  background:rgba(255,255,255,.92);
  box-shadow:0 28px 80px rgba(15,23,42,.13);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
}
.login-hero-v1187{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:560px;
  background:linear-gradient(145deg,rgba(8,98,236,.10),rgba(8,98,236,.025));
  border-right:1px solid rgba(226,232,240,.85);
}
.login-logo-v1187{
  width:190px;
  max-width:52%;
  height:auto;
  display:block;
  object-fit:contain;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
.login-panel-v1187{
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,.82);
  padding:44px 48px;
}
.login-form-v1187{
  width:100%;
  max-width:320px;
  display:flex;
  flex-direction:column;
  gap:14px;
}
.login-field-v1187{
  width:100%!important;
  display:flex!important;
  flex-direction:column!important;
  gap:8px!important;
  margin:0!important;
  font-size:13px!important;
  line-height:1.2!important;
  color:#334155!important;
  font-weight:700!important;
}
.login-field-v1187 input{
  width:100%!important;
  height:44px!important;
  border-radius:14px!important;
  border:1px solid #dbe6f3!important;
  background:#fff!important;
  padding:0 14px!important;
  line-height:44px!important;
  box-shadow:0 0 0 4px rgba(8,98,236,.04)!important;
}
.login-field-v1187 input:focus{outline:none!important;border-color:#0862EC!important;box-shadow:0 0 0 4px rgba(8,98,236,.12)!important;}
.login-submit-v1187{
  width:100%!important;
  min-width:0!important;
  height:44px!important;
  margin:4px 0 0!important;
  border-radius:14px!important;
  display:block!important;
  font-weight:800!important;
  box-shadow:0 12px 24px rgba(8,98,236,.20)!important;
}
.login-reset-v1187{
  width:auto!important;
  min-width:0!important;
  height:auto!important;
  padding:0!important;
  margin:0 auto!important;
  background:transparent!important;
  color:#0862EC!important;
  box-shadow:none!important;
  font-weight:700!important;
}
.login-error-v1187{width:100%!important;min-height:22px!important;margin:0!important;}
.login-footer-v1187{
  position:fixed;
  left:0;right:0;bottom:12px;
  z-index:5;
  padding:0 18px;
  text-align:center;
  color:#64748b;
  font-size:12px;
  line-height:1.6;
  white-space:nowrap;
  pointer-events:none;
}
@media(max-width:900px){
  body:has(.login-page-v1187){overflow:auto!important;}
  .login-page-v1187{padding:28px 16px 72px;align-items:flex-start;}
  .login-card-v1187{width:min(430px,94vw);min-height:auto;display:block;border-radius:24px;}
  .login-hero-v1187{min-height:168px;border-right:0;border-bottom:1px solid rgba(226,232,240,.85);}
  .login-logo-v1187{width:155px;max-width:70%;}
  .login-panel-v1187{padding:28px 24px 34px;}
  .login-footer-v1187{white-space:normal;font-size:10.5px;bottom:8px;line-height:1.45;}
}
.status-badge.recalled{background:#fee2e2;color:#991b1b}.recalled-row{background:#fff1f2!important;}
.ticket-detail{display:flex;flex-direction:column;gap:14px;}
.ticket-section{border:1px solid #e5edf6;background:#fff;border-radius:14px;padding:14px;margin-bottom:4px;}
.ticket-section h4{margin:0 0 10px;color:#0f172a;}
.detail-table th{background:#f8fafc;color:#475569;text-align:left;font-weight:700;}
.detail-table td{background:#fff;}

/* v11.8.34 跟进记录首页列宽优化：压缩“内容”列，保证更新时间和操作列无需右滑即可看到 */
#content:has(.follow-home-table){overflow-x:visible;}
.follow-home-table{width:100%!important;min-width:0!important;table-layout:fixed;}
.follow-home-table th,.follow-home-table td{vertical-align:middle;}
.follow-home-table .col-_ticket{width:92px;}
.follow-home-table .col-id{width:56px;}
.follow-home-table .col-customer_id{width:160px;}
.follow-home-table .col-method{width:76px;}
.follow-home-table .col-content{width:auto;max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.follow-home-table .col-created_at{width:150px;white-space:nowrap;}
.follow-home-table .col-actions{width:98px;white-space:nowrap;text-align:center;}
.follow-home-table .col-actions button{padding:7px 10px;border-radius:8px;}
@media(max-width:1200px){
  .follow-home-table .col-id{display:none;}
  .follow-home-table .col-customer_id{width:138px;}
  .follow-home-table .col-method{width:64px;}
  .follow-home-table .col-created_at{width:132px;font-size:12px;}
  .follow-home-table .col-content{max-width:190px;}
}
@media(max-width:900px){
  .follow-home-table .col-method{display:none;}
  .follow-home-table .col-customer_id{width:112px;}
  .follow-home-table .col-_ticket{width:82px;}
  .follow-home-table .col-created_at{width:118px;}
  .follow-home-table .col-actions{width:82px;}
  .follow-home-table .col-actions button{padding:6px 8px;font-size:12px;}
}

/* v11.8.38 手机端继续压缩显示密度约 50%，并优化工单流程区块 */
.ticket-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:8px 0 12px}
.inline-upload{padding:10px 12px;background:#f8fbff;border:1px dashed #d6e4ff;border-radius:12px;margin-top:10px}
.ticket-detail .ticket-section h4{display:flex;align-items:center;gap:6px;margin-bottom:8px}
@media(max-width:900px){
  html{font-size:50%!important;}
  body{font-size:10px!important;}
  .side{width:86px!important;padding:6px 4px!important;}
  .brand{font-size:10px!important;margin-bottom:6px!important;padding:5px!important;}
  .side-logo{width:64px!important;}
  .nav a{font-size:8px!important;min-height:20px!important;padding:5px 4px!important;border-radius:6px!important;margin:1px 0!important;}
  .main{padding:6px!important;}
  .top{padding:6px!important;margin:0 0 6px 0!important;}
  .toolbar{gap:4px!important;margin-bottom:5px!important;}
  button{padding:4px 6px!important;font-size:8px!important;border-radius:5px!important;}
  input,select,textarea{padding:4px 5px!important;font-size:8px!important;border-radius:5px!important;}
  label{font-size:8px!important;gap:3px!important;}
  .table th,.table td{padding:4px 3px!important;font-size:8px!important;}
  .box{width:96vw!important;padding:8px!important;border-radius:10px!important;}
  .hint{font-size:8px!important;}
  .ticket-section{padding:8px!important;margin:7px 0!important;border-radius:9px!important;}
  .ticket-section h4{font-size:10px!important;margin:0 0 5px!important;}
  .check,.check-inline{padding:3px 4px!important;font-size:8px!important;border-radius:5px!important;}
  .user-search-box{padding:5px!important;}
}

/* v11.8.39 mobile sidebar narrower while keeping one-line nav text */
@media(max-width:900px){.side{width:108px!important;padding:10px 6px!important}.brand{font-size:13px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:6px!important}.nav a{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:10.5px!important;padding:7px 6px 7px 8px!important;min-height:28px!important;border-radius:9px!important}.side .user{font-size:9.5px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.main{padding:10px!important}}


/* v11.8.40 mobile density and sidebar hard override */
@media(max-width:900px){
  html{font-size:50%!important;-webkit-text-size-adjust:50%!important;text-size-adjust:50%!important;}
  body{font-size:10px!important;}
  .app{display:flex!important;width:100vw!important;overflow-x:hidden!important;}
  .side{width:64px!important;min-width:64px!important;max-width:64px!important;padding:6px 4px!important;flex:0 0 64px!important;}
  .side-logo{width:54px!important;max-width:54px!important;display:block;margin:0 auto 6px!important;}
  .brand{font-size:9px!important;line-height:1.1!important;margin-bottom:6px!important;padding:4px 2px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
  .nav{gap:1px!important;}
  .nav a{font-size:8.5px!important;line-height:1.05!important;min-height:22px!important;padding:5px 3px!important;margin:1px 0!important;border-radius:6px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
  .nav a.active:before{display:none!important;}
  .side .user{font-size:7.5px!important;line-height:1.1!important;margin:4px 1px 6px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
  .main{width:calc(100vw - 64px)!important;padding:6px!important;min-width:0!important;}
  .top{margin:-6px -6px 6px -6px!important;padding:6px!important;}
  button,input,select,textarea{font-size:9px!important;padding:5px 6px!important;border-radius:6px!important;}
  .table th,.table td{font-size:9px!important;padding:5px 4px!important;}
  .box{width:96vw!important;padding:10px!important;}
  .file-page{padding:6px!important;font-size:9px!important;}
  .file-head,.file-tree,.file-main{padding:8px!important;border-radius:10px!important;}
  .file-head h2{font-size:13px!important;}
  .file-layout{gap:6px!important;}
}
.preview-card{max-width:1100px;width:94%;max-height:88vh;overflow:auto;background:#fff;border-radius:16px;padding:18px}.preview-body{min-height:360px}.preview-frame{width:100%;height:70vh;border:1px solid #e5e7eb;border-radius:12px;background:#fff}.preview-image{max-width:100%;max-height:72vh;display:block;margin:auto}.badge.warn{display:inline-block;background:#fff7ed;color:#c2410c;border:1px solid #fed7aa;border-radius:999px;padding:2px 6px;font-size:12px;margin-left:4px}

/* v11.8.41 upload button and folder context menu optimization */
.inline-upload input[type="file"], .file-toolbar input[type="file"]{display:none!important;}
.dir-row{display:block;position:relative;}
.dir-row .danger.mini{display:none!important;}
.dir-context-menu{position:fixed;z-index:9999;min-width:200px;background:#fff;border:1px solid #d7dfeb;border-radius:12px;box-shadow:0 14px 38px rgba(15,23,42,.18);padding:8px;}
.dir-context-menu .ctx-title{font-weight:700;color:#10243f;padding:8px 10px;border-bottom:1px solid #edf2f7;margin-bottom:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dir-context-menu button{display:block;width:100%;text-align:left;background:#fff;border:0;border-radius:8px;padding:9px 10px;color:#18324f;cursor:pointer;}
.dir-context-menu button:hover{background:#f2f6fb;}
.dir-context-menu button.danger{color:#b42318;}
.file-toolbar{gap:8px;align-items:center;flex-wrap:wrap;}
.danger-link{color:#b42318!important;border-color:#f3c6c1!important;background:#fff7f6!important;}
@media (max-width: 768px){.dir-context-menu{min-width:176px;font-size:12px}.dir-context-menu button{padding:8px}.file-toolbar .muted{font-size:11px}}


/* v11.8.44 customer file right-side directory and restricted preview fixes */
.right-dir-box{margin:12px 0;padding:12px;border:1px solid #e5e7eb;border-radius:14px;background:#fbfdff;}
.right-dir-box h4{margin:0 0 10px;color:#10243f;}
.right-dir-grid{display:flex;flex-wrap:wrap;gap:8px;}
.right-dir-item{border:1px solid #dbe7f6;background:#fff;border-radius:10px;padding:9px 12px;cursor:pointer;text-align:left;}
.right-dir-item:hover{background:#eef5ff;border-color:#bcd5ff;color:#0862EC;}
@media(max-width:900px){.right-dir-box{padding:8px;border-radius:10px}.right-dir-item{padding:6px 8px;font-size:9px}.file-tree small{display:none!important}}

/* v11.8.45 客户文件目录列式显示与 Windows 文字颜色修复 */
.right-dir-grid{display:flex!important;flex-direction:column!important;flex-wrap:nowrap!important;gap:6px!important;}
.right-dir-item{display:block!important;width:100%!important;color:#0f172a!important;background:#ffffff!important;border:1px solid #dbe7f6!important;text-align:left!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
.right-dir-item:hover{background:#eef5ff!important;color:#0862EC!important;}
.right-dir-item .badge{vertical-align:middle;}
.file-toolbar button[disabled]{opacity:.45;cursor:not-allowed;}
@media(max-width:900px){.right-dir-grid{gap:5px!important}.right-dir-item{font-size:10px!important;color:#0f172a!important;background:#fff!important}}

/* v11.8.49 查看工单标题右侧取消按钮 */
.modal-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.modal-title-row .modal-title-close{font-size:13px;padding:6px 12px;margin-left:auto;}
.mini-badge{display:inline-block;margin-left:4px;padding:1px 5px;border-radius:999px;font-size:11px;line-height:16px;background:#eef2ff;color:#374151;vertical-align:middle;white-space:nowrap}.mini-badge.type{background:#ecfeff;color:#155e75}.mini-badge.muted{background:#f3f4f6;color:#6b7280}.mini-badge.g一,.mini-badge.g1{background:#dcfce7;color:#166534}.mini-badge.g二,.mini-badge.g2{background:#dbeafe;color:#1d4ed8}.mini-badge.g三,.mini-badge.g3{background:#fef3c7;color:#92400e}.mini-badge.g四,.mini-badge.g4{background:#fde68a;color:#854d0e}.mini-badge.g五,.mini-badge.g5{background:#fce7f3;color:#9d174d}.mini-badge.g六,.mini-badge.g6{background:#fee2e2;color:#991b1b}

.mini-badge.ok{background:#ecfdf5;color:#047857;border:1px solid #a7f3d0}.mini-badge.danger{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}

/* v11.8.54：工单推送人员竖排勾选，避免横向挤压 */
.user-search-box.checks,
.user-search-box{
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  gap:6px!important;
}
.user-search-box .check{
  display:flex!important;
  width:100%!important;
  justify-content:flex-start!important;
  box-sizing:border-box!important;
}
.edit-customer-danger{border-top:1px solid #eee;margin-top:10px;padding-top:10px;}


/* v11.8.55: 工单推送人员列表强制竖排，避免横向排列导致看不清 */
.user-search-box.vertical-user-checks,
.vertical-user-checks{
  display:block !important;
}
.user-search-box.vertical-user-checks .check,
.vertical-user-checks .check{
  display:flex !important;
  width:100% !important;
  box-sizing:border-box;
  margin:4px 0 !important;
  justify-content:flex-start;
}
.user-search-box.vertical-user-checks input[type="checkbox"]{
  flex:0 0 auto;
}

/* v11.8.58 工单推送人员列表紧凑化 */
.push-selector-compact .hint{font-size:12px;line-height:1.35;margin:4px 0;}
.push-selector-compact input{height:30px;padding:4px 8px;}
.push-selector-compact button{padding:5px 10px;margin:4px 0;}
.push-selector-compact .user-search-box{display:block;max-height:150px;overflow:auto;border:1px solid rgba(0,0,0,.08);border-radius:8px;background:#fff;padding:4px;margin-top:4px;}
.push-selector-compact .check{display:flex;align-items:center;gap:6px;margin:0;padding:4px 6px;border-bottom:1px solid rgba(0,0,0,.04);font-size:13px;line-height:1.25;}
.push-selector-compact .check:last-child{border-bottom:0;}
.ticket-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.danger-soft{border-color:#f2b6b6;color:#b42318;background:#fff7f7;}
.status.recalled,.status.todo{white-space:nowrap;}
@media(max-width:700px){.push-selector-compact .user-search-box{max-height:120px}.push-selector-compact .check{font-size:12px;padding:3px 5px}}

/* v11.8.61: 推送人员列表窄行竖排，显示姓名/岗位/团队路径 */
.user-search-box.vertical-user-checks,
.push-selector .user-search-box{
  display:block!important;
  max-height:220px;
  overflow:auto;
}
.user-search-box.vertical-user-checks .push-user-row,
.push-selector .push-user-row{
  display:grid!important;
  grid-template-columns:18px minmax(0,1fr);
  align-items:center;
  gap:6px;
  width:100%!important;
  min-height:30px;
  padding:4px 6px!important;
  margin:0!important;
  border-bottom:1px solid rgba(15,23,42,.06);
  line-height:1.18;
}
.user-search-box.vertical-user-checks .push-user-row input,
.push-selector .push-user-row input{width:14px;height:14px;margin:0;}
.push-user-main{display:flex;flex-direction:column;min-width:0;}
.push-user-name{font-size:13px;color:#111827;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.push-user-meta{font-size:11px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.push-selector-compact .push-user-name{font-size:12px;}
.push-selector-compact .push-user-meta{font-size:10.5px;}
.history-item-copied{background:#f3f4f6!important;border-color:#d1d5db!important;color:#6b7280;}
.readonly-ticket-section{background:#f8fafc;}
button.tiny{font-size:12px;padding:3px 8px;margin-left:8px;vertical-align:middle;}


/* v11.8.63 新增跟进客户全平台搜索 */
.customer-search-field{display:flex;align-items:center;gap:6px;width:100%;}
.customer-search-field select{flex:1;min-width:0;}
.customer-search-btn{width:34px;min-width:34px;padding:0;text-align:center;}
.follow-customer-search-box{margin-top:8px;border:1px solid #e5e7eb;border-radius:10px;padding:8px;background:#fff;}
.global-customer-list{display:flex;flex-direction:column;gap:6px;max-height:280px;overflow:auto;}
.global-customer-row{display:grid;grid-template-columns:minmax(120px,1.2fr) minmax(130px,1fr) auto minmax(120px,1fr);gap:8px;align-items:center;width:100%;text-align:left;border:1px solid #e5e7eb;background:#fff;border-radius:8px;padding:8px 10px;cursor:pointer;color:#111827;}
.global-customer-row:hover{background:#f8fafc;border-color:#cbd5e1;}
.gcr-name{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.gcr-code,.gcr-team{font-size:12px;color:#475569;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.gcr-tags{white-space:nowrap;}
@media(max-width:700px){.global-customer-row{grid-template-columns:1fr;gap:3px}.customer-search-btn{width:30px;min-width:30px}}

/* v11.8.64 我的文件 */
.mf-shell{min-width:760px;background:#fff;border:1px solid #e2e8f0;border-radius:18px;padding:18px;box-shadow:0 10px 28px rgba(15,35,75,.06)}
.mf-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.mf-head h3{margin:0 0 6px;font-size:20px;color:#0f172a}.mf-head p{margin:0;color:#64748b;font-size:13px;line-height:1.7}.mf-head-actions{display:flex;gap:8px}
.mf-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:10px 0 12px}.mf-toolbar button[disabled]{opacity:.45;cursor:not-allowed}
.mf-breadcrumb{display:flex;align-items:center;gap:5px;flex-wrap:wrap;padding:9px 11px;background:#f6f8fc;border:1px solid #e8eef7;border-radius:12px;margin-bottom:10px}.mf-breadcrumb button{padding:3px 6px;background:transparent;color:#0862EC;border-radius:7px}.mf-breadcrumb button:hover{background:#e8f1ff}.mf-breadcrumb button.active{color:#0f172a;font-weight:700;cursor:default}.mf-crumb-sep{color:#94a3b8}
.mf-drop-zone{display:flex;align-items:center;justify-content:center;gap:8px;min-height:66px;border:2px dashed #bfd0e7;border-radius:14px;background:#f8fbff;color:#42546e;margin-bottom:10px;transition:.18s ease}.mf-drop-zone span{font-size:12px;color:#64748b}.mf-drop-zone.dragging{border-color:#0862EC;background:#eaf3ff;box-shadow:0 0 0 4px rgba(8,98,236,.08)}
.mf-progress-list{display:grid;gap:7px;margin:8px 0}.mf-progress-item{padding:9px 11px;border:1px solid #dbe5f2;border-radius:11px;background:#fff}.mf-progress-item.done{border-color:#b7e4c7;background:#f3fbf6}.mf-progress-item.failed{border-color:#fecaca;background:#fff7f7}.mf-progress-meta{display:flex;justify-content:space-between;gap:12px;font-size:12px;margin-bottom:6px}.mf-progress-meta strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mf-progress-meta span{color:#64748b;white-space:nowrap}.mf-progress-track{height:6px;border-radius:999px;background:#e9eef5;overflow:hidden}.mf-progress-track i{display:block;height:100%;background:#0862EC;border-radius:999px;transition:width .15s ease}.mf-progress-item.done .mf-progress-track i{background:#16a34a}.mf-progress-item.failed .mf-progress-track i{background:#dc2626}
.mf-summary{font-size:12px;color:#64748b;margin:9px 2px}.mf-table-wrap{overflow:auto;border:1px solid #e5eaf2;border-radius:14px}.mf-table{border-radius:0;box-shadow:none;min-width:900px}.mf-table th{background:#f8fafc}.mf-table td{vertical-align:middle}.mf-table th:first-child,.mf-table td:first-child{position:static!important;width:42px;text-align:center}.mf-name-button{display:flex;align-items:center;gap:9px;max-width:420px;padding:4px 6px;background:transparent;color:#172033;text-align:left}.mf-name-button:hover{background:#edf5ff;color:#0862EC}.mf-name-button span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mf-icon{font-size:19px;flex:0 0 auto}.mf-actions{white-space:nowrap}.mf-actions button,.mf-action-link{display:inline-flex;align-items:center;justify-content:center;margin:2px 4px 2px 0;padding:7px 10px;border-radius:9px;font-size:12px;text-decoration:none}.mf-action-link{background:#0862EC;color:#fff}.mf-empty{display:flex;min-height:220px;flex-direction:column;align-items:center;justify-content:center;gap:7px;color:#64748b;background:#fbfdff}.mf-empty div{font-size:42px}.mf-empty strong{color:#334155}.mf-empty span,.mf-loading{font-size:12px}.mf-loading{padding:30px;text-align:center;color:#64748b}
.mf-preview-body{background:#eef2f7;min-height:100vh}.mf-preview-page{min-height:100vh;padding:18px}.mf-preview-head{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:14px 18px;margin-bottom:12px;box-shadow:0 8px 24px rgba(15,23,42,.06)}.mf-preview-head h2{margin:0 0 5px;font-size:18px;word-break:break-all}.mf-preview-head p{margin:0;color:#64748b;font-size:12px}.mf-preview-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}.mf-preview-content{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 115px);background:#fff;border:1px solid #e2e8f0;border-radius:16px;overflow:auto;box-shadow:0 8px 24px rgba(15,23,42,.06)}.mf-preview-image{display:block;max-width:100%;max-height:calc(100vh - 150px);object-fit:contain}.mf-preview-media{width:min(1100px,95%);max-height:calc(100vh - 150px);background:#000}.mf-preview-audio{width:min(720px,88%)}.mf-preview-frame{width:100%;height:calc(100vh - 115px);border:0}.mf-preview-text{width:100%;min-height:calc(100vh - 115px);margin:0;border-radius:0;background:#0f172a;color:#e2e8f0;padding:20px;overflow:auto;white-space:pre-wrap;word-break:break-word}.mf-preview-unsupported{text-align:center;padding:40px}.mf-preview-unsupported>div{font-size:64px}.mf-preview-unsupported h3{margin:8px 0}.mf-preview-unsupported p{color:#64748b}
@media(max-width:900px){.mf-shell{min-width:650px;padding:12px;border-radius:13px}.mf-head{gap:8px}.mf-head h3{font-size:16px}.mf-head p{font-size:11px}.mf-drop-zone{min-height:52px;flex-direction:column;gap:2px}.mf-progress-meta{font-size:10px}.mf-preview-page{padding:8px}.mf-preview-head{align-items:flex-start;padding:10px;flex-direction:column}.mf-preview-actions{width:100%}.mf-preview-content,.mf-preview-frame,.mf-preview-text{min-height:calc(100vh - 150px);height:calc(100vh - 150px)}}

/* v11.8.66 我的文件回收站与人员查看 */
.mf-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:16px;align-items:start}.mf-main{min-width:0}.mf-people-panel{position:sticky;top:12px;border:1px solid #e3eaf3;border-radius:14px;background:#f8fafc;padding:12px;max-height:calc(100vh - 110px);overflow:hidden}.mf-people-head{display:flex;flex-direction:column;gap:2px;margin-bottom:9px}.mf-people-head strong{font-size:14px;color:#172033}.mf-people-head span{font-size:11px;color:#8492a6}.mf-people-search{width:100%;height:34px;border:1px solid #dce5f0;border-radius:9px;background:#fff;padding:0 9px;margin-bottom:8px;font-size:12px}.mf-people-list{display:flex;flex-direction:column;gap:5px;max-height:calc(100vh - 205px);overflow:auto;padding-right:2px}.mf-person{width:100%;display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px;border:1px solid transparent;border-radius:11px;background:transparent;color:#263449;text-align:left}.mf-person:hover{background:#eef5ff;border-color:#d7e7ff}.mf-person.active{background:#e8f1ff;border-color:#b9d4ff;box-shadow:inset 3px 0 0 #0862EC}.mf-person-avatar{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:#dfe9f8;color:#31547c;font-weight:700}.mf-person-main{min-width:0;display:flex;flex-direction:column;gap:2px}.mf-person-main strong,.mf-person-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mf-person-main strong{font-size:12px}.mf-person-main strong em{font-style:normal;font-size:9px;color:#0862EC;background:#fff;border-radius:999px;padding:1px 4px}.mf-person-main small{font-size:10px;color:#77869a}.mf-person-count{font-size:10px;color:#64748b;background:#fff;border:1px solid #dde6f1;border-radius:999px;padding:2px 6px}.mf-people-empty{padding:24px 8px;text-align:center;color:#94a3b8;font-size:12px}.mf-mode-tabs{display:flex;gap:5px;padding:4px;background:#f1f5f9;border-radius:11px;width:max-content;margin:4px 0 10px}.mf-mode-tabs button{padding:7px 16px;border-radius:8px;background:transparent;color:#64748b;font-size:12px}.mf-mode-tabs button.active{background:#fff;color:#0862EC;box-shadow:0 2px 8px rgba(15,23,42,.08);font-weight:700}.mf-readonly-badge{display:inline-flex;align-items:center;padding:7px 11px;border-radius:9px;background:#fff7e6;color:#9a6700;border:1px solid #f4d28c;font-size:12px;font-weight:700}.mf-name-static{display:flex;align-items:center;gap:9px;max-width:420px;padding:4px 6px;color:#172033}.mf-name-static span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ghost-danger{background:#fff!important;color:#b91c1c!important;border:1px solid #fecaca!important}
@media(max-width:1100px){.mf-layout{grid-template-columns:205px minmax(0,1fr)}.mf-people-panel{padding:9px}.mf-person{grid-template-columns:28px minmax(0,1fr) auto;padding:7px 5px}.mf-person-avatar{width:28px;height:28px}}
@media(max-width:760px){.mf-layout{display:block}.mf-people-panel{position:static;max-height:none;margin-bottom:12px}.mf-people-list{max-height:230px}.mf-shell{min-width:650px}}

/* v11.8.67 我的文件团队权限与共享区域 */
.mf-shared-switch{display:inline-flex;gap:4px;padding:3px;background:#f1f5f9;border-radius:10px}.mf-shared-switch button{padding:7px 13px;border-radius:8px;background:transparent;color:#64748b}.mf-shared-switch button.active{background:#fff;color:#0862EC;box-shadow:0 2px 7px rgba(15,23,42,.08);font-weight:700}.mf-share-info{max-width:320px;white-space:normal!important;line-height:1.5;color:#475569}.mf-share-modal{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(15,23,42,.48);backdrop-filter:blur(3px)}.mf-share-modal[hidden]{display:none}.mf-share-dialog{width:min(680px,96vw);max-height:86vh;display:flex;flex-direction:column;background:#fff;border-radius:18px;border:1px solid #dfe6ef;box-shadow:0 28px 80px rgba(15,23,42,.26);overflow:hidden}.mf-share-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 20px 13px;border-bottom:1px solid #e8edf4}.mf-share-head h3{margin:0 0 5px;font-size:18px}.mf-share-head p{margin:0;color:#64748b;font-size:12px;line-height:1.6}.mf-share-search{margin:14px 18px 8px;height:40px;border:1px solid #cfd9e7;border-radius:10px;padding:0 12px;background:#fff}.mf-share-selected{display:flex;gap:6px;flex-wrap:wrap;min-height:34px;margin:0 18px 8px;padding:7px 8px;border:1px dashed #d6e0eb;border-radius:10px;background:#f8fafc}.mf-share-selected span{font-size:12px;color:#94a3b8;padding:3px}.mf-share-selected button{padding:4px 8px;border-radius:999px;background:#e8f1ff;color:#0b5dcc;font-size:11px}.mf-share-results{min-height:180px;max-height:360px;overflow:auto;margin:0 18px 14px;border:1px solid #e2e8f0;border-radius:12px;background:#fff}.mf-share-hint{display:flex;align-items:center;justify-content:center;min-height:180px;padding:20px;text-align:center;color:#94a3b8;font-size:12px}.mf-share-user{display:flex;align-items:flex-start;gap:10px;padding:11px 13px;border-bottom:1px solid #edf1f6;cursor:pointer}.mf-share-user:last-child{border-bottom:0}.mf-share-user:hover{background:#f5f9ff}.mf-share-user input{margin-top:3px}.mf-share-user span{min-width:0;display:flex;flex-direction:column;gap:3px}.mf-share-user strong{font-size:13px;color:#1e293b}.mf-share-user small{font-size:11px;color:#64748b;line-height:1.45}.mf-share-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 18px;border-top:1px solid #e8edf4;background:#f8fafc}.mf-share-foot>span{font-size:12px;color:#64748b}.mf-share-foot>div{display:flex;gap:8px}.mf-person-main small{white-space:normal;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
@media(max-width:900px){.mf-share-modal{padding:8px}.mf-share-dialog{max-height:94vh}.mf-share-head{padding:13px}.mf-share-search,.mf-share-selected,.mf-share-results{margin-left:12px;margin-right:12px}.mf-share-foot{align-items:flex-start;flex-direction:column}.mf-share-foot>div{width:100%;justify-content:flex-end}}
