/* ============================================================
   全国千名涉外律师查询 — yicool.com.cn /tools/lawyer
   主蓝 #136ce9 · 页面背景 #f6f7fa · 白色圆角内容卡
   三端断点：>=992px 桌面 / 768-991px 平板 / <768px 手机
   ============================================================ */

/* 占满整个电脑端屏幕：覆盖全站 .app / .main-content 的宽度限制 */
body.page-lawyer-full .app { max-width: 100%; }
body.page-lawyer-full .main-content { max-width: 100%; border-right: 0; }
.lw-page { max-width: 1200px; margin: 0 auto; padding: 24px 16px 48px; }

/* ---------- 标题区 ---------- */
.lw-hero {
    margin-bottom: 18px; padding: 22px 24px;
    background: linear-gradient(135deg, #eaf2ff 0%, #f6f7fa 55%, #edf4ff 100%);
    border: 1px solid #e2ebfb; border-radius: 14px;
}
.lw-title {
    font-size: 26px; font-weight: 700; color: #1b1f24;
    display: flex; align-items: center; gap: 10px; margin: 0 0 6px;
}
.lw-title::before {
    content: ''; width: 8px; height: 22px; border-radius: 4px;
    background: linear-gradient(180deg, #136ce9, #4d9fff); flex: none;
}
.lw-sub { font-size: 14px; color: #8a93a2; margin: 0; line-height: 1.7; max-width: 860px; }
.lw-hero-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-top: 16px; }
.lw-stat {
    background: #fff; border: 1px solid #e8ecf2; border-radius: 12px;
    padding: 12px 8px; display: flex; flex-direction: column; align-items: center; gap: 2px;
    text-align: center; box-shadow: 0 1px 2px rgba(16, 24, 40, .04);
}
.lw-stat b { font-size: 20px; color: #136ce9; font-weight: 700; line-height: 1.3; }
.lw-stat span { font-size: 12px; color: #8a93a2; }

/* ---------- 筛选面板 ---------- */
.lw-filters {
    background: #fff; border-radius: 12px; padding: 16px;
    box-shadow: 0 1px 3px rgba(16, 24, 40, .06), 0 1px 2px rgba(16, 24, 40, .04);
    display: grid; grid-template-columns: 170px 210px 180px minmax(0, 1fr) auto;
    gap: 12px 14px; align-items: end;
}
.lw-fitem { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.lw-fitem-btns { flex-direction: row; gap: 8px; align-items: center; }
.lw-select, .lw-input {
    width: 100%; box-sizing: border-box; padding: 9px 12px;
    border: 1.5px solid #e0e4eb; border-radius: 8px; font-size: 14px;
    color: #1b1f24; background: #fff; font-family: inherit; outline: none;
    transition: border-color .15s, box-shadow .15s; appearance: auto;
}
.lw-select:focus, .lw-input:focus { border-color: #136ce9; box-shadow: 0 0 0 3px rgba(19, 108, 233, .12); }
.lw-input::placeholder { color: #b3bac6; }

.lw-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 5px;
    padding: 9px 18px; border-radius: 8px; font-size: 14px; font-weight: 500;
    border: 1.5px solid transparent; cursor: pointer; font-family: inherit;
    transition: background .15s, border-color .15s, box-shadow .15s, color .15s;
    white-space: nowrap;
}
.lw-btn-primary { background: #136ce9; color: #fff; }
.lw-btn-primary:hover { background: #0f5ed0; box-shadow: 0 2px 8px rgba(19, 108, 233, .3); }
.lw-btn-ghost { background: #fff; border-color: #d5dbe4; color: #5a6472; }
.lw-btn-ghost:hover { border-color: #136ce9; color: #136ce9; }
.lw-btn-solid { background: #136ce9; color: #fff; }
.lw-btn-solid:hover { background: #0f5ed0; }

/* ---------- 快捷标签 ---------- */
.lw-tags { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; }
.lw-tag {
    display: inline-flex; align-items: center; gap: 5px;
    font-size: 12px; color: #5a6472; background: #fff;
    border: 1px solid #e4e8ef; border-radius: 999px; padding: 4px 11px;
    cursor: pointer; transition: all .15s; user-select: none;
}
.lw-tag:hover { border-color: #136ce9; color: #136ce9; }
.lw-tag.active { background: #eef4ff; border-color: #136ce9; color: #136ce9; font-weight: 600; }
.lw-tag b { font-weight: 600; color: #8a93a2; }
.lw-tag.active b { color: #136ce9; }
.lw-tag-cat {
    font-size: 11px; color: #a0a8b5; margin-right: 2px;
    display: inline-flex; align-items: center; gap: 3px;
}

/* ---------- 工具条 ---------- */
.lw-toolbar {
    display: flex; align-items: center; justify-content: space-between;
    gap: 10px; margin: 16px 0 10px; flex-wrap: wrap;
}
.lw-count { font-size: 13.5px; color: #5a6472; }
.lw-count b { color: #136ce9; font-size: 15px; }
.lw-tools { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.lw-sort, .lw-pagesize { width: auto; padding: 7px 10px; font-size: 13px; }
.lw-view { display: inline-flex; border: 1.5px solid #e0e4eb; border-radius: 8px; overflow: hidden; background: #fff; }
.lw-view-btn {
    border: 0; background: transparent; padding: 8px 12px; font-size: 13px;
    cursor: pointer; color: #5a6472; font-family: inherit;
    transition: background .15s, color .15s;
}
.lw-view-btn + .lw-view-btn { border-left: 1.5px solid #e0e4eb; }
.lw-view-btn.active { background: #eef4ff; color: #136ce9; font-weight: 600; }

/* ---------- 结果表格 ---------- */
.lw-table-wrap {
    background: #fff; border-radius: 10px; overflow: hidden;
    box-shadow: 0 1px 3px rgba(16, 24, 40, .06), 0 1px 2px rgba(16, 24, 40, .04);
}
.lw-table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.lw-table thead th {
    background: #f7f9fc; color: #5a6472; font-size: 12.5px; font-weight: 600;
    text-align: left; padding: 11px 12px; border-bottom: 1.5px solid #e8ecf2;
    position: sticky; top: 0; z-index: 2; white-space: nowrap;
}
.lw-table tbody td { padding: 10px 12px; border-bottom: 1px solid #f0f2f6; color: #3a4350; vertical-align: middle; }
.lw-table tbody tr { cursor: pointer; transition: background .12s; }
.lw-table tbody tr:hover { background: #f2f7ff; }
.lw-col-no { width: 56px; }
.lw-col-prov { width: 64px; }
.lw-col-name { width: 84px; }
.lw-col-firm { min-width: 170px; }
.lw-col-fields { min-width: 190px; }
.lw-col-langs { min-width: 110px; }
.lw-col-phone { min-width: 110px; }
.lw-col-email { min-width: 150px; }
.lw-no { color: #a0a8b5; font-size: 12.5px; }
.lw-prov { font-weight: 500; color: #5a6472; }
.lw-name { font-weight: 600; color: #136ce9; }
.lw-firm { color: #3a4350; }
.lw-badge {
    display: inline-block; font-size: 11.5px; line-height: 1.6;
    padding: 1px 8px; border-radius: 999px; margin: 1px 3px 1px 0;
    background: #f0f4fa; color: #475569; white-space: nowrap;
}
.lw-badge-f { background: #eef4ff; color: #136ce9; }
.lw-badge-l { background: #f0fdf4; color: #15803d; }
.lw-badge-empty { background: #f4f5f7; color: #a0a8b5; font-style: normal; }
.lw-phone { font-variant-numeric: tabular-nums; color: #3a4350; }
.lw-email { color: #136ce9; word-break: break-all; }

/* ---------- 卡片视图 ---------- */
.lw-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.lw-card {
    background: #fff; border-radius: 12px; padding: 14px 16px;
    box-shadow: 0 1px 3px rgba(16, 24, 40, .06), 0 1px 2px rgba(16, 24, 40, .04);
    cursor: pointer; transition: box-shadow .15s, transform .15s, border-color .15s;
    border: 1.5px solid transparent;
}
.lw-card:hover { box-shadow: 0 4px 14px rgba(16, 24, 40, .1); transform: translateY(-1px); border-color: #cfe0fb; }
.lw-card-head { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.lw-card-name { font-size: 16px; font-weight: 700; color: #1b1f24; }
.lw-card-prov { font-size: 11.5px; color: #136ce9; background: #eef4ff; border-radius: 999px; padding: 1px 8px; }
.lw-card-firm { font-size: 12.5px; color: #5a6472; margin-bottom: 8px; line-height: 1.5; }
.lw-card-line { font-size: 12px; color: #8a93a2; margin-top: 6px; display: flex; align-items: center; gap: 5px; min-width: 0; }
.lw-card-line .lw-card-val { color: #3a4350; word-break: break-all; }

/* ---------- 空状态 ---------- */
.lw-empty {
    background: #fff; border-radius: 10px; padding: 48px 16px; text-align: center;
    box-shadow: 0 1px 3px rgba(16, 24, 40, .06), 0 1px 2px rgba(16, 24, 40, .04);
}
.lw-empty-icon { font-size: 34px; margin-bottom: 8px; }
.lw-empty h3 { margin: 0 0 6px; font-size: 16px; color: #1b1f24; }
.lw-empty p { margin: 0 0 16px; font-size: 13px; color: #8a93a2; }

/* ---------- 分页 ---------- */
.lw-pager { display: flex; align-items: center; justify-content: center; gap: 6px; margin-top: 16px; flex-wrap: wrap; }
.lw-pg-btn {
    min-width: 34px; height: 34px; padding: 0 10px; border-radius: 8px;
    border: 1.5px solid #e0e4eb; background: #fff; color: #5a6472;
    font-size: 13.5px; cursor: pointer; font-family: inherit;
    transition: all .15s;
}
.lw-pg-btn:hover:not(:disabled) { border-color: #136ce9; color: #136ce9; }
.lw-pg-btn.active { background: #136ce9; border-color: #136ce9; color: #fff; font-weight: 600; }
.lw-pg-btn:disabled { opacity: .45; cursor: not-allowed; }
.lw-pg-info { font-size: 12.5px; color: #8a93a2; margin: 0 8px; }

/* ---------- 详情抽屉 ---------- */
.lw-drawer-mask {
    position: fixed; inset: 0; background: rgba(15, 23, 42, .45);
    z-index: 10001; animation: lwFade .18s ease;
}
/* hidden 兜底：.lw-drawer/.lw-cards 的 display 声明会覆盖 [hidden] 的 UA 样式，
   导致页面加载即弹出抽屉且关闭按钮失效，必须显式兜底 */
.lw-drawer[hidden], .lw-drawer-mask[hidden], .lw-cards[hidden],
.lw-table-wrap[hidden], .lw-empty[hidden] { display: none !important; }
@keyframes lwFade { from { opacity: 0; } to { opacity: 1; } }
.lw-drawer {
    position: fixed; top: 0; right: 0; bottom: 0; width: 420px; max-width: 92vw;
    background: #fff; z-index: 10002; display: flex; flex-direction: column;
    box-shadow: -8px 0 30px rgba(15, 23, 42, .18);
    transform: translateX(0); transition: transform .22s ease;
}
.lw-drawer-head {
    display: flex; align-items: center; justify-content: space-between;
    padding: 16px 18px; border-bottom: 1px solid #eef0f4;
}
.lw-drawer-title { font-size: 16px; font-weight: 700; color: #1b1f24; }
.lw-drawer-close {
    width: 30px; height: 30px; border-radius: 50%; border: 0; background: #f1f3f7;
    color: #5a6472; font-size: 18px; cursor: pointer; line-height: 1;
    transition: background .15s, color .15s;
}
.lw-drawer-close:hover { background: #e5e9f0; color: #1b1f24; }
.lw-drawer-body { padding: 20px 18px calc(32px + env(safe-area-inset-bottom, 0px)); overflow-y: auto; flex: 1; }
.lw-d-name { font-size: 24px; font-weight: 700; color: #1b1f24; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.lw-d-prov { font-size: 12.5px; color: #136ce9; background: #eef4ff; border-radius: 999px; padding: 2px 10px; font-weight: 500; }
.lw-d-firm { font-size: 14px; color: #5a6472; margin: 8px 0 16px; }
.lw-d-sec { margin-bottom: 16px; }
.lw-d-sec-title { font-size: 12px; color: #a0a8b5; font-weight: 600; margin-bottom: 7px; letter-spacing: .3px; }
.lw-d-row {
    display: flex; align-items: center; justify-content: space-between; gap: 10px;
    background: #f7f9fc; border-radius: 10px; padding: 11px 14px; margin-bottom: 8px;
}
.lw-d-row-label { font-size: 12px; color: #8a93a2; flex: none; }
.lw-d-row-val { font-size: 13.5px; color: #1b1f24; word-break: break-all; text-align: right; }
.lw-d-copy {
    flex: none; font-size: 12px; color: #136ce9; background: #eef4ff;
    border: 0; border-radius: 6px; padding: 4px 10px; cursor: pointer; font-family: inherit;
    transition: background .15s;
}
.lw-d-copy:hover { background: #dbe9ff; }
.lw-d-copy:disabled { opacity: .45; cursor: not-allowed; }
.lw-d-copy:disabled:hover { background: #eef4ff; }
.lw-d-copy.copied { color: #15803d; background: #dcfce7; }
.lw-d-badges { display: flex; flex-wrap: wrap; gap: 6px; }
.lw-d-note {
    font-size: 12px; color: #8a93a2; line-height: 1.7;
    background: #fafbfc; border: 1px dashed #e4e8ef; border-radius: 10px; padding: 12px 14px;
}

/* ---------- 使用说明 ---------- */
.lw-guide {
    background: #fff; border-radius: 10px; padding: 18px 20px; margin-top: 20px;
    box-shadow: 0 1px 3px rgba(16, 24, 40, .06), 0 1px 2px rgba(16, 24, 40, .04);
}
.lw-guide h3 { font-size: 16px; font-weight: 700; color: #1b1f24; margin: 0 0 10px; }
.lw-guide ol { margin: 0; padding-left: 20px; }
.lw-guide li { font-size: 13.5px; color: #5a6472; line-height: 1.9; }
.lw-guide p { font-size: 12.5px; color: #8a93a2; line-height: 1.8; margin: 10px 0 0; }

/* ---------- Toast 提示 ---------- */
.lw-toast {
    position: fixed; left: 50%; bottom: 42px; transform: translate(-50%, 12px);
    background: rgba(24, 30, 40, .92); color: #fff; font-size: 13.5px;
    padding: 10px 18px; border-radius: 999px; z-index: 10003;
    opacity: 0; pointer-events: none; transition: opacity .2s, transform .2s;
    max-width: 86vw; text-align: center;
}
.lw-toast.show { opacity: 1; transform: translate(-50%, 0); }
.lw-toast-err { background: rgba(200, 42, 42, .92); }

/* ---------- 加载占位 ---------- */
.lw-skeleton-row { display: block; height: 44px; background: linear-gradient(90deg, #f2f4f8 25%, #e8ecf2 37%, #f2f4f8 63%); background-size: 400% 100%; animation: lwShine 1.2s infinite; border-radius: 6px; margin-bottom: 6px; }
@keyframes lwShine { 0% { background-position: 100% 50%; } 100% { background-position: 0 50%; } }

/* ---------- 响应式：平板 <=991 ---------- */
@media (max-width: 991px) {
    .lw-filters { grid-template-columns: repeat(2, 1fr); gap: 12px 14px; }
    /* 省份|领域 / 语言+按钮 / 关键词全宽 */
    .lw-fitem-btns { grid-column: 2; grid-row: 2; justify-content: flex-end; }
    .lw-fitem-kw { grid-column: 1 / -1; grid-row: 3; }
    .lw-hero-stats { grid-template-columns: repeat(2, 1fr); }
    .lw-cards { grid-template-columns: repeat(2, 1fr); }
    .lw-table-wrap { overflow-x: auto; }
    .lw-table { min-width: 820px; }
}

/* ---------- 响应式：手机 <=767 ---------- */
@media (max-width: 767px) {
    .lw-page { padding: 16px 12px 40px; }
    .lw-hero { padding: 18px 16px; }
    .lw-title { font-size: 21px; }
    .lw-sub { font-size: 13px; }
    .lw-hero-stats { grid-template-columns: repeat(2, 1fr); gap: 8px; }
    .lw-filters { grid-template-columns: 1fr; gap: 12px; }
    .lw-fitem-kw, .lw-fitem-btns { grid-column: auto; grid-row: auto; }
    .lw-fitem-btns { display: flex; }
    .lw-fitem-btns .lw-btn { flex: 1; padding: 12px 10px; }
    /* 工具条：排序/每页/视图/导出 2×2 网格 */
    .lw-toolbar { flex-direction: column; align-items: stretch; }
    .lw-tools { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
    .lw-tools .lw-sort, .lw-tools .lw-pagesize { width: 100%; }
    .lw-view { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
    .lw-view-btn { padding: 10px 8px; font-size: 13px; }
    .lw-view-btn + .lw-view-btn { border-left: 0; }
    .lw-export { width: 100%; padding: 11px 10px; }
    /* 表格行式卡片化：姓名+省份徽章 / 电话 */
    .lw-table-wrap { overflow: visible; background: transparent; border-radius: 0; box-shadow: none; }
    .lw-table { min-width: 0; }
    .lw-table thead { display: none; }
    .lw-table, .lw-table tbody, .lw-table tr, .lw-table td { display: block; width: 100%; box-sizing: border-box; }
    .lw-table tbody { display: flex; flex-direction: column; gap: 10px; }
    .lw-table tbody tr {
        background: #fff; border-radius: 12px; padding: 12px 14px;
        box-shadow: 0 1px 3px rgba(16, 24, 40, .06), 0 1px 2px rgba(16, 24, 40, .04);
        display: grid; grid-template-columns: 1fr auto; gap: 8px 12px; align-items: center;
        transition: box-shadow .15s, transform .15s;
    }
    .lw-table tbody tr:active { box-shadow: 0 0 0 2px rgba(19, 108, 233, .25); }
    .lw-table tbody td { padding: 0; border-bottom: 0; }
    .lw-col-no, .lw-col-firm, .lw-col-fields, .lw-col-langs, .lw-col-email { display: none !important; }
    .lw-col-name { grid-column: 1; grid-row: 1; }
    .lw-col-prov { grid-column: 2; grid-row: 1; justify-self: end; }
    .lw-col-phone { grid-column: 1 / -1; grid-row: 2; }
    .lw-prov { font-size: 12px; padding: 1px 8px; border-radius: 999px; background: #eef4ff; font-weight: 500; }
    .lw-name { font-size: 15px; }
    .lw-phone { font-size: 13px; }
    .lw-phone::before { content: '电话 '; color: #8a93a2; font-size: 12px; }
    /* 快捷标签横向滚动（避免 26 个标签折行） */
    .lw-tags { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
    .lw-tags::-webkit-scrollbar { display: none; }
    .lw-tag { flex: none; }
    /* 分页紧凑 */
    .lw-pg-info { display: none; }
    .lw-pg-btn { min-width: 32px; height: 36px; padding: 0 9px; }
    /* 输入控件触控尺寸 + 防 iOS 聚焦缩放 */
    .lw-select, .lw-input { font-size: 16px; padding: 11px 12px; }
    .lw-drawer { width: 100%; max-width: 100%; }
    .lw-d-name { font-size: 21px; }
}

/* ---------- 暗色适配 ---------- */
[data-theme="dark"] .lw-stat,
[data-theme="dark"] .lw-filters,
[data-theme="dark"] .lw-table-wrap,
[data-theme="dark"] .lw-card,
[data-theme="dark"] .lw-empty,
[data-theme="dark"] .lw-guide,
[data-theme="dark"] .lw-drawer {
    background: #171c24;
    border-color: #262d38;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .3);
}
[data-theme="dark"] .lw-title,
[data-theme="dark"] .lw-card-name,
[data-theme="dark"] .lw-d-name,
[data-theme="dark"] .lw-drawer-title,
[data-theme="dark"] .lw-empty h3,
[data-theme="dark"] .lw-guide h3,
[data-theme="dark"] .lw-d-row-val { color: #e6eaf0; }
[data-theme="dark"] .lw-sub,
[data-theme="dark"] .lw-stat span,
[data-theme="dark"] .lw-count,
[data-theme="dark"] .lw-empty p,
[data-theme="dark"] .lw-pg-info,
[data-theme="dark"] .lw-guide p,
[data-theme="dark"] .lw-d-note { color: #8a93a2; }
[data-theme="dark"] .lw-table thead th { background: #1b212b; color: #a0a8b5; border-bottom-color: #262d38; }
[data-theme="dark"] .lw-table tbody td { border-bottom-color: #20242d; color: #c8ced8; }
[data-theme="dark"] .lw-table tbody tr:hover { background: #1c2532; }
[data-theme="dark"] .lw-firm, [data-theme="dark"] .lw-phone, [data-theme="dark"] .lw-card-line .lw-card-val { color: #c8ced8; }
[data-theme="dark"] .lw-no { color: #5a6472; }
[data-theme="dark"] .lw-select, [data-theme="dark"] .lw-input {
    background: #171c24; color: #e6eaf0; border-color: #2c3440;
}
[data-theme="dark"] .lw-select:focus, [data-theme="dark"] .lw-input:focus { border-color: #136ce9; }
[data-theme="dark"] .lw-view { background: #171c24; border-color: #2c3440; }
[data-theme="dark"] .lw-view-btn { color: #8a93a2; }
[data-theme="dark"] .lw-view-btn.active { background: #1d3a63; color: #7fb0ff; }
[data-theme="dark"] .lw-btn-ghost { background: #171c24; border-color: #2c3440; color: #a0a8b5; }
[data-theme="dark"] .lw-btn-ghost:hover { border-color: #136ce9; color: #7fb0ff; }
[data-theme="dark"] .lw-tag { background: #171c24; border-color: #2c3440; color: #a0a8b5; }
[data-theme="dark"] .lw-tag:hover, [data-theme="dark"] .lw-tag.active { border-color: #136ce9; color: #7fb0ff; }
[data-theme="dark"] .lw-tag.active { background: #1d3a63; }
[data-theme="dark"] .lw-tag b { color: #6b7686; }
[data-theme="dark"] .lw-badge { background: #20242d; color: #a0a8b5; }
[data-theme="dark"] .lw-badge-f { background: #1d3a63; color: #7fb0ff; }
[data-theme="dark"] .lw-badge-l { background: #123c28; color: #4ade80; }
[data-theme="dark"] .lw-badge-empty { background: #1b212b; color: #5a6472; }
[data-theme="dark"] .lw-pg-btn { background: #171c24; border-color: #2c3440; color: #a0a8b5; }
[data-theme="dark"] .lw-pg-btn.active { background: #136ce9; border-color: #136ce9; color: #fff; }
[data-theme="dark"] .lw-d-row { background: #1b212b; }
[data-theme="dark"] .lw-d-copy { background: #1d3a63; color: #7fb0ff; }
[data-theme="dark"] .lw-d-copy.copied { background: #123c28; color: #4ade80; }
[data-theme="dark"] .lw-d-note { background: #151a21; border-color: #262d38; }
[data-theme="dark"] .lw-drawer-close { background: #20242d; color: #a0a8b5; }
[data-theme="dark"] .lw-drawer-mask { background: rgba(0, 0, 0, .6); }
[data-theme="dark"] .lw-hero {
    background: linear-gradient(135deg, #131b2b 0%, #171c24 55%, #14203a 100%);
    border-color: #262d38;
}
[data-theme="dark"] .lw-table tbody tr { background: #171c24; box-shadow: 0 1px 3px rgba(0, 0, 0, .3); }
[data-theme="dark"] .lw-prov { background: #1d3a63; color: #7fb0ff; }
