@charset "UTF-8";

:root {
    --bg: #eef2f7;
    --panel: #ffffff;
    --sidebar: #2393c5;
    --sidebar-dark: #167aa9;
    --text: #1f2937;
    --muted: #667085;
    --line: #e5e7eb;
    --line-strong: #d6dbe3;
    --primary: #1688c4;
    --primary-dark: #0f6f9f;
    --green: #16a34a;
    --amber: #d97706;
    --red: #dc2626;
    --radius: 8px;
    --shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
}

/* Interface management */
.admin-interfaces-body { background:#f4f6f9; }
.interface-page { display:flex; flex-direction:column; gap:16px; }
.interface-toolbar { min-height:72px; padding:0 2px; }
.interface-toolbar .interface-state {
    min-height:36px; padding:0 14px; display:inline-flex; align-items:center; gap:8px;
    border:1px solid #e3e8ef; border-radius:6px; background:#fff; color:#667085; font-size:13px;
}
.interface-toolbar .interface-state i { width:8px; height:8px; border-radius:50%; background:#98a2b3; }
.interface-toolbar .interface-state.ready { border-color:#b7ebcd; background:#f0fbf5; color:#087443; }
.interface-toolbar .interface-state.ready i { background:#12b76a; }
.interface-report-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.interface-report-stats article {
    position:relative; min-height:104px; padding:18px; display:flex; align-items:center; gap:14px;
    overflow:hidden; border:1px solid #e5e9f0; border-radius:8px; background:#fff;
}
.interface-report-stats article::after {
    position:absolute; top:0; right:0; width:4px; height:100%; content:""; background:#1677ff;
}
.interface-report-stats article.is-green::after { background:#22a06b; }
.interface-report-stats article.is-yellow::after { background:#e69b19; }
.interface-report-stats article.is-violet::after { background:#7c5ce4; }
.interface-stat-icon {
    width:44px; height:44px; flex:0 0 44px; display:grid; place-items:center;
    border-radius:8px; background:#edf5ff; color:#1677ff; font-size:15px; font-weight:800;
}
.is-green .interface-stat-icon { color:#168653; background:#eaf8f0; }
.is-yellow .interface-stat-icon { color:#b66b08; background:#fff5df; }
.is-violet .interface-stat-icon { color:#6941c6; background:#f1edff; }
.interface-report-stats article div { min-width:0; display:grid; }
.interface-report-stats small { color:#7b8493; font-size:12px; }
.interface-report-stats strong {
    margin-top:4px; overflow:hidden; color:#172033; font-size:20px; text-overflow:ellipsis; white-space:nowrap;
}
.interface-report-stats em {
    margin-top:5px; overflow:hidden; color:#98a1af; font-size:11px; font-style:normal;
    text-overflow:ellipsis; white-space:nowrap;
}
.interface-page .interface-workspace { display:grid; grid-template-columns:minmax(620px,1fr) 318px; gap:14px; }
.interface-page .provider-card,.interface-page .guide-card {
    border:1px solid #e4e8ef; border-radius:8px; background:#fff; box-shadow:none;
}
.interface-page .provider-title {
    padding:18px 20px; display:flex; align-items:center; justify-content:space-between;
    border-bottom:1px solid #eef1f5; background:#fbfcfe;
}
.interface-page .provider-brand { display:flex; align-items:center; gap:13px; }
.interface-page .provider-logo {
    width:46px; height:46px; display:grid; place-items:center; border-radius:8px;
    background:#1677ff; color:#fff; font-weight:800; letter-spacing:-1px;
}
.provider-eyebrow { display:block; margin-bottom:2px; color:#1677ff; font-size:11px; font-weight:700; }
.interface-page .provider-brand h2 { margin:0 0 2px; font-size:17px; }
.interface-page .provider-brand p { margin:0; color:#8b95a5; font-size:13px; }
.interface-page .sms-form { padding:20px; }
.interface-page .enable-row {
    padding:15px 16px; display:flex; align-items:center; justify-content:space-between;
    border:1px solid #dbe7f8; border-radius:6px; background:#f4f8fe;
}
.interface-page .sms-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px 14px; }
.interface-page .sms-field { display:flex; flex-direction:column; gap:7px; }
.interface-page .sms-field label { color:#344054; font-size:13px; font-weight:600; }
.interface-page .sms-field input,.interface-page .sms-field select {
    height:42px; padding:0 12px; border:1px solid #d9dee8; border-radius:5px; background:#fff;
}
.interface-page .sms-field small { color:#98a2b3; line-height:1.5; }
.interface-page .sms-field input:focus,.interface-page .sms-field select:focus,.interface-page .test-line input:focus {
    border-color:#1677ff; outline:0; box-shadow:0 0 0 3px rgba(22,119,255,.09);
}
.interface-page .form-actions {
    margin-top:22px; padding-top:18px; display:flex; justify-content:flex-end; border-top:1px solid #eef1f5;
}
.interface-page .test-box {
    margin:0 20px 20px; padding:18px; border:1px solid #e4e8ef; border-radius:6px; background:#fafbfc;
}
.interface-page .test-line { display:flex; gap:10px; }
.interface-page .test-line input { flex:1; height:40px; padding:0 12px; border:1px solid #d9e0ec; border-radius:5px; }
.interface-page .guide-card { align-self:start; padding:0; overflow:hidden; }
.interface-page .guide-card h3 {
    margin:0; padding:18px 20px; border-bottom:1px solid #edf0f4; background:#fbfcfe; font-size:16px;
}
.interface-page .guide-step { margin:0; padding:15px 20px 0; display:flex; gap:11px; }
.interface-page .guide-step b {
    width:26px; height:26px; flex:0 0 26px; display:grid; place-items:center;
    border-radius:5px; background:#edf5ff; color:#1677ff;
}
.interface-page .security-note {
    margin:18px 20px 20px; padding:13px; border:1px solid #f1dfb7;
    border-radius:5px; background:#fff8eb; color:#9a6700; font-size:12px; line-height:1.6;
}
@media(max-width:1180px) {
    .interface-report-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .interface-page .interface-workspace { grid-template-columns:1fr; }
}
@media(max-width:720px) {
    .interface-report-stats,.interface-page .sms-grid { grid-template-columns:1fr; }
    .interface-toolbar { align-items:flex-start; flex-direction:column; }
}

/* Dealer portal */
.dealer-dashboard-page,
.dealer-module-page {
    display: grid;
    gap: 14px;
}

.dealer-dashboard-actions,
.dealer-worker-topbar {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
}

.dealer-worker-topbar {
    justify-content: space-between;
}

.dealer-worker-topbar .summary-strip {
    flex: 1;
    margin-bottom: 0;
}

.dealer-worker-skill-field {
    grid-column: 1 / -1;
}

.dealer-worker-create-note {
    margin-top: 4px;
    padding: 10px 12px;
    color: #475569;
    background: #f8fafc;
    border: 1px solid var(--line);
    border-radius: 4px;
    font-size: 13px;
}

.field-hint {
    display: block;
    margin-top: 5px;
    color: var(--muted);
    font-size: 12px;
}

input[readonly] {
    color: #64748b;
    background: #f8fafc;
}

.dealer-account-strip {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1px;
    overflow: hidden;
    background: var(--line);
    border: 1px solid var(--line);
    border-radius: var(--radius);
}

.dealer-account-strip > div {
    display: grid;
    gap: 5px;
    padding: 14px 18px;
    background: #fff;
}

.dealer-account-strip span,
.dealer-stat-card span,
.dealer-deposit-card span {
    color: var(--muted);
    font-size: 13px;
}

.dealer-alert {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 16px;
    border: 1px solid #f5c667;
    border-radius: var(--radius);
    background: #fffaf0;
    color: #92400e;
}

.dealer-alert.danger {
    color: #991b1b;
    border-color: #fecaca;
    background: #fff5f5;
}

.dealer-alert span {
    color: inherit;
}

.dealer-stat-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 14px;
}

.dealer-stat-card {
    display: grid;
    min-width: 0;
    gap: 6px;
    padding: 17px 18px;
    color: var(--text);
    background: #fff;
    border: 1px solid var(--line);
    border-top: 3px solid #94a3b8;
    border-radius: var(--radius);
}

.dealer-stat-card:hover {
    color: var(--text);
    border-color: #bcdbea;
    box-shadow: 0 6px 18px rgba(22, 136, 196, 0.08);
}

.dealer-stat-card.warning { border-top-color: #f59e0b; }
.dealer-stat-card.danger { border-top-color: #ef4444; }
.dealer-stat-card.primary { border-top-color: var(--primary); }
.dealer-stat-card.success { border-top-color: #22c55e; }

.dealer-stat-card strong {
    color: #111827;
    font-size: 27px;
    line-height: 1.2;
}

.dealer-stat-card small,
.data-table td small,
.dealer-product-body small,
.dealer-deposit-card small {
    display: block;
    margin-top: 4px;
    color: var(--muted);
    font-size: 12px;
}

.dealer-dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(260px, 0.72fr);
    gap: 14px;
    align-items: start;
}

.dealer-section-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 14px;
}

.card .dealer-section-heading h2,
.dealer-section-heading h2 {
    margin: 0 0 4px;
    font-size: 17px;
}

.dealer-section-heading p {
    margin: 0;
    color: var(--muted);
    font-size: 12px;
}

.table-wrap.borderless {
    border: 0;
    border-radius: 0;
}

.dealer-recent-table {
    min-width: 650px;
}

.dealer-todo-card {
    display: grid;
}

.dealer-todo-card > a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 13px 0;
    color: #374151;
    border-bottom: 1px solid #eef0f3;
}

.dealer-todo-card > a:last-child { border-bottom: 0; }
.dealer-todo-card > a strong { color: var(--primary-dark); font-size: 18px; }

.dealer-filter-bar {
    grid-template-columns: minmax(240px, 1.4fr) repeat(2, minmax(160px, .8fr)) auto;
    margin-bottom: 0;
}

.dealer-worker-table,
.dealer-case-table { min-width: 1080px; }

.dealer-cases-page {
    min-height: calc(100vh - 136px);
    grid-template-rows: auto auto minmax(0, 1fr);
}

.dealer-cases-page > .table-wrap {
    height: 100%;
    min-height: 360px;
    background: #fff;
}

.dealer-workers-page {
    min-height: calc(100vh - 136px);
    grid-template-rows: auto auto minmax(0, 1fr);
}

.dealer-workers-page > .table-wrap {
    height: 100%;
    min-height: 360px;
    background: #fff;
}

.dealer-case-table {
    align-self: start;
}

.dealer-worker-table td:first-child,
.dealer-case-table td:first-child { min-width: 165px; }

.dealer-worker-actions {
    min-width: 150px;
    white-space: nowrap;
    vertical-align: middle !important;
}

.dealer-worker-action-line,
.dealer-worker-action-line form {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin: 0;
}

.dealer-worker-action-line { min-height: 28px; }
.dealer-worker-action-line > span { color: #cbd5e1; }

.dealer-worker-actions button {
    appearance: none;
    padding: 0;
    color: #0b65c2;
    border: 0;
    background: transparent;
    cursor: pointer;
    font: inherit;
}

.dealer-worker-actions em {
    color: #94a3b8;
    font-style: normal;
    cursor: not-allowed;
}

.dealer-status-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 10px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: #f8fafc;
}

.dealer-case-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.dealer-case-topbar .dealer-status-tabs {
    flex: 1;
}

.dealer-case-create-dialog {
    width: min(900px, calc(100vw - 48px));
}

.dealer-case-create-page {
    display: grid;
    gap: 16px;
}

.dealer-create-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--line);
}

.dealer-create-toolbar span {
    color: var(--primary-dark);
    font-size: 12px;
}

.dealer-create-toolbar h2 {
    margin: 5px 0 0;
    font-size: 21px;
}

.dealer-case-page-form {
    display: grid;
    gap: 14px;
}

.dealer-create-section {
    padding: 18px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: #fbfcfe;
}

.dealer-create-section-title {
    display: flex;
    align-items: center;
    gap: 11px;
    margin-bottom: 16px;
}

.dealer-create-section-title > span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    color: #fff;
    background: var(--primary);
    border-radius: 50%;
    font-weight: 700;
}

.dealer-create-section-title h3 {
    margin: 0 0 3px;
    font-size: 16px;
}

.dealer-create-section-title p {
    margin: 0;
    color: var(--muted);
    font-size: 12px;
}

.dealer-create-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding-top: 2px;
}

.dealer-case-full-field {
    grid-column: 1 / -1;
}

.dealer-product-filter {
    display: grid;
    grid-template-columns: minmax(220px, .7fr) minmax(300px, 1.3fr) auto;
    gap: 10px;
    align-items: end;
    margin-bottom: 14px;
}

.dealer-case-product-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 12px;
    min-height: 110px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: #fff;
}

.dealer-case-product-card {
    position: relative;
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr);
    gap: 12px;
    min-height: 108px;
    padding: 10px;
    color: var(--text);
    text-align: left;
    border: 1px solid #dce2e9;
    border-radius: 6px;
    background: #fff;
    cursor: pointer;
}

.dealer-case-product-card:hover {
    border-color: #86c4e2;
    box-shadow: 0 5px 15px rgba(22, 136, 196, .08);
}

.dealer-case-product-card.selected {
    border-color: var(--primary);
    box-shadow: 0 0 0 2px rgba(22, 136, 196, .13);
}

.dealer-case-product-image {
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    width: 88px;
    height: 88px;
    color: #94a3b8;
    background: #f8fafc;
    border-radius: 5px;
}

.dealer-case-product-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.dealer-case-product-image em {
    font-style: normal;
    font-size: 12px;
}

.dealer-case-product-info {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 6px;
}

.dealer-case-product-info strong,
.dealer-case-product-info span,
.dealer-case-product-info code {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.dealer-case-product-info strong { font-size: 14px; }
.dealer-case-product-info span { color: var(--muted); font-size: 12px; }
.dealer-case-product-info code { color: var(--primary-dark); font-size: 11px; }

.dealer-case-product-check {
    display: none;
    position: absolute;
    top: 7px;
    right: 7px;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    color: #fff;
    background: var(--primary);
    border-radius: 50%;
    font-size: 12px;
}

.dealer-case-product-card.selected .dealer-case-product-check { display: inline-flex; }

.dealer-product-empty {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 80px;
    color: var(--muted);
}

.dealer-product-empty[hidden] { display: none; }
.dealer-product-sn-row { margin-top: 14px; }

.dealer-selected-products {
    margin-top: 16px;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: #fff;
}

.dealer-selected-products-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 13px 15px;
    background: #f6f8fa;
    border-bottom: 1px solid var(--line);
}

.dealer-selected-products-title strong,
.dealer-selected-products-title span {
    display: block;
}

.dealer-selected-products-title span {
    margin-top: 3px;
    color: var(--muted);
    font-size: 12px;
}

.dealer-selected-products-title em {
    color: #475569;
    font-style: normal;
    font-size: 13px;
}

.dealer-selected-products-title b { color: var(--primary-dark); }

.dealer-selected-product-list {
    overflow-x: auto;
}

.dealer-selected-product-row {
    display: grid;
    grid-template-columns: minmax(240px, 1.2fr) 100px minmax(180px, .8fr) minmax(190px, .9fr) auto;
    gap: 12px;
    align-items: end;
    min-width: 980px;
    padding: 13px 15px;
    border-bottom: 1px solid #edf0f3;
}

.dealer-selected-product-row:last-of-type { border-bottom: 0; }

.dealer-selected-product-main {
    display: flex;
    align-items: center;
    gap: 11px;
    min-width: 0;
}

.dealer-selected-product-main > span {
    display: inline-flex;
    flex: 0 0 54px;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    width: 54px;
    height: 54px;
    color: #94a3b8;
    background: #f8fafc;
    border-radius: 5px;
    font-size: 10px;
}

.dealer-selected-product-main img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.dealer-selected-product-main strong,
.dealer-selected-product-main small {
    display: block;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.dealer-selected-product-main small {
    margin-top: 5px;
    color: var(--muted);
}

.dealer-selected-product-row label {
    margin-bottom: 5px;
    font-size: 12px;
}

.dealer-selected-product-row input { padding: 8px 9px; }

.dealer-remove-product {
    min-height: 36px;
    padding: 7px 10px;
    color: #b91c1c;
    border: 1px solid #fecaca;
    border-radius: 4px;
    background: #fff;
    cursor: pointer;
}

.dealer-remove-product:hover { background: #fef2f2; }

.dealer-selected-empty {
    padding: 28px 16px;
    color: var(--muted);
    text-align: center;
}

.dealer-selected-empty[hidden],
.dealer-selected-product-row[hidden] { display: none; }

.dealer-usage-area-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 12px;
}

.dealer-usage-area-card {
    padding: 14px;
    border: 1px solid #dce2e9;
    border-radius: 6px;
    background: #fff;
}

.dealer-usage-area-card.selected {
    border-color: var(--primary);
    background: #f7fcff;
    box-shadow: 0 0 0 2px rgba(22, 136, 196, .1);
}

.dealer-usage-area-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 12px;
}

.dealer-usage-area-heading label {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin: 0;
    cursor: pointer;
}

.dealer-usage-area-heading input {
    width: 16px;
    height: 16px;
    margin: 0;
}

.dealer-usage-area-heading span {
    color: var(--muted);
    font-size: 11px;
}

.dealer-usage-area-quantity label,
.dealer-usage-area-remark label {
    font-size: 12px;
}

.dealer-usage-area-quantity input,
.dealer-usage-area-remark input {
    padding: 8px 9px;
}

.dealer-usage-area-remark { margin-top: 10px; }
.dealer-construction-note { margin-top: 14px; }

.dealer-worker-dispatch {
    margin-top: 16px;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: #fff;
}

.dealer-worker-dispatch-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 12px 14px;
    background: #f6f8fa;
    border-bottom: 1px solid var(--line);
}

.dealer-worker-dispatch-title span {
    color: var(--muted);
    font-size: 12px;
}

.dealer-dispatch-worker-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 10px;
    padding: 13px;
}

.dealer-dispatch-worker-card {
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    margin: 0;
    padding: 12px;
    border: 1px solid #dce2e9;
    border-radius: 6px;
    background: #fff;
    cursor: pointer;
}

.dealer-dispatch-worker-card:hover,
.dealer-dispatch-worker-card.selected {
    border-color: var(--primary);
    background: #f7fcff;
}

.dealer-dispatch-worker-card.selected {
    box-shadow: 0 0 0 2px rgba(22, 136, 196, .1);
}

.dealer-dispatch-worker-card.disabled {
    opacity: .62;
    cursor: not-allowed;
    background: #f8fafc;
}

.dealer-dispatch-worker-card > input {
    width: 17px;
    height: 17px;
    margin: 0;
}

.dealer-dispatch-worker-main,
.dealer-dispatch-worker-main strong,
.dealer-dispatch-worker-main small,
.dealer-dispatch-worker-meta,
.dealer-dispatch-worker-meta em,
.dealer-dispatch-worker-meta small {
    display: block;
    min-width: 0;
}

.dealer-dispatch-worker-main small,
.dealer-dispatch-worker-meta small,
.dealer-dispatch-worker-meta em {
    overflow: hidden;
    margin-top: 4px;
    color: var(--muted);
    white-space: nowrap;
    text-overflow: ellipsis;
    font-size: 11px;
    font-style: normal;
}

.dealer-dispatch-worker-meta {
    display: none;
}

.dealer-status-tabs a {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 7px 12px;
    color: #334155;
    border: 1px solid #dbe2ea;
    border-radius: 999px;
    background: #fff;
}

.dealer-status-tabs a.active,
.dealer-status-tabs a:hover {
    color: #fff;
    border-color: var(--primary);
    background: var(--primary);
}

.dealer-status-tabs strong {
    font-size: 12px;
}

.dealer-case-actions {
    min-width: 190px;
    vertical-align: middle !important;
    white-space: nowrap;
    line-height: 1;
}

.dealer-case-item-summary {
    display: grid;
    gap: 7px;
    min-width: 230px;
}

.dealer-case-item-summary > div {
    padding-bottom: 7px;
    border-bottom: 1px dashed #dbe2ea;
}

.dealer-case-item-summary > div:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.dealer-case-detail-link {
    display: inline-flex;
    align-items: center;
    margin: 0;
}

.dealer-case-action-line {
    display: flex;
    align-items: center;
    min-height: 32px;
    white-space: nowrap;
}

.dealer-case-action-line > a,
.dealer-case-action-line > form {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 26px;
    margin: 0;
    vertical-align: middle;
    line-height: 26px;
}

.dealer-case-action-line > * + *::before {
    content: "|";
    display: inline-flex;
    align-items: center;
    height: 26px;
    margin: 0 7px;
    color: #cbd5e1;
    font-weight: 400;
    line-height: 26px;
}

.dealer-review-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.dealer-case-row-action {
    display: inline-flex;
    align-items: center;
    margin: 0;
}

.dealer-case-row-action button {
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 26px;
    padding: 0;
    color: #0b65c2;
    border: 0;
    background: transparent;
    cursor: pointer;
    font: inherit;
    line-height: 1;
    vertical-align: middle;
}

.dealer-case-row-action button:hover { color: var(--primary-dark); }

.dealer-case-view-page {
    display: grid;
    gap: 14px;
}

.dealer-case-view-toolbar,
.dealer-detail-section-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.dealer-case-view-toolbar {
    padding-bottom: 14px;
    border-bottom: 1px solid var(--line);
}

.dealer-case-view-toolbar > div:first-child span {
    color: var(--primary-dark);
    font-size: 12px;
}

.dealer-case-view-toolbar h2 {
    margin: 5px 0 0;
    font-size: 21px;
}

.dealer-progress-panel,
.dealer-detail-card,
.dealer-review-panel {
    padding: 17px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: #fff;
}

.dealer-detail-section-title {
    margin-bottom: 14px;
}

.dealer-detail-section-title h3 {
    margin: 0 0 3px;
    font-size: 16px;
}

.dealer-detail-section-title p {
    margin: 0;
    color: var(--muted);
    font-size: 12px;
}

.dealer-detail-section-title > .dealer-section-edit {
    appearance: none;
    padding: 0;
    border: 0 !important;
    background: transparent !important;
    color: #0878b9;
    font: inherit;
    font-size: 13px;
    cursor: pointer;
    text-decoration: none;
}

.dealer-detail-section-title > .dealer-section-edit:hover { color: var(--primary-dark); }

.dealer-inline-editor,
.dealer-product-inline-editor,
.dealer-areas-inline-editor,
.dealer-description-inline-editor {
    margin-top: 15px;
    padding-top: 15px;
    border-top: 1px solid #e7edf2;
}

.dealer-inline-editor {
    display: grid;
    gap: 11px;
}

.dealer-inline-editor[hidden],
.dealer-product-inline-editor[hidden],
.dealer-areas-inline-editor[hidden],
.dealer-description-inline-editor[hidden] { display: none !important; }

.dealer-inline-editor .form-row { margin: 0; }

.dealer-inline-editor-actions {
    display: flex;
    justify-content: flex-end;
    gap: 9px;
    margin-top: 14px;
}

.dealer-product-inline-editor { display: block; }

.dealer-areas-inline-editor,
.dealer-description-inline-editor { display: block; }

.dealer-view-area-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.dealer-description-inline-editor textarea {
    min-height: 150px;
    resize: vertical;
}

.dealer-inline-product-grid {
    min-height: 150px;
    max-height: 330px;
    margin-top: 12px;
    overflow-y: auto;
}

.dealer-progress-steps {
    display: grid;
    grid-template-columns: repeat(7, minmax(100px, 1fr));
    overflow-x: auto;
    padding: 8px 0 2px;
}

.dealer-progress-step {
    position: relative;
    display: grid;
    justify-items: center;
    gap: 8px;
    min-width: 100px;
    color: #94a3b8;
    text-align: center;
    font-size: 12px;
}

.dealer-progress-step::before {
    content: "";
    position: absolute;
    top: 14px;
    left: -50%;
    width: 100%;
    height: 2px;
    background: #e2e8f0;
}

.dealer-progress-step:first-child::before { display: none; }

.dealer-progress-step i {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    color: #64748b;
    background: #f1f5f9;
    border: 2px solid #dbe2ea;
    border-radius: 50%;
    font-style: normal;
    font-weight: 700;
}

.dealer-progress-step.done { color: #166534; }
.dealer-progress-step.done::before { background: #86d7a2; }
.dealer-progress-step.done i { color: #fff; border-color: #22a559; background: #22a559; }
.dealer-progress-step.current i { box-shadow: 0 0 0 4px rgba(34, 165, 89, .15); }

.dealer-review-panel {
    display: grid;
    grid-template-columns: minmax(260px, .7fr) minmax(420px, 1.3fr);
    gap: 18px;
    border-color: #f3c86b;
    background: #fffaf0;
}

.dealer-review-panel > div span {
    display: block;
    margin-top: 7px;
    color: #92400e;
    line-height: 1.6;
}
.dealer-construction-archive { padding:17px; border:1px solid #dbe6f2; border-radius:var(--radius); background:#f8fbff; scroll-margin-top:16px; }
.dealer-construction-archive .dealer-detail-section-title > span { color:#1769d5; font-weight:700; }
.dealer-construction-photo-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.dealer-construction-photo-grid article { min-width:0; overflow:hidden; border:1px solid #dfe7f0; border-radius:9px; background:#fff; }
.dealer-construction-photo-grid article.review-approved { border-color:#9ed8b9; }
.dealer-construction-photo-grid article.review-rejected { border-color:#efa6a6; background:#fff8f8; }
.dealer-construction-photo-grid article > a { display:block; aspect-ratio:4/3; overflow:hidden; background:#edf2f7; }
.dealer-construction-photo-grid article > a img { width:100%; height:100%; object-fit:cover; }
.dealer-construction-photo-grid article > div { display:grid; gap:5px; padding:10px; }
.dealer-construction-photo-grid article > div strong,
.dealer-construction-photo-grid article > div span,
.dealer-construction-photo-grid article > div small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dealer-construction-photo-grid article > div span,
.dealer-construction-photo-grid article > div small { color:var(--muted); font-size:11px; }
.dealer-construction-photo-grid article > div em { color:#9a610c; font-size:11px; font-style:normal; }
.dealer-construction-photo-grid article.review-approved > div em { color:#137347; }
.dealer-construction-photo-grid article.review-rejected > div em,
.dealer-construction-photo-grid article.review-rejected > div p { color:#c73737; }
.dealer-construction-photo-grid article > div p { margin:0; font-size:12px; }
.dealer-construction-photo-grid article > form { display:grid; gap:8px; padding:10px; border-top:1px solid #e8edf3; }
.dealer-construction-photo-grid article > form > div { display:flex; gap:7px; }
.dealer-construction-photo-grid article > form .button { flex:1; }

.dealer-case-detail-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.dealer-case-detail-grid.two-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.dealer-detail-card dl { margin: 0; }
.dealer-detail-card dl > div { padding: 9px 0; border-bottom: 1px solid #eef0f3; }
.dealer-detail-card dl > div:last-child { border-bottom: 0; }
.dealer-detail-card dt { margin-bottom: 4px; color: var(--muted); font-size: 12px; }
.dealer-detail-card dd { margin: 0; line-height: 1.5; }

.dealer-worker-change-form {
    display: grid;
    gap: 9px;
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid #eef0f3;
}

.dealer-worker-change-form .button { justify-self: start; }

.dealer-detail-product-table { min-width: 700px; }
.dealer-detail-product { display: flex; align-items: center; gap: 10px; }
.dealer-detail-product > span { display: inline-flex; width: 48px; height: 48px; background: #f8fafc; border-radius: 5px; }
.dealer-detail-product img { width: 100%; height: 100%; object-fit: contain; }
.dealer-detail-product small { display: block; margin-top: 4px; color: var(--muted); }

.dealer-area-summary { display: flex; flex-wrap: wrap; gap: 9px; }
.dealer-area-summary > span { padding: 8px 11px; color: #075985; border: 1px solid #bae6fd; border-radius: 5px; background: #f0f9ff; }
.dealer-area-summary small { display: block; margin-top: 3px; color: #64748b; }
.dealer-detail-description { margin: 0; color: #475569; line-height: 1.8; }

.dealer-case-timeline { display: grid; }
.dealer-case-timeline > div { position: relative; display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 12px; padding-bottom: 18px; }
.dealer-case-timeline > div::before { content: ""; position: absolute; top: 15px; left: 5px; bottom: -2px; width: 2px; background: #dbe7ee; }
.dealer-case-timeline > div:last-child::before { display: none; }
.dealer-case-timeline i { position: relative; z-index: 1; width: 12px; height: 12px; margin-top: 3px; border: 3px solid #b9e0f2; border-radius: 50%; background: var(--primary); }
.dealer-case-timeline section strong,
.dealer-case-timeline section span { display: block; }
.dealer-case-timeline section span { margin-top: 4px; color: var(--muted); font-size: 12px; }
.dealer-case-timeline section p { margin: 6px 0 0; color: #475569; }

@media (max-width: 1000px) {
    .dealer-case-detail-grid,
    .dealer-case-detail-grid.two-columns,
    .dealer-review-panel { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
    .dealer-cases-page,
    .dealer-workers-page {
        min-height: auto;
        grid-template-rows: none;
    }

    .dealer-cases-page > .table-wrap,
    .dealer-workers-page > .table-wrap {
        min-height: 320px;
    }
}

.dealer-case-actions form {
    margin: 0;
}

.dealer-case-actions .assign-form {
    display: flex;
    gap: 6px;
}

.dealer-case-actions .assign-form select {
    min-width: 100px;
    padding: 7px 8px;
}

.dealer-case-actions .button {
    min-height: 31px;
    padding: 7px 10px;
    font-size: 12px;
}

.button:disabled {
    opacity: .5;
    cursor: not-allowed;
}

.muted-text { color: var(--muted); font-size: 12px; }

.dealer-product-grid,
.dealer-rule-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 14px;
}

.dealer-product-card {
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius);
}

.dealer-product-image {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 180px;
    color: #94a3b8;
    background: #f8fafc;
    border-bottom: 1px solid var(--line);
}

.dealer-product-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.dealer-product-body { padding: 15px; }
.dealer-product-body > span { color: var(--primary-dark); font-size: 12px; font-weight: 700; }
.dealer-product-body h3 { margin: 7px 0 12px; font-size: 17px; }
.dealer-product-body p { margin: 5px 0; color: #475569; }

.dealer-empty-card { grid-column: 1 / -1; text-align: center; color: var(--muted); }

.dealer-rule-card h2 { margin: 4px 0 0; font-size: 18px; }
.dealer-rule-title { display: flex; justify-content: space-between; gap: 14px; }
.dealer-rule-title span { color: var(--primary-dark); font-size: 12px; font-weight: 700; }
.dealer-rule-title > strong { color: var(--primary); font-size: 30px; }
.dealer-rule-title > strong small { margin-left: 3px; font-size: 12px; }
.dealer-rule-card dl,
.dealer-account-info dl { margin: 18px 0 0; }
.dealer-rule-card dl > div,
.dealer-account-info dl > div { padding: 11px 0; border-top: 1px solid #eef0f3; }
.dealer-rule-card dt,
.dealer-account-info dt { margin-bottom: 5px; color: var(--muted); font-size: 12px; }
.dealer-rule-card dd,
.dealer-account-info dd { margin: 0; line-height: 1.65; }

.dealer-deposit-card {
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr;
    gap: 1px;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--line);
}

.dealer-deposit-card > div {
    display: grid;
    gap: 8px;
    padding: 22px;
    background: #fff;
}

.dealer-deposit-card strong { font-size: 22px; }
.dealer-deposit-card > div:first-child strong { color: var(--primary-dark); font-size: 32px; }
.deposit-status.normal { color: var(--green); }
.deposit-status.abnormal { color: var(--red); }
.deposit-status.frozen { color: #475569; }

.dealer-empty-state {
    display: grid;
    justify-items: center;
    gap: 7px;
    padding: 40px 16px;
    color: var(--muted);
    text-align: center;
    background: #fafbfc;
    border: 1px dashed #d8dee7;
    border-radius: var(--radius);
}

.dealer-empty-state strong { color: #475569; }

.dealer-settings-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(320px, .8fr);
    gap: 14px;
    align-items: start;
}

@media (max-width: 1200px) {
    .dealer-stat-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .dealer-dashboard-grid,
    .dealer-settings-grid { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
    .dealer-account-strip,
    .dealer-deposit-card { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .dealer-filter-bar { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 640px) {
    .dealer-stat-grid,
    .dealer-account-strip,
    .dealer-deposit-card,
    .dealer-filter-bar { grid-template-columns: 1fr; }
    .dealer-alert { align-items: flex-start; flex-direction: column; gap: 5px; }
    .dealer-dashboard-actions,
    .dealer-worker-topbar { align-items: stretch; flex-direction: column; }
    .dealer-case-topbar { align-items: stretch; flex-direction: column; }
    .dealer-case-topbar .button { width: 100%; }
    .dealer-create-toolbar { align-items: stretch; flex-direction: column; }
    .dealer-product-filter { grid-template-columns: 1fr; }
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html,
body {
    margin: 0;
    padding: 0;
}

body {
    min-height: 100vh;
    color: var(--text);
    background: var(--bg);
    font-family: "Segoe UI", "PingFang SC", "Microsoft YaHei", Arial, sans-serif;
    font-size: 14px;
}

a {
    color: #0b65c2;
    text-decoration: none;
}

a:hover {
    color: #084a92;
}

.app-shell {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 166px minmax(0, 1fr);
    background: var(--bg);
}

.app-shell.has-subsidebar {
    grid-template-columns: 166px 124px minmax(0, 1fr);
}

.app-sidebar {
    background: linear-gradient(180deg, var(--sidebar), #2f9dcc);
    color: #fff;
    min-height: 100vh;
    position: sticky;
    top: 0;
    align-self: start;
}

.sidebar-brand {
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 14px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.18);
}

.system-logo {
    display: block;
    max-width: 100%;
    height: auto;
    object-fit: contain;
}

.sidebar-system-logo {
    width: 138px;
    height: 36px;
    box-sizing: border-box;
    padding: 6px 8px;
    border-radius: 6px;
    background: #fff;
}

.topbar-mobile-logo { display: none; }

.brand-mark {
    width: 34px;
    height: 34px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    color: var(--sidebar-dark);
    font-weight: 800;
}

.sidebar-brand strong,
.auth-brand strong {
    display: block;
    font-size: 17px;
    line-height: 1.2;
}

.sidebar-brand span,
.auth-brand span {
    display: block;
    margin-top: 3px;
    font-size: 12px;
    color: rgba(255, 255, 255, 0.78);
}

.sidebar-nav {
    padding: 12px 0;
}

.sidebar-link {
    display: flex;
    align-items: center;
    gap: 10px;
    height: 43px;
    padding: 0 18px;
    color: #eef9ff;
    border-left: 4px solid transparent;
}

.sidebar-link:hover,
.sidebar-link.active {
    color: #fff;
    background: rgba(0, 0, 0, 0.12);
    border-left-color: #ffffff;
}

.nav-icon {
    width: 22px;
    height: 22px;
    border-radius: 6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.18);
    font-size: 12px;
    font-weight: 700;
}

.role-super_admin .nav-icon {
    background: transparent;
}

.role-super_admin .nav-icon svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.role-super_admin .sidebar-link:hover .nav-icon,
.role-super_admin .sidebar-link.active .nav-icon {
    color: #fff;
}

/* Super admin navigation - compact light data-console layout */
.app-shell.role-super_admin {
    grid-template-columns:220px minmax(0,1fr);
    background:#f4f8ff;
}
.role-super_admin>.app-sidebar {
    height:100vh; min-height:100vh; display:flex; flex-direction:column; overflow:hidden;
    color:#304c72; background:#f4f8ff; border-right:1px solid #d8e4f3;
}
.role-super_admin .sidebar-brand {
    height:60px; min-height:60px; padding:6px 15px; justify-content:flex-start;
    border-bottom:1px solid #dbe6f4; background:#f4f8ff;
}
.admin-sidebar-brand {
    width:100%; min-width:0; height:48px; display:flex; align-items:center; justify-content:flex-start;
}
.admin-brand-logo {
    width:154px; max-width:100%; height:42px; display:block;
    object-fit:contain; object-position:left center;
}
.role-super_admin .sidebar-nav {
    min-height:0; padding:12px 15px 18px; display:flex; flex:1 1 auto; flex-direction:column;
    gap:7px; overflow-x:hidden; overflow-y:auto; scrollbar-width:none;
}
.role-super_admin .sidebar-nav::-webkit-scrollbar { width:0; }
.admin-nav-caption {
    padding:1px 11px 5px; color:#9aaac0; font-size:10px; font-weight:800; letter-spacing:1.3px;
}
.role-super_admin .sidebar-link {
    min-height:39px; height:auto; padding:8px 11px; gap:10px; position:relative;
    border:1px solid transparent; border-radius:9px; color:#304c72; background:rgba(255,255,255,.88);
    font-size:13px; font-weight:600; transition:.15s ease;
}
.role-super_admin .sidebar-link:hover {
    color:#174f9e; border-color:#d4e3f6; background:#edf5ff;
}
.role-super_admin .sidebar-link.active {
    color:#1250ac; border-color:#c5daf7; background:linear-gradient(90deg,#d9e9ff,#eaf3ff);
    box-shadow:0 5px 12px rgba(48,105,192,.09); font-weight:700;
}
.role-super_admin .nav-icon { width:17px; height:17px; flex:0 0 17px; color:#6e8bb3; }
.role-super_admin .nav-icon svg { width:17px; height:17px; stroke-width:1.9; }
.role-super_admin .sidebar-link:hover .nav-icon,
.role-super_admin .sidebar-link.active .nav-icon { color:#2875d8; }
.admin-nav-arrow {
    margin-left:auto; color:#8ca6c7; font-size:18px; font-style:normal; line-height:1;
    transform:rotate(0); transition:transform .15s ease;
}
.role-super_admin .sidebar-link.active .admin-nav-arrow { transform:rotate(90deg); color:#4d7fc2; }
.admin-nav-sub {
    margin:-2px 0 1px 26px; padding:0 0 0 10px; display:flex; flex-direction:column; gap:4px;
    border-left:1px solid #d4e1f2;
}
.admin-nav-sub a {
    min-height:34px; padding:7px 12px; display:flex; align-items:center; border:1px solid transparent;
    border-radius:7px; color:#5e7596; background:rgba(255,255,255,.7); font-size:12px;
}
.admin-nav-sub a:hover { color:#1452a6; border-color:#d5e3f5; background:#fff; }
.admin-nav-sub a.active {
    color:#1557b4; border-color:#c4daf6; background:#dfeeff; font-weight:700;
}
.role-super_admin .app-topbar { height:60px; background:#f4f8ff; border-bottom-color:#dbe6f4; box-shadow:none; }
.role-super_admin .menu-glyph { color:#6e8bb3; }
@media (max-width:1040px) and (min-width:761px) {
    .app-shell.role-super_admin { grid-template-columns:196px minmax(0,1fr); }
    .role-super_admin .sidebar-nav { padding-left:10px; padding-right:10px; }
}
@media (max-width:760px) {
    .app-shell.role-super_admin { display:block; }
    .role-super_admin>.app-sidebar { width:100%; height:auto; min-height:auto; position:static; overflow:visible; }
    .role-super_admin .sidebar-brand { height:58px; min-height:58px; }
    .role-super_admin .sidebar-nav {
        padding:10px 12px; display:flex; flex-direction:row; gap:8px; overflow-x:auto; overflow-y:hidden;
    }
    .role-super_admin .sidebar-link { min-width:max-content; min-height:36px; padding:7px 11px; }
    .role-super_admin .sidebar-link.active { background:#dfeeff; }
    .admin-nav-caption,.admin-nav-sub,.admin-nav-arrow { display:none; }
    .role-super_admin .app-topbar { height:auto; background:#fff; }
}

/* Admin warranty applications */
.warranty-application-page { display:grid; gap:18px; }
.warranty-application-hero {
    display:flex; align-items:center; justify-content:space-between; gap:24px;
    min-height:142px; padding:26px 30px; overflow:hidden; position:relative;
    border-radius:12px; color:#fff;
    background:linear-gradient(125deg,#168bc5 0%,#167caf 56%,#116a9d 100%);
    box-shadow:0 12px 30px rgba(22,126,176,.18);
}
.warranty-application-hero::after {
    content:""; position:absolute; right:-55px; top:-95px; width:280px; height:280px;
    border:42px solid rgba(255,255,255,.07); border-radius:50%;
}
.warranty-application-hero>div { position:relative; z-index:1; }
.warranty-application-hero span { font-size:13px; color:rgba(255,255,255,.8); }
.warranty-application-hero h2 { margin:8px 0 6px; font-size:28px; }
.warranty-application-hero p { margin:0; color:rgba(255,255,255,.82); font-size:14px; }
.warranty-application-hero .warranty-hero-actions { display:flex; gap:10px; flex-shrink:0; }
.warranty-application-hero .button { border-color:#fff; color:#1478aa; background:#fff; }
.warranty-application-hero .button.secondary { color:#fff; background:rgba(255,255,255,.12); }
.warranty-application-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.warranty-application-stats>a {
    display:flex; align-items:center; min-height:92px; padding:17px 18px; color:var(--text);
    border:1px solid #e1e7ee; border-radius:10px; background:#fff;
    box-shadow:0 5px 16px rgba(27,58,93,.05); transition:.18s ease;
}
.warranty-application-stats>a:hover,.warranty-application-stats>a.active { transform:translateY(-2px); border-color:#56a8ce; box-shadow:0 9px 22px rgba(22,123,173,.12); }
.application-stat-icon { position:relative; width:46px; height:46px; margin-right:14px; flex-shrink:0; border-radius:13px; background:#e7f4fb; color:#1686bd; }
.application-stat-icon::before { content:""; position:absolute; inset:11px; border:2px solid currentColor; border-radius:5px; }
.application-stat-icon::after { content:""; position:absolute; left:17px; top:15px; width:10px; height:2px; background:currentColor; box-shadow:0 5px currentColor,0 10px currentColor; }
.application-stat-icon.pending { color:#e69316; background:#fff4dc; }
.application-stat-icon.pending::before { border-radius:50%; }
.application-stat-icon.pending::after { left:22px; top:14px; width:2px; height:10px; box-shadow:4px 9px 0 -1px currentColor; }
.application-stat-icon.accepted { color:#18a568; background:#e4f8ef; }
.application-stat-icon.accepted::before { border-radius:50%; }
.application-stat-icon.accepted::after { left:16px; top:22px; width:7px; height:3px; box-shadow:none; transform:rotate(45deg); }
.application-stat-icon.urgent { color:#e95757; background:#ffebeb; }
.application-stat-icon.urgent::before { border:0; border-radius:50%; background:currentColor; }
.application-stat-icon.urgent::after { left:22px; top:15px; width:2px; height:11px; background:#fff; box-shadow:0 15px 0 -0.2px #fff; }
.warranty-application-stats>a>div { display:grid; grid-template-columns:1fr auto; flex:1; align-items:end; }
.warranty-application-stats span { color:#667085; font-size:13px; }
.warranty-application-stats strong { grid-row:1/3; grid-column:2; color:#172033; font-size:28px; line-height:1; }
.warranty-application-stats small { margin-top:7px; color:#98a2b3; font-size:11px; }
.warranty-application-panel { overflow:hidden; border:1px solid #e1e7ee; border-radius:11px; background:#fff; box-shadow:0 7px 22px rgba(24,52,86,.055); }
.application-panel-heading { display:flex; align-items:center; justify-content:space-between; padding:20px 22px 14px; }
.application-panel-heading h3 { margin:0; color:#182235; font-size:18px; }
.application-panel-heading p { margin:5px 0 0; color:#8490a0; font-size:12px; }
.application-view-note { display:flex; align-items:center; color:#8a95a4; font-size:12px; }
.application-view-note span { width:7px; height:7px; margin-right:7px; border-radius:50%; background:#1aaa6e; box-shadow:0 0 0 4px #e5f8f0; }
.application-filter-bar { display:grid; grid-template-columns:minmax(280px,1fr) 160px 150px auto; gap:12px; align-items:end; padding:14px 22px; border-top:1px solid #edf0f4; border-bottom:1px solid #e7ebf0; background:#fafbfd; }
.application-filter-bar label>span { display:block; margin-bottom:6px; color:#667085; font-size:12px; }
.application-filter-bar input,.application-filter-bar select { width:100%; height:38px; border-color:#dce3eb; background:#fff; }
.application-search { position:relative; align-self:end; }
.application-search input { padding-left:40px; }
.application-search i { position:absolute; left:15px; top:11px; width:13px; height:13px; border:2px solid #8793a4; border-radius:50%; box-sizing:border-box; }
.application-search i::after { content:""; position:absolute; right:-5px; bottom:-3px; width:6px; height:2px; border-radius:2px; background:#8793a4; transform:rotate(45deg); }
.application-filter-bar>div { display:flex; gap:8px; }
.application-filter-bar .button { height:38px; padding:0 17px; }
.application-table-wrap { overflow:auto; }
.application-table { width:100%; border-collapse:collapse; min-width:1050px; }
.application-table th { height:44px; padding:0 16px; color:#738094; background:#f6f8fb; border-bottom:1px solid #e8ecf1; text-align:left; font-size:12px; font-weight:600; white-space:nowrap; }
.application-table td { padding:16px; border-bottom:1px solid #edf0f4; vertical-align:middle; font-size:13px; }
.application-table tbody tr:hover { background:#fbfdff; }
.application-table tbody tr:last-child td { border-bottom:0; }
.application-number,.application-customer { display:flex; align-items:center; }
.application-number>i { position:relative; width:34px; height:38px; margin-right:10px; border:1px solid #b9d9ea; border-radius:7px; background:#e9f6fc; }
.application-number>i::before { content:""; position:absolute; left:9px; top:10px; width:14px; height:2px; background:#1687bd; box-shadow:0 6px #1687bd,0 12px #1687bd; }
.application-number>div,.application-customer>div,.application-product,.application-period,.application-time { display:flex; flex-direction:column; }
.application-number strong { color:#176f9c; font-size:13px; white-space:nowrap; }
.application-number span,.application-customer small,.application-product span,.application-product small,.application-period span,.application-time span { margin-top:5px; color:#8994a4; font-size:11px; }
.application-customer>span { display:flex; align-items:center; justify-content:center; width:36px; height:36px; margin-right:10px; border-radius:50%; color:#1678aa; background:linear-gradient(145deg,#e5f5fc,#cae8f5); font-weight:700; }
.application-customer strong,.application-product strong,.application-period strong,.application-time strong { color:#263246; font-size:13px; }
.application-product { max-width:235px; }
.application-product small { overflow:hidden; max-width:235px; text-overflow:ellipsis; white-space:nowrap; }
.application-status { display:inline-flex; align-items:center; justify-content:center; min-width:58px; height:25px; padding:0 9px; border-radius:13px; font-size:11px; }
.application-status.warning { color:#c2780b; background:#fff2d8; }
.application-status.success { color:#118b56; background:#e2f7ec; }
.application-status.danger { color:#d84b4b; background:#ffe8e8; }
.application-urgent { display:block; width:max-content; margin-top:6px; padding:2px 7px; border-radius:9px; color:#e25454; background:#fff0f0; font-size:10px; }
.application-detail-link { display:inline-flex; align-items:center; gap:5px; color:#1685ba; font-weight:600; white-space:nowrap; }
.application-detail-link span { font-size:19px; line-height:1; }
.application-empty { display:flex; align-items:center; justify-content:center; min-height:210px; color:#8a95a4; flex-direction:column; }
.application-empty i { position:relative; width:48px; height:48px; margin-bottom:12px; border:2px solid #c6d2dd; border-radius:50%; }
.application-empty i::before { content:""; position:absolute; left:12px; top:21px; width:20px; height:2px; background:#c6d2dd; }
.application-empty strong { color:#556174; font-size:14px; }
.application-empty span { margin-top:7px; font-size:12px; }

@media (max-width:1100px) {
    .warranty-application-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .application-filter-bar { grid-template-columns:1fr 150px 145px; }
    .application-filter-bar>div { grid-column:1/-1; justify-content:flex-end; }
}

/* Warranty applications - report workspace */
.admin-warranty-applications-body .app-main { background:#f5f7fb; }
.admin-warranty-applications-body .page-body { padding:16px; }
.admin-warranty-applications-body .page-body>.card {
    padding:0; border:0; border-radius:0; background:transparent; box-shadow:none;
}
.warranty-application-page { gap:13px; color:#17233a; }
.application-report-head {
    min-height:68px; padding:13px 16px; display:flex; align-items:center; justify-content:space-between;
    gap:20px; border:1px solid #e5ebf4; border-radius:14px; background:#fff;
}
.application-report-head h2 { margin:0; color:#17233a; font-size:18px; }
.application-report-head p { margin:5px 0 0; color:#98a2b3; font-size:11px; }
.application-report-controls { display:flex; align-items:center; justify-content:flex-end; gap:9px; flex-wrap:wrap; }
.application-date-range {
    height:39px; min-width:260px; padding:0 12px; display:flex; align-items:center; gap:7px;
    border:1px solid #d8e3f5; border-radius:10px; background:#fff;
}
.application-date-range input {
    width:105px; padding:0; border:0; outline:0; color:#25334a; background:transparent;
    font:600 12px/1 inherit;
}
.application-date-range i { color:#64748b; font-style:normal; }
.application-stat-submit,.application-head-link {
    height:39px; padding:0 15px; display:inline-flex; align-items:center; justify-content:center;
    border:1px solid #3474f3; border-radius:9px; color:#fff; background:#3474f3;
    font-size:12px; font-weight:700; cursor:pointer;
}
.application-head-link.secondary { border-color:#d8e3f5; color:#41516a; background:#fff; }
.warranty-application-stats { gap:13px; }
.warranty-application-stats>a {
    min-height:111px; padding:13px 14px; display:block; overflow:hidden; position:relative;
    border:1px solid #e5ebf4; border-radius:13px; box-shadow:none;
}
.warranty-application-stats>a::after {
    content:""; width:112px; height:142px; position:absolute; right:-26px; top:8px;
    border-radius:48% 0 0 0; background:#edf3ff; transform:rotate(13deg);
}
.warranty-application-stats>a:nth-child(2)::after { background:#fff6dd; }
.warranty-application-stats>a:nth-child(3)::after { background:#e1f7ef; }
.warranty-application-stats>a:nth-child(4)::after { background:#ffebe9; }
.warranty-application-stats>a:hover,.warranty-application-stats>a.active {
    transform:none; border-color:#b8cff8; box-shadow:0 5px 15px rgba(53,91,153,.06);
}
.application-stat-icon {
    width:30px; height:30px; margin:0; display:block; border:1px solid #d7e5ff;
    border-radius:8px; position:relative; z-index:1; background:#eef4ff;
}
.application-stat-icon::before { inset:7px; border-width:1.5px; border-radius:3px; }
.application-stat-icon::after { left:11px; top:10px; width:8px; box-shadow:0 4px currentColor,0 8px currentColor; }
.application-stat-icon.pending::after { left:14px; top:9px; height:7px; box-shadow:3px 6px 0 -1px currentColor; }
.application-stat-icon.accepted::after { left:10px; top:14px; width:6px; }
.application-stat-icon.urgent::after { left:14px; top:9px; height:8px; box-shadow:0 10px 0 -0.2px #fff; }
.warranty-application-stats>a>div { display:block; position:relative; z-index:1; }
.warranty-application-stats span { display:block; margin:8px 0 5px; color:#39475d; font-size:11px; }
.warranty-application-stats strong { display:block; color:#17233a; font-size:20px; line-height:1; }
.application-filter-bar {
    min-height:58px; padding:9px 14px; display:grid; grid-template-columns:auto auto minmax(300px,1fr) auto;
    gap:12px; align-items:center; border:1px solid #e5ebf4; border-radius:14px; background:#fff;
}
.application-filter-bar label { display:flex; align-items:center; gap:10px; }
.application-filter-bar label>span {
    flex:0 0 auto; margin:0; color:#435168; font-size:11px; font-weight:600;
}
.application-filter-bar input,.application-filter-bar select {
    height:34px; border:1px solid #dbe4f0; border-radius:8px; color:#31405a; font-size:11px;
}
.application-filter-bar select { min-width:102px; }
.application-search { align-self:center; }
.application-search input { width:100%; min-width:240px; padding-left:11px; padding-right:34px; }
.application-search i { left:auto; right:12px; top:10px; }
.application-filter-bar>div { justify-content:flex-end; }
.application-query-button,.application-filter-bar>div>a {
    height:34px; padding:0 15px; display:inline-flex; align-items:center; justify-content:center;
    border:1px solid #3474f3; border-radius:8px; color:#fff; background:#3474f3;
    font-size:11px; font-weight:700; cursor:pointer;
}
.application-filter-bar>div>a { border-color:#dbe4f0; color:#526078; background:#fff; }
.warranty-application-panel { padding:11px 11px 0; border-color:#e5ebf4; border-radius:14px; box-shadow:none; }
.application-table-wrap { border:1px solid #e5ebf4; border-bottom:0; border-radius:8px 8px 0 0; }
.application-table { min-width:1160px; }
.application-table th {
    height:42px; padding:0 13px; color:#64748b; background:#f5f8fc; border-bottom-color:#e5ebf4;
    font-size:11px; text-align:center;
}
.application-table td {
    height:58px; padding:9px 13px; color:#25334a; border-bottom-color:#edf1f6;
    font-size:11px; font-weight:500; text-align:center;
}
.application-table th:first-child,.application-table td:first-child { text-align:left; }
.application-number>i { width:30px; height:34px; margin-right:8px; border-radius:6px; }
.application-number>i::before { left:8px; top:9px; }
.application-number strong,.application-customer strong,.application-product strong,.application-period strong,.application-time strong { font-size:11px; }
.application-number span,.application-customer small,.application-product span,.application-period span,.application-time span { margin-top:4px; font-size:9.5px; }
.application-customer { justify-content:center; }
.application-customer>span { width:30px; height:30px; margin-right:8px; font-size:11px; }
.application-product { max-width:150px; margin:auto; }
.application-address { max-width:190px; margin:auto; color:#58667c; line-height:1.55; }
.application-status { min-width:54px; height:23px; font-size:10px; }
.application-detail-link {
    height:27px; padding:0 10px; justify-content:center; border:1px solid #bcd1fa; border-radius:6px;
    color:#3474f3; font-size:10px;
}
.application-empty { min-height:220px; }
.application-pagination {
    min-height:52px; padding:0 7px; display:flex; align-items:center; justify-content:space-between;
    border:1px solid #e5ebf4; border-radius:0 0 8px 8px;
}
.application-pagination form,.application-pagination nav { display:flex; align-items:center; gap:7px; }
.application-pagination span { color:#778398; font-size:11px; }
.application-pagination select {
    height:30px; border:1px solid #dbe4f0; border-radius:7px; color:#435168; background:#fff; font-size:10px;
}
.application-pagination nav a {
    width:28px; height:28px; display:inline-flex; align-items:center; justify-content:center;
    border:1px solid #dfe6f0; border-radius:6px; color:#66758a; background:#fff; font-size:11px;
}
.application-pagination nav a.active { border-color:#3474f3; color:#fff; background:#3474f3; }
.application-pagination nav a.disabled { opacity:.45; pointer-events:none; }
@media (max-width:1280px) {
    .application-report-head { align-items:flex-start; flex-direction:column; }
    .application-filter-bar { grid-template-columns:auto auto minmax(250px,1fr); }
    .application-filter-bar>div { grid-column:1/-1; }
}
@media (max-width:760px) {
    .admin-warranty-applications-body .page-body { padding:10px; }
    .application-report-controls { justify-content:flex-start; width:100%; }
    .application-date-range { flex:1 1 260px; }
    .application-filter-bar { grid-template-columns:1fr; align-items:stretch; }
    .application-filter-bar label { justify-content:space-between; }
    .application-filter-bar>div { grid-column:auto; justify-content:flex-start; }
    .warranty-application-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

.app-subsidebar {
    background: #fff;
    width: 124px;
    min-height: 100vh;
    border-right: 1px solid var(--line);
    padding-top: 64px;
    position: sticky;
    top: 0;
    align-self: start;
}

.subsidebar-title {
    height: 44px;
    display: flex;
    align-items: center;
    padding: 0 16px;
    white-space: nowrap;
    font-weight: 700;
    color: #111827;
    border-bottom: 1px solid var(--line);
}

.sub-nav {
    padding: 8px 0;
}

.sub-link {
    display: flex;
    align-items: center;
    height: 40px;
    padding: 0 16px;
    color: #253247;
    border-left: 3px solid transparent;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: 14px;
}

.sub-link:hover,
.sub-link.active {
    color: var(--primary-dark);
    background: #f1f8fc;
    border-left-color: var(--primary);
}

.app-main {
    min-width: 0;
    min-height: 100vh;
}

.app-topbar {
    height: 52px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    background: #fff;
    border-bottom: 1px solid var(--line);
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.05);
    padding: 0 22px;
    position: sticky;
    top: 0;
    z-index: 10;
}

.topbar-left,
.topbar-right,
.user-chip {
    display: inline-flex;
    align-items: center;
    gap: 12px;
}

.menu-glyph {
    font-size: 21px;
    color: var(--primary);
    line-height: 1;
}

.topbar-action {
    color: #374151;
    padding: 6px 8px;
    border-radius: 6px;
}

.topbar-action:hover {
    background: #f3f4f6;
}

.user-chip {
    color: #4b5563;
}

.avatar-dot {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #e5e7eb;
    color: #374151;
    font-weight: 700;
}

.page-body {
    padding: 22px 24px;
}

.page-heading {
    min-height: 50px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
}

.page-heading p {
    margin: 0 0 4px;
    color: var(--muted);
    font-size: 13px;
}

.page-heading h1 {
    margin: 0;
    font-size: 22px;
    line-height: 1.25;
    font-weight: 700;
}

.card {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 20px 20px 19px;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.card h1 {
    margin: 0 0 16px;
    font-size: 22px;
}

.card h2 {
    margin: 22px 0 12px;
    font-size: 18px;
}

.card > p {
    margin: 0 0 12px;
    color: var(--muted);
}

.grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 14px;
    margin: 12px 0;
}

.item {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 15px;
}

.item h3 {
    margin: 0 0 10px;
    font-size: 15px;
    color: #111827;
}

.item p {
    margin: 0 0 8px;
    color: #4b5563;
    word-break: break-word;
}

.item p:last-child {
    margin-bottom: 0;
}

.item:hover {
    border-color: #bcdbea;
    box-shadow: 0 6px 18px rgba(22, 136, 196, 0.08);
}

.module-page {
    display: grid;
    gap: 14px;
}

.module-hero {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    padding: 18px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: linear-gradient(135deg, #f8fbff, #ffffff);
}

.module-hero span {
    display: inline-flex;
    margin-bottom: 8px;
    color: var(--primary-dark);
    font-size: 13px;
    font-weight: 700;
}

.module-hero h2 {
    margin: 0 0 8px;
    font-size: 20px;
}

.module-hero p {
    max-width: 760px;
    margin: 0;
    color: var(--muted);
    line-height: 1.7;
}

.table-wrap {
    width: 100%;
    overflow-x: auto;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: #fff;
}

.data-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 820px;
}

.data-table th,
.data-table td {
    padding: 12px 14px;
    border-bottom: 1px solid #eef0f3;
    text-align: left;
    vertical-align: middle;
}

.data-table th {
    background: #f6f7f9;
    color: #374151;
    font-weight: 700;
    white-space: nowrap;
}

.data-table tr:last-child td {
    border-bottom: 0;
}

.data-table tbody tr:hover {
    background: #fbfdff;
}

.compact-table th,
.compact-table td {
    height: auto;
    padding: 11px 14px;
}

.filter-bar {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 10px;
    align-items: end;
    padding: 14px 16px;
    margin-bottom: 16px;
    background: #f7f8fa;
    border: 1px solid var(--line);
    border-radius: var(--radius);
}

.filter-actions {
    display: flex;
    gap: 10px;
    align-items: center;
}

.toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin-top: 10px;
}

.list-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 10px;
}

.list-toolbar strong {
    display: block;
    margin-bottom: 4px;
    font-size: 16px;
}

.list-toolbar span {
    color: var(--muted);
    font-size: 13px;
}

.toolbar-actions {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}

.summary-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 14px;
    padding: 10px 14px;
    background: #f8fafc;
    border: 1px solid var(--line);
    border-radius: var(--radius);
}

.summary-strip span {
    color: #475569;
    padding-right: 12px;
    border-right: 1px solid #dde3ec;
}

.summary-strip span:last-child {
    border-right: 0;
}

.member-filter {
    grid-template-columns: minmax(360px, 1.6fr) minmax(220px, 0.9fr) minmax(220px, 0.9fr) minmax(260px, 1fr) auto;
    align-items: center;
}

.member-filter > div:not(.filter-actions) {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.member-filter label {
    flex: 0 0 auto;
    margin: 0;
    white-space: nowrap;
}

.member-filter input,
.member-filter select {
    height: 34px;
    min-width: 0;
    padding: 7px 10px;
}

.dealer-filter {
    grid-template-columns: minmax(260px, 1.4fr) minmax(170px, 0.8fr) minmax(170px, 0.8fr) minmax(220px, 1fr) minmax(160px, 0.75fr) auto;
    align-items: center;
    background: #f7f7f7;
    border-radius: 0;
}

.dealer-filter > div:not(.filter-actions) {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.dealer-filter label {
    flex: 0 0 auto;
    margin: 0;
    color: #111827;
    white-space: nowrap;
}

.dealer-filter input,
.dealer-filter select {
    height: 30px;
    min-width: 0;
    padding: 5px 9px;
    border-radius: 0;
}

.dealer-table {
    min-width: 1120px;
}

.dealer-table td {
    height: 74px;
}

.bind-badges .region-badge {
    background: #0ea5e9;
}

.muted-link {
    color: #64748b !important;
}

.dealer-management-page {
    display: grid;
    min-height: calc(100vh - 136px);
    grid-template-rows: auto auto auto minmax(0, 1fr);
    gap: 14px;
}

.dealer-status-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 10px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: #f8fafc;
}

.dealer-status-tabs a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 32px;
    padding: 0 12px;
    border: 1px solid #dbe3ee;
    border-radius: 999px;
    color: #334155;
    background: #fff;
    font-weight: 600;
}

.dealer-status-tabs a.active,
.dealer-status-tabs a:hover {
    color: #fff;
    background: var(--primary);
    border-color: var(--primary);
}

.dealer-status-tabs span {
    min-width: 18px;
    height: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    color: #2563eb;
    background: #eef2ff;
    font-size: 12px;
}

.dealer-status-tabs a.active span,
.dealer-status-tabs a:hover span {
    color: var(--primary-dark);
    background: #fff;
}

.dealer-business-filter {
    grid-template-columns: minmax(220px, 1.2fr) repeat(3, minmax(150px, 0.8fr)) repeat(3, minmax(130px, 0.7fr)) auto;
    align-items: end;
}

.dealer-business-filter label {
    font-size: 12px;
}

.dealer-business-filter input,
.dealer-business-filter select {
    height: 34px;
    padding: 7px 9px;
}

.dealer-business-table-wrap {
    height: 100%;
    min-height: 0;
    border-radius: 0;
}

.dealer-business-table {
    min-width: 1680px;
}

.dealer-business-table th {
    height: 42px;
    padding-top: 10px;
    padding-bottom: 10px;
}

.dealer-business-table td {
    height: 86px;
    padding-top: 12px;
    padding-bottom: 12px;
}

.dealer-business-table th:first-child,
.dealer-business-table td:first-child {
    width: 150px;
    min-width: 150px;
    max-width: 150px;
}

.dealer-business-table th:nth-child(3),
.dealer-business-table td:nth-child(3) {
    width: 120px;
    min-width: 120px;
    max-width: 120px;
}

.dealer-business-table th:nth-child(4),
.dealer-business-table td:nth-child(4) {
    width: 120px;
    min-width: 120px;
    max-width: 120px;
}

.dealer-business-table th:nth-child(5),
.dealer-business-table td:nth-child(5) {
    width: 120px;
    min-width: 120px;
    max-width: 120px;
}

.dealer-business-table th:nth-child(6),
.dealer-business-table td:nth-child(6) {
    width: 120px;
    min-width: 120px;
    max-width: 120px;
}

.dealer-business-table th:nth-child(7),
.dealer-business-table td:nth-child(7) {
    width: 120px;
    min-width: 120px;
    max-width: 120px;
}

.dealer-business-table th:nth-child(8),
.dealer-business-table td:nth-child(8) {
    width: 120px;
    min-width: 120px;
    max-width: 120px;
}

/* Dealer management - site management reference layout */
.admin-dealers-body .app-main { background:#f5f7fb; }
.admin-dealers-body .page-body { padding:16px; }
.admin-dealers-body .page-body>.card { padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
.dealer-management-page {
    min-height:calc(100vh - 92px); grid-template-rows:auto auto auto auto minmax(0,1fr); gap:13px; color:#17233a;
}
.dealer-management-page>.category-toolbar {
    min-height:68px; margin:0; padding:13px 16px; border:1px solid #e5ebf4; border-radius:14px;
    background:#fff; box-shadow:none;
}
.dealer-management-page>.category-toolbar h1 { margin:0; color:#17233a; font-size:22px; }
.dealer-management-page>.category-toolbar p { margin:6px 0 0; color:#7a879b; font-size:13px; }
.dealer-management-page>.category-toolbar .toolbar-actions { gap:9px; }
.dealer-management-page>.category-toolbar .button {
    height:40px; padding:0 17px; border-radius:9px; font-size:13px; box-shadow:none;
}
.dealer-management-page>.category-toolbar .button.secondary {
    border-color:#d8e3f5; color:#345173; background:#fff;
}
.dealer-report-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:13px; }
.dealer-report-stats>a {
    min-height:111px; padding:12px 14px; display:block; overflow:hidden; position:relative;
    border:1px solid #e5ebf4; border-radius:13px; color:#17233a; background:#fff;
}
.dealer-report-stats>a::after {
    content:""; width:112px; height:142px; position:absolute; right:-26px; top:8px;
    border-radius:48% 0 0 0; background:#edf3ff; transform:rotate(13deg);
}
.dealer-report-stats>a.is-green::after { background:#e1f7ef; }
.dealer-report-stats>a.is-yellow::after { background:#fff6dd; }
.dealer-report-stats>a.is-violet::after { background:#f0edff; }
.dealer-report-stats i {
    width:30px; height:30px; display:block; position:relative; z-index:1; border:1px solid #d7e5ff;
    border-radius:8px; color:#3474f3; background:#eef4ff;
}
.dealer-report-stats i::before {
    content:""; position:absolute; left:7px; right:7px; bottom:6px; height:11px;
    border:1.5px solid currentColor; border-radius:2px 2px 0 0; border-bottom:0;
}
.dealer-report-stats i::after {
    content:""; width:5px; height:5px; position:absolute; left:12px; top:6px;
    border:1.5px solid currentColor; border-radius:50%; background:inherit;
}
.dealer-report-stats .is-green i { color:#20a878; border-color:#cceee2; background:#eaf9f3; }
.dealer-report-stats .is-yellow i { color:#d79b29; border-color:#f2e1b8; background:#fff8e8; }
.dealer-report-stats .is-violet i { color:#7567e8; border-color:#ded8ff; background:#f1efff; }
.dealer-report-stats div { position:relative; z-index:1; }
.dealer-report-stats small { display:block; margin:8px 0 5px; color:#39475d; font-size:13px; }
.dealer-report-stats strong { display:block; color:#17233a; font-size:22px; line-height:1; }
.dealer-report-stats em { display:block; margin-top:7px; color:#8b96a8; font-size:11.5px; font-style:normal; }
.dealer-management-page>.dealer-status-tabs {
    min-height:44px; padding:6px 10px; gap:6px; align-items:center; border-color:#e5ebf4;
    border-radius:12px; background:#fff;
}
.dealer-status-caption {
    margin:0 6px 0 2px; color:#435168; font-size:12.5px; font-weight:700; white-space:nowrap;
}
.dealer-management-page>.dealer-status-tabs a {
    min-height:30px; padding:0 11px; border-color:transparent; border-radius:7px;
    color:#5e6d82; background:#f6f8fb; font-size:12.5px; font-weight:600;
}
.dealer-management-page>.dealer-status-tabs a:hover,
.dealer-management-page>.dealer-status-tabs a.active {
    color:#1557b4; border-color:#c4daf6; background:#dfeeff;
}
.dealer-management-page>.dealer-status-tabs span {
    min-width:19px; height:19px; color:#66809f; background:#fff; font-size:10.5px;
}
.dealer-management-page>.dealer-status-tabs a.active span { color:#1557b4; background:#fff; }
.dealer-management-page>.dealer-business-filter {
    margin:0; padding:11px 14px; display:grid; grid-template-columns:repeat(4,minmax(170px,1fr));
    gap:10px 14px; align-items:center; border:1px solid #e5ebf4; border-radius:14px; background:#fff;
}
.dealer-management-page>.dealer-business-filter>div {
    min-width:0; display:flex; align-items:center; gap:9px;
}
.dealer-management-page>.dealer-business-filter label {
    flex:0 0 auto; margin:0; color:#435168; font-size:12.5px; font-weight:600; white-space:nowrap;
}
.dealer-management-page>.dealer-business-filter input,
.dealer-management-page>.dealer-business-filter select {
    min-width:0; width:100%; height:38px; padding:0 10px; border:1px solid #dbe4f0;
    border-radius:8px; color:#31405a; background:#fff; font-size:12.5px;
}
.dealer-management-page>.dealer-business-filter .filter-actions { justify-content:flex-end; }
.dealer-management-page>.dealer-business-filter .button {
    height:38px; padding:0 16px; border-radius:8px; font-size:12.5px;
}
.dealer-management-page>.dealer-business-table-wrap {
    height:100%; min-height:300px; padding:0; overflow:hidden; align-self:stretch;
    display:flex; flex-direction:column;
    border:1px solid #e5ebf4; border-radius:14px; background:#fff;
}
.dealer-table-scroll { flex:1; min-height:0; padding:11px; overflow:auto; }
.dealer-management-page .dealer-business-table {
    width:100%; min-width:1500px; table-layout:fixed;
    border:1px solid #e5ebf4; border-collapse:separate; border-spacing:0;
}
.dealer-management-page .dealer-business-table th {
    height:46px; padding:0 12px; color:#64748b; background:#f5f8fc; border-bottom:1px solid #e5ebf4;
    font-size:12.5px; font-weight:600; text-align:center;
}
.dealer-management-page .dealer-business-table td {
    height:76px; padding:10px 12px; color:#25334a; border-bottom:1px solid #edf1f6;
    font-size:12.5px; text-align:center;
}
.dealer-management-page .dealer-business-table tbody tr:hover { background:#fafcff; }
.dealer-management-page .dealer-business-table th:first-child,
.dealer-management-page .dealer-business-table td:first-child {
    width:44px; min-width:44px; max-width:44px; padding-right:6px; padding-left:6px; text-align:center;
}
.dealer-management-page .dealer-business-table th:nth-child(2),
.dealer-management-page .dealer-business-table td:nth-child(2) { width:100px; min-width:100px; max-width:100px; }
.dealer-management-page .dealer-business-table th:nth-child(3),
.dealer-management-page .dealer-business-table td:nth-child(3) { width:100px; min-width:100px; max-width:100px; }
.dealer-management-page .dealer-business-table th:nth-child(4),
.dealer-management-page .dealer-business-table td:nth-child(4) { width:125px; min-width:125px; }
.dealer-management-page .dealer-business-table th:nth-child(5),
.dealer-management-page .dealer-business-table td:nth-child(5) { width:120px; min-width:120px; max-width:120px; }
.dealer-management-page .dealer-business-table th:nth-child(6),
.dealer-management-page .dealer-business-table td:nth-child(6) { width:120px; min-width:120px; max-width:120px; }
.dealer-management-page .dealer-business-table th:nth-child(9),
.dealer-management-page .dealer-business-table td:nth-child(9) { width:120px; min-width:120px; }
.dealer-management-page .dealer-business-table th:nth-child(10),
.dealer-management-page .dealer-business-table td:nth-child(10) { width:145px; min-width:145px; }
.dealer-management-page .dealer-business-table th:nth-child(12),
.dealer-management-page .dealer-business-table td:nth-child(12) { width:130px; min-width:130px; }
.dealer-management-page .dealer-business-table th:nth-child(11),
.dealer-management-page .dealer-business-table td:nth-child(11) { width:200px; min-width:200px; max-width:200px; }
.dealer-management-page .dealer-info-cell strong { color:#1e2c43; font-size:11px; }
.dealer-company-mark {
    width:34px; height:34px; display:grid; place-items:center; flex:0 0 34px; border-radius:9px;
    color:#3474f3; background:linear-gradient(145deg,#edf4ff,#dce9ff); font-size:12px; font-weight:800;
}
.dealer-management-page .stack-cell span,
.dealer-management-page .metric-cell span,
.dealer-management-page .metric-cell em { font-size:11px; }
.dealer-info-without-avatar { min-width:0; }
.dealer-info-without-avatar>div { gap:4px; }
.dealer-contact-name { color:#2c3a50; font-weight:600; white-space:nowrap; }
.dealer-contact-phone { color:#52647d; font-variant-numeric:tabular-nums; white-space:nowrap; }
.dealer-region-level { color:#34435a; font-size:12px; font-weight:600; white-space:nowrap; }
.dealer-count-value { display:inline-block; min-width:24px; color:#17233d; font-size:14px; font-weight:700; text-align:center; }
.dealer-management-page .dealer-business-table .dealer-distribution-column,
.dealer-management-page .dealer-business-table .dealer-distribution-value { width:110px; min-width:110px; text-align:center; }
.dealer-management-page .dealer-business-table .dealer-distribution-value .dealer-count-value { color:#1769d2; }
.dealer-management-page .dealer-business-table th:nth-child(9),
.dealer-management-page .dealer-business-table td:nth-child(9) { width:105px; min-width:105px; max-width:105px; }
.dealer-management-page .dealer-business-table th:nth-child(10),
.dealer-management-page .dealer-business-table td:nth-child(10) { width:120px; min-width:120px; max-width:120px; }
.dealer-management-page .dealer-business-table th:nth-child(11),
.dealer-management-page .dealer-business-table td:nth-child(11) { width:105px; min-width:105px; max-width:105px; }
.dealer-management-page .dealer-business-table th:nth-child(12),
.dealer-management-page .dealer-business-table td:nth-child(12) { width:200px; min-width:200px; max-width:200px; }
.dealer-management-page .dealer-business-table th:nth-child(13),
.dealer-management-page .dealer-business-table td:nth-child(13) { width:130px; min-width:130px; max-width:130px; }
.dealer-state-text { font-size:12.5px; font-weight:700; white-space:nowrap; }
.dealer-state-text.normal { color:#16845e; }
.dealer-state-text.abnormal { color:#d38312; }
.dealer-state-text.closed { color:#8a94a3; }
.dealer-deposit-amount { color:#25334a; font-size:13px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.dealer-id-code {
    padding:4px 7px; border:1px solid #d7e4ff; border-radius:5px;
    color:#3971e9; background:#edf3ff; font-size:11.5px; white-space:nowrap;
}
.dealer-check-column input { width:16px; height:16px; margin:0; vertical-align:middle; accent-color:#3474f3; cursor:pointer; }
.dealer-table-footer {
    min-height:54px; padding:8px 12px; display:flex; align-items:center; justify-content:space-between; gap:16px;
    flex:0 0 auto; border-top:1px solid #e5ebf4; background:#fff;
}
.dealer-table-footer>div { display:flex; align-items:center; gap:16px; color:#7f8b9d; font-size:12px; }
.dealer-table-footer>div strong { color:#3474f3; font-size:13px; }
.dealer-pagination { display:flex; align-items:center; gap:6px; }
.dealer-pagination a {
    min-width:32px; height:30px; padding:0 9px; display:inline-flex; align-items:center; justify-content:center;
    border:1px solid #dce5f1; border-radius:7px; color:#52647d; background:#fff; font-size:12px;
}
.dealer-pagination a:hover,.dealer-pagination a.active { color:#fff; border-color:#3474f3; background:#3474f3; }
.dealer-pagination a.disabled { pointer-events:none; opacity:.45; }
.dealer-management-page .metric-cell strong { font-size:17px; }
.dealer-management-page .status-badge { padding:4px 8px; font-size:11px; }
.dealer-management-page .dealer-actions { gap:8px; white-space:nowrap; }
.dealer-management-page .dealer-actions>a,
.dealer-management-page .more-actions summary { font-size:11.5px; }
.dealer-management-page .empty-cell { height:240px; color:#8b96a8; }
@media (max-width:1200px) {
    .dealer-management-page>.dealer-business-filter { grid-template-columns:repeat(2,minmax(220px,1fr)); }
}
@media (max-width:760px) {
    .admin-dealers-body .page-body { padding:10px; }
    .dealer-management-page { min-height:auto; }
    .dealer-report-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .dealer-management-page>.category-toolbar { align-items:flex-start; flex-direction:column; gap:12px; }
    .dealer-management-page>.dealer-business-filter { grid-template-columns:1fr; }
}

.dealer-info-cell {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    min-width: 0;
}

.dealer-info-cell > div {
    min-width: 0;
}

.dealer-info-cell strong,
.dealer-info-cell span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dealer-info-cell > div,
.stack-cell,
.metric-cell,
.status-stack {
    display: grid;
    gap: 5px;
}

.dealer-info-cell strong,
.stack-cell strong,
.metric-cell strong {
    color: #111827;
}

.dealer-info-cell span,
.stack-cell span,
.metric-cell span,
.metric-cell em {
    color: #64748b;
    font-size: 12px;
    font-style: normal;
}

.metric-cell strong {
    font-size: 18px;
}

.metric-cell em {
    color: #0b65c2;
}

.dealer-actions {
    position: relative;
    white-space: nowrap;
}

.dealer-actions > a,
.more-actions > button {
    margin-right: 8px;
    border: 0;
    background: transparent;
    color: #0b65c2;
    cursor: pointer;
    font: inherit;
    padding: 0;
}

.more-actions {
    display: inline-block;
    position: relative;
}

.more-menu {
    display: none;
    position: absolute;
    right: 0;
    top: 24px;
    z-index: 20;
    width: 156px;
    padding: 6px 0;
    border: 1px solid var(--line);
    border-radius: 6px;
    background: #fff;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.12);
}

.more-actions:hover .more-menu,
.more-actions:focus-within .more-menu {
    display: grid;
}

.more-menu a {
    display: block;
    padding: 8px 12px;
    color: #334155;
    font-size: 13px;
}

.more-menu a:hover {
    color: var(--primary-dark);
    background: #f1f8fc;
}

.more-menu .danger-link {
    color: var(--red);
}

.worker-management-page {
    display: grid;
    min-height: calc(100vh - 136px);
    grid-template-rows: auto auto minmax(0, 1fr);
    gap: 14px;
}

.worker-admin-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.worker-admin-topbar .worker-status-tabs { flex: 1; }

.worker-inline-action {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-right: 7px;
}

.worker-inline-action button,
.worker-actions .more-menu form button {
    padding: 0;
    color: #0b65c2;
    border: 0;
    background: transparent;
    cursor: pointer;
    font: inherit;
}

.terminal-actions .more-menu form { margin: 0; }

.terminal-actions .more-menu form button {
    width: 100%;
    padding: 8px 12px;
    border: 0;
    background: transparent;
    color: #334155;
    font: inherit;
    font-size: 13px;
    text-align: left;
    cursor: pointer;
}

.terminal-actions .more-menu form button:hover {
    color: var(--primary-dark);
    background: #f1f8fc;
}

.terminal-actions .more-menu form button.danger-link { color: var(--red); }

/* Worker portal */
.worker-portal-page { display: grid; gap: 14px; }
.worker-mobile-home-header,
.worker-mobile-task-header,
.worker-mobile-task-list,
.worker-home-hero-art,
.worker-stat-icon { display: none; }

.worker-tasks-page {
    min-height: calc(100vh - 122px);
    grid-template-rows: auto auto minmax(0, 1fr);
}

.worker-welcome-panel {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 22px 24px;
    color: #fff;
    border-radius: 8px;
    background: linear-gradient(125deg, #0878b9, #1597ca);
}

.worker-welcome-panel span { font-size: 12px; opacity: .9; }
.worker-welcome-panel h2 { margin: 7px 0; font-size: 24px; }
.worker-welcome-panel p { max-width: 720px; margin: 0; color: rgba(255,255,255,.86); line-height: 1.7; }
.worker-welcome-status { display: grid; justify-items: end; gap: 9px; min-width: 150px; }
.worker-welcome-status .status-badge { opacity: 1; }
.worker-welcome-status small { color: rgba(255,255,255,.85); }

.worker-dashboard-stats {
    display: grid;
    grid-template-columns: repeat(5, minmax(140px, 1fr));
    gap: 12px;
}

.worker-dashboard-stats a {
    display: grid;
    gap: 6px;
    padding: 16px 18px;
    color: #334155;
    border: 1px solid var(--line);
    border-radius: 7px;
    background: #fff;
    text-decoration: none;
}

.worker-dashboard-stats a:hover { border-color: #8dcceb; box-shadow: 0 7px 18px rgba(15,86,125,.08); }
.worker-dashboard-stats span { color: #475569; font-size: 13px; }
.worker-dashboard-stats strong { color: #0b6fa9; font-size: 27px; }
.worker-dashboard-stats small { color: var(--muted); }

.worker-dashboard-layout { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(290px, .65fr); gap: 14px; }
.worker-dashboard-side { display: grid; align-content: start; gap: 14px; }
.worker-dashboard-card,
.worker-task-progress,
.worker-task-action-card {
    padding: 18px;
    border: 1px solid var(--line);
    border-radius: 7px;
    background: #fff;
}

.worker-card-heading,
.worker-record-header,
.worker-task-detail-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}

.worker-card-heading { margin-bottom: 14px; }
.worker-card-heading h3,
.worker-record-header h2 { margin: 0 0 4px; }
.worker-card-heading h3 { font-size: 16px; }
.worker-card-heading p,
.worker-record-header p { margin: 0; color: var(--muted); font-size: 12px; }
.worker-card-heading > a { color: #0878b9; font-size: 13px; }

.worker-task-list { display: grid; }
.worker-task-item {
    display: grid;
    grid-template-columns: 54px minmax(0,1fr);
    align-items: center;
    gap: 15px;
    padding: 14px 2px;
    color: #1f2937;
    border-top: 1px solid #edf1f4;
    text-decoration: none;
}
.worker-task-item:first-child { border-top: 0; }
.worker-task-item:hover { background: #f8fcfe; }
.worker-task-building-icon { display:inline-flex; width:50px; height:50px; border-radius:10px; background:linear-gradient(145deg,#e9f2ff,#d6e7ff); }
.worker-task-building-icon::before { content:""; width:24px; height:30px; margin:auto; border-bottom:3px solid #1b6ce5; background:repeating-linear-gradient(180deg,#1b6ce5 0 3px,transparent 3px 7px); clip-path:polygon(22% 18%,50% 0,78% 18%,78% 92%,100% 92%,100% 100%,0 100%,0 92%,22% 92%); }
.worker-task-summary { min-width:0; }
.worker-task-summary > strong,
.worker-task-summary > span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.worker-task-summary > span { margin-top:5px; color:var(--muted); font-size:12px; }
.worker-task-summary-footer { display:flex !important; align-items:center; justify-content:space-between; gap:12px; overflow:visible !important; }
.worker-task-summary-footer em { font-style:normal; }
.worker-task-summary-footer small { color:var(--muted); }

.worker-profile-summary { margin: 0; }
.worker-profile-summary > div { display: grid; grid-template-columns: 90px minmax(0,1fr); gap: 10px; padding: 10px 0; border-top: 1px solid #edf1f4; }
.worker-profile-summary > div:first-child { border-top: 0; }
.worker-profile-summary dt { color: var(--muted); font-size: 12px; }
.worker-profile-summary dd { margin: 0; line-height: 1.6; word-break: break-word; }

.worker-process-guide ol { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }
.worker-process-guide li { display: grid; grid-template-columns: 28px 1fr; gap: 10px; align-items: start; }
.worker-process-guide li i { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; color: #fff; border-radius: 50%; background: #1597ca; font-style: normal; }
.worker-process-guide li span strong,
.worker-process-guide li span small { display: block; }
.worker-process-guide li span small { margin-top: 4px; color: var(--muted); line-height: 1.5; }

.worker-task-tabs { display: flex; flex-wrap: wrap; gap: 8px; padding: 10px; border: 1px solid var(--line); border-radius: 7px; background: #f8fafc; }
.worker-task-tabs a { display: inline-flex; align-items: center; gap: 7px; padding: 8px 13px; color: #334155; border: 1px solid #dbe3ea; border-radius: 18px; background: #fff; text-decoration: none; }
.worker-task-tabs a span { min-width: 20px; padding: 1px 6px; color: #0b65c2; border-radius: 10px; background: #eef6ff; text-align: center; font-size: 11px; }
.worker-task-tabs a.active { color: #fff; border-color: #1688c4; background: #1688c4; }
.worker-task-tabs a.active span { color: #1688c4; background: #fff; }

.worker-task-filter { display: flex; align-items: end; gap: 10px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 7px; background: #f8fafc; }
.worker-task-filter > div { min-width: 230px; flex: 1; }
.worker-task-filter label { font-size: 12px; }
.worker-task-filter input,
.worker-task-filter select { height: 36px; padding: 7px 9px; }
.worker-task-table-wrap {
    height: 100%;
    min-height: 430px;
    background: #fff;
}
.worker-task-table { min-width: 1250px; }
.worker-task-table th { height: 43px; }
.worker-task-table td { vertical-align: middle; }
.worker-task-actions { white-space: nowrap; }
.worker-task-actions > span { margin: 0 7px; color: #cbd5e1; }
.worker-task-actions form { display: inline; margin: 0; }
.worker-task-actions button { padding: 0; color: #0878b9; border: 0; background: transparent; cursor: pointer; font: inherit; }

.worker-record-header { padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.worker-record-header > span { color: var(--muted); }

.worker-task-detail-toolbar { padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.worker-task-detail-toolbar > div:first-child span { color: #0878b9; font-size: 12px; }
.worker-task-detail-toolbar h2 { margin: 5px 0 0; font-size: 21px; }
.worker-task-detail-toolbar > div:last-child { display: flex; align-items: center; gap: 10px; }
.worker-task-info-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.worker-progress-steps { display: grid; grid-template-columns: repeat(5,minmax(110px,1fr)); overflow-x: auto; }
.worker-progress-steps > div { position: relative; display: grid; justify-items: center; gap: 8px; min-width: 110px; color: #94a3b8; font-size: 12px; text-align: center; }
.worker-progress-steps > div::before { content:""; position:absolute; top:14px; left:-50%; width:100%; height:2px; background:#e2e8f0; }
.worker-progress-steps > div:first-child::before { display:none; }
.worker-progress-steps i { position:relative; z-index:1; display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; border:2px solid #dbe2ea; border-radius:50%; background:#f1f5f9; font-style:normal; font-weight:700; }
.worker-progress-steps .done { color:#166534; }
.worker-progress-steps .done::before { background:#86d7a2; }
.worker-progress-steps .done i { color:#fff; border-color:#22a559; background:#22a559; }
.worker-progress-steps .current i { box-shadow:0 0 0 4px rgba(34,165,89,.15); }
.worker-detail-products { min-width: 720px; }
.worker-task-action-card { display:grid; grid-template-columns:minmax(240px,.65fr) minmax(360px,1.35fr); align-items:start; gap:24px; border-color:#9dd3eb; background:#f7fcff; }
.worker-task-action-card h3 { margin:0 0 7px; }
.worker-task-action-card p { margin:0; color:var(--muted); line-height:1.6; }
.worker-task-action-card > form:not(.worker-completion-form) { justify-self:end; }
.worker-completion-form .form-row { margin-bottom:10px; }
.worker-completion-card { scroll-margin-top:86px; border-color:#f0c987; background:linear-gradient(135deg,#fffdf8,#fff8eb); }
.worker-completion-card.is-ready { border-color:#9bd8b7; background:linear-gradient(135deg,#fbfffd,#effbf4); }
.worker-completion-state { display:inline-flex; margin-bottom:9px; padding:4px 9px; color:#a75b00; border-radius:12px; background:#fff0d4; font-size:11px; font-weight:700; }
.worker-completion-card.is-ready .worker-completion-state { color:#16804e; background:#def7e9; }
.worker-completion-count { display:grid; grid-template-columns:auto minmax(0,1fr) auto; margin-top:14px; align-items:baseline; gap:6px; }
.worker-completion-count strong { color:#e48213; font-size:27px; line-height:1; }
.worker-completion-card.is-ready .worker-completion-count strong { color:#20a666; }
.worker-completion-count span { color:#7e8999; font-size:11px; }
.worker-completion-count a { display:flex; align-items:center; gap:5px; color:#0b6fe8; font-size:12px; font-weight:700; text-decoration:none; }
.worker-completion-count b { font-size:19px; font-weight:400; }
.worker-missing-requirements { display:grid; gap:7px; margin:13px 0 0; padding:11px 12px 11px 29px; color:#86550f; border:1px solid #f3d9a9; border-radius:8px; background:rgba(255,255,255,.72); font-size:11px; line-height:1.45; }
.worker-missing-requirements li::marker { color:#ee941d; }
.worker-missing-requirements li.more { color:#69768a; list-style:none; }
.worker-completion-form { padding:14px; border:1px solid rgba(221,231,242,.95); border-radius:10px; background:#fff; }
.worker-completion-label { display:flex; margin-bottom:7px; align-items:center; justify-content:space-between; gap:10px; }
.worker-completion-label label { color:#23344e; font-weight:700; }
.worker-completion-label small { color:#8a97a9; font-size:10px; }
.worker-completion-form textarea { min-height:116px; resize:vertical; border-color:#dce5ef; border-radius:8px; background:#fbfdff; line-height:1.6; }
.worker-completion-form textarea:focus { border-color:#4b98f2; background:#fff; box-shadow:0 0 0 3px rgba(30,120,235,.1); }
.worker-completion-form > .button { width:100%; min-height:43px; border-radius:8px; }
.worker-completion-submit-note { margin:8px 0 0!important; color:#8a96a8!important; font-size:10px; text-align:center; }

.worker-construction-flow {
    display:grid;
    gap:18px;
    padding:20px;
    border:1px solid #dce7f3;
    border-radius:10px;
    background:#f8fbff;
    scroll-margin-top:76px;
}
.worker-construction-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.worker-construction-heading > div:first-child > span { color:#0b70d8; font-size:12px; font-weight:700; }
.worker-construction-heading h3 { margin:5px 0; color:#10213d; font-size:21px; }
.worker-construction-heading p { margin:0; color:var(--muted); line-height:1.6; }
.worker-construction-progress { display:grid; min-width:88px; justify-items:end; }
.worker-construction-progress strong { color:#0a69e8; font-size:28px; }
.worker-construction-progress span { color:var(--muted); font-size:12px; }
.worker-construction-progress-bar { height:8px; overflow:hidden; border-radius:8px; background:#dfe9f5; }
.worker-construction-progress-bar i { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#0b75f4,#22b175); transition:width .25s ease; }
.worker-flow-notice { padding:11px 13px; color:#1e5ea8; border:1px solid #b9d7fb; border-radius:8px; background:#eef6ff; }
.worker-flow-notice.warning { color:#9a5c08; border-color:#f5d48f; background:#fff9ea; }
.worker-flow-notice.success { color:#167044; border-color:#a9e1c4; background:#effcf5; }
.worker-product-check-section,
.worker-area-photo-section { padding:17px; border:1px solid #e0e8f1; border-radius:10px; background:#fff; }
.worker-flow-section-title { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:14px; }
.worker-flow-section-title > div { display:flex; align-items:center; gap:10px; }
.worker-flow-section-title > div > i { display:inline-flex; width:30px; height:30px; align-items:center; justify-content:center; color:#fff; border-radius:50%; background:#0c75ec; font-style:normal; font-weight:700; }
.worker-flow-section-title strong,
.worker-flow-section-title small { display:block; }
.worker-flow-section-title strong { color:#12233f; font-size:16px; }
.worker-flow-section-title small { margin-top:3px; color:var(--muted); }
.worker-flow-section-title > em { padding:5px 9px; color:#1468d9; border-radius:14px; background:#edf5ff; font-size:12px; font-style:normal; white-space:nowrap; }
.worker-product-check-list { display:grid; gap:12px; }
.worker-product-check-card { padding:14px; border:1px solid #e3eaf2; border-radius:9px; background:#fbfdff; }
.worker-product-check-info { display:grid; grid-template-columns:56px minmax(0,1fr) auto; align-items:center; gap:12px; }
.worker-product-check-info > span { display:flex; width:54px; height:54px; overflow:hidden; align-items:center; justify-content:center; border-radius:8px; background:#eef5ff; }
.worker-product-check-info img { width:100%; height:100%; object-fit:cover; }
.worker-product-check-info > span > i { width:28px; height:28px; background:#2878e7; clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%); }
.worker-product-check-info strong,
.worker-product-check-info small { display:block; }
.worker-product-check-info small { margin-top:4px; color:var(--muted); }
.worker-product-check-info > em { padding:5px 9px; color:#a36006; border-radius:14px; background:#fff4d8; font-size:12px; font-style:normal; }
.worker-product-check-info > em.done { color:#137347; background:#eafaf2; }
.worker-area-tabs { display:flex; gap:8px; overflow-x:auto; padding:2px 1px 10px; scrollbar-width:none; }
.worker-area-tabs::-webkit-scrollbar { display:none; }
.worker-area-tabs button { display:inline-flex; min-width:max-content; min-height:36px; padding:6px 12px; align-items:center; gap:6px; color:#40506a; border:1px solid #d8e2ed; border-radius:18px; background:#fff; cursor:pointer; }
.worker-area-tabs button.active { color:#fff; border-color:#0b6fea; background:#0b6fea; box-shadow:0 5px 12px rgba(11,111,234,.2); }
.worker-area-tabs button.done:not(.active) { color:#167146; border-color:#aee0c8; background:#f1fcf6; }
.worker-area-tabs button i { font-style:normal; }
.worker-area-panel { display:none; }
.worker-area-panel.active { display:block; }
.worker-area-panel-heading { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:12px 14px; border-radius:8px; background:#f2f7fd; }
.worker-area-panel-heading h4 { margin:0 0 4px; color:#142440; font-size:16px; }
.worker-area-panel-heading p { margin:0; color:var(--muted); font-size:12px; }
.worker-area-panel-heading > span { color:#4c6482; font-size:12px; white-space:nowrap; }
.worker-area-phases { display:grid; grid-template-columns:1fr; gap:10px; margin-top:12px; }
.worker-area-phase-card { min-width:0; padding:13px; border:1px solid #e0e8f1; border-radius:9px; background:#fff; }
.worker-area-phase-card.done { border-color:#b6dfca; background:#fbfffd; }
.worker-area-phase-card > header { display:grid; grid-template-columns:30px minmax(0,1fr) auto; align-items:start; gap:8px; }
.worker-area-phase-card > header > i { display:inline-flex; width:27px; height:27px; align-items:center; justify-content:center; color:#286fcf; border-radius:50%; background:#eaf3ff; font-style:normal; font-weight:700; }
.worker-area-phase-card.done > header > i { color:#fff; background:#20a865; }
.worker-area-phase-card > header strong,
.worker-area-phase-card > header small { display:block; }
.worker-area-phase-card > header small { margin-top:4px; color:var(--muted); line-height:1.45; }
.worker-area-phase-card > header > em { color:#9d650f; font-size:11px; font-style:normal; white-space:nowrap; }
.worker-area-phase-card.done > header > em { color:#167146; }
.worker-construction-photo-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:9px; margin-top:12px; }
.worker-construction-photo-grid figure { position:relative; min-width:0; margin:0; overflow:hidden; border:1px solid #dce5ef; border-radius:8px; background:#fff; }
.worker-construction-photo-grid figure > a { display:block; aspect-ratio:4/3; overflow:hidden; background:#eaf0f7; }
.worker-construction-photo-grid img { width:100%; height:100%; object-fit:cover; }
.worker-construction-photo-grid figcaption { display:grid; gap:3px; padding:7px; }
.worker-construction-photo-grid figcaption span,
.worker-construction-photo-grid figcaption small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.worker-construction-photo-grid figcaption span { color:#41516a; font-size:11px; }
.worker-construction-photo-grid figcaption small { color:var(--muted); font-size:10px; }
.worker-construction-photo-grid figure > form { position:absolute; top:5px; right:5px; margin:0; }
.worker-construction-photo-grid figure > form button { padding:4px 7px; color:#fff; border:0; border-radius:5px; background:rgba(204,45,45,.88); cursor:pointer; font-size:11px; }
.worker-construction-upload { display:grid; grid-template-columns:minmax(150px,auto) minmax(130px,1fr) auto auto; align-items:center; gap:9px; margin-top:12px; padding-top:12px; border-top:1px dashed #d8e3ef; }
.worker-camera-button { display:inline-flex; min-height:38px; padding:7px 12px; align-items:center; justify-content:center; color:#0868e5; border:1px solid #8cbafa; border-radius:7px; background:#f3f8ff; cursor:pointer; font-weight:700; }
.worker-camera-button input { position:absolute; width:1px; height:1px; overflow:hidden; opacity:0; }
.worker-camera-button span::before { content:"＋"; margin-right:5px; }
.worker-construction-upload > small { overflow:hidden; color:var(--muted); text-overflow:ellipsis; white-space:nowrap; }
.worker-construction-upload.is-uploading { pointer-events:none; opacity:.72; }
.worker-construction-upload.is-uploading .worker-camera-button { color:#64748b; border-color:#cbd5e1; background:#f1f5f9; }
.worker-location-state { color:#59806d; font-size:11px; white-space:nowrap; }
.worker-construction-upload .button { min-height:38px; }
.worker-construction-upload .button:disabled,
.worker-completion-form .button:disabled { color:#91a0b4; border-color:#d7e0e9; background:#e9eef4; cursor:not-allowed; }
.worker-missing-requirements { display:grid; gap:4px; margin:10px 0 0; padding-left:18px; color:#a05c08; font-size:12px; }
.worker-construction-summary { display:grid; grid-template-columns:minmax(0,1fr) 220px auto; align-items:center; gap:20px; padding:18px; border:1px solid #bdd8f7; border-radius:10px; background:linear-gradient(120deg,#f8fbff,#eef6ff); }
.worker-construction-summary > div:first-child > span { color:#0b6fe2; font-size:12px; font-weight:700; }
.worker-construction-summary h3 { margin:5px 0; color:#132540; font-size:19px; }
.worker-construction-summary p { margin:0; color:var(--muted); line-height:1.55; }
.worker-construction-summary-progress { display:grid; gap:5px; }
.worker-construction-summary-progress strong { color:#0b6fe2; font-size:25px; }
.worker-construction-summary-progress span { color:var(--muted); font-size:12px; }
.worker-construction-page { display:grid; gap:14px; }
.worker-construction-page-toolbar { display:grid; grid-template-columns:180px minmax(0,1fr) auto; align-items:center; gap:14px; padding-bottom:14px; border-bottom:1px solid var(--line); }
.worker-construction-page-toolbar > a { color:#0b6fdc; text-decoration:none; }
.worker-construction-page-toolbar > div { text-align:center; }
.worker-construction-page-toolbar span { color:var(--muted); font-size:11px; }
.worker-construction-page-toolbar h2 { margin:4px 0 0; color:#10213d; font-size:21px; }
.worker-construction-page-toolbar > em { padding:5px 10px; color:#1764ca; border-radius:16px; background:#edf5ff; font-size:12px; font-style:normal; }
.worker-construction-overview,
.worker-construction-navigation,
.worker-construction-step-card,
.worker-product-focus-card { padding:17px; border:1px solid #dde7f1; border-radius:10px; background:#fff; }
.worker-construction-overview > div:first-child { display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:10px; }
.worker-construction-overview > div strong { color:#0b6fe2; font-size:28px; }
.worker-construction-overview > div span,
.worker-construction-overview p { color:var(--muted); }
.worker-construction-overview p { margin:10px 0 0; }
.worker-construction-nav-title { display:flex; align-items:center; gap:10px; margin-bottom:13px; }
.worker-construction-nav-title > i { display:inline-flex; width:31px; height:31px; align-items:center; justify-content:center; color:#fff; border-radius:50%; background:#0b70e8; font-style:normal; font-weight:700; }
.worker-construction-nav-title h3 { margin:0 0 3px; color:#142440; font-size:17px; }
.worker-construction-nav-title p { margin:0; color:var(--muted); font-size:12px; }
.worker-construction-nav-list { display:grid; gap:8px; }
.worker-construction-nav-list > a { display:grid; grid-template-columns:48px minmax(0,1fr) auto 18px; align-items:center; gap:11px; padding:11px; color:#21314c; border:1px solid #e1e8f0; border-radius:8px; text-decoration:none; }
.worker-construction-nav-list > a > span { display:flex; width:46px; height:46px; overflow:hidden; border-radius:7px; background:#eef4fb; }
.worker-construction-nav-list img { width:100%; height:100%; object-fit:cover; }
.worker-construction-nav-list strong,
.worker-construction-nav-list small { display:block; }
.worker-construction-nav-list small { margin-top:4px; color:var(--muted); }
.worker-construction-nav-list em { color:#a05e08; font-size:12px; font-style:normal; }
.worker-construction-nav-list em.done { color:#14804d; }
.worker-area-navigation-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px; }
.worker-area-navigation-grid article { overflow:hidden; border:1px solid #e0e8f1; border-radius:9px; background:#fbfdff; }
.worker-area-navigation-grid article > header { padding:12px; border-bottom:1px solid #e8eef5; }
.worker-area-navigation-grid header strong,
.worker-area-navigation-grid header small { display:block; }
.worker-area-navigation-grid header small { margin-top:4px; color:var(--muted); }
.worker-area-navigation-grid article > div { display:grid; }
.worker-area-navigation-grid article > div > a { display:grid; grid-template-columns:28px minmax(0,1fr) 14px; align-items:center; gap:9px; padding:10px 12px; color:#263650; border-top:1px solid #edf1f5; text-decoration:none; }
.worker-area-navigation-grid article > div > a:first-child { border-top:0; }
.worker-area-navigation-grid article > div > a > i { display:inline-flex; width:25px; height:25px; align-items:center; justify-content:center; border-radius:50%; background:#edf3fb; font-style:normal; }
.worker-area-navigation-grid article > div > a.done > i { color:#fff; background:#1fa666; }
.worker-area-navigation-grid article > div > a span,
.worker-area-navigation-grid article > div > a small { display:block; }
.worker-area-navigation-grid article > div > a small { margin-top:3px; color:var(--muted); font-size:11px; }
.worker-construction-phase-nav { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); overflow-x:auto; border:1px solid #dce6f1; border-radius:10px; background:#fff; }
.worker-construction-phase-nav a { display:flex; min-width:115px; min-height:54px; padding:8px; align-items:center; justify-content:center; gap:7px; color:#637087; border-left:1px solid #e7edf4; text-decoration:none; text-align:center; }
.worker-construction-phase-nav a:first-child { border-left:0; }
.worker-construction-phase-nav a i { display:inline-flex; width:24px; height:24px; align-items:center; justify-content:center; border-radius:50%; background:#edf2f8; font-style:normal; }
.worker-construction-phase-nav a.done i { color:#fff; background:#20a666; }
.worker-construction-phase-nav a.active { color:#fff; background:#0b6fe8; }
.worker-construction-phase-nav a.active i { color:#0b6fe8; background:#fff; }
.worker-construction-stage-heading { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:14px; }
.worker-construction-stage-heading span { color:#0b6fe2; font-size:11px; }
.worker-construction-stage-heading h3 { margin:4px 0; color:#13243f; font-size:19px; }
.worker-construction-stage-heading p { margin:0; color:var(--muted); }
.worker-construction-stage-heading > em { color:#0b6fe2; font-size:17px; font-style:normal; font-weight:700; }
.worker-construction-simple-tip { display:flex; padding:10px 12px; align-items:flex-start; gap:9px; color:#4e6078; border:1px solid #dce9f8; border-radius:8px; background:#f3f8ff; font-size:11px; line-height:1.55; }
.worker-construction-simple-tip strong { flex:0 0 auto; padding:2px 7px; color:#0b69dc; border-radius:10px; background:#e1efff; font-size:10px; }
.worker-shot-limit { margin:10px 0 0; padding:9px; color:#698078; border-radius:7px; background:#edf8f2; font-size:11px; text-align:center; }
.worker-product-inspection-form { display:grid; grid-template-columns:repeat(3,minmax(130px,1fr)); gap:10px; margin-top:13px; padding:13px; border:1px solid #dce7f3; border-radius:8px; background:#fff; }
.worker-product-inspection-form label { display:grid; gap:5px; color:#475569; font-size:12px; }
.worker-product-inspection-form label.check { display:flex; align-items:center; flex-direction:row; }
.worker-product-inspection-form label.check input { width:auto; }
.worker-product-inspection-form input { min-width:0; }
.worker-product-inspection-form .button { align-self:end; }
.worker-required-shot-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:13px; }
.worker-required-shot { min-width:0; padding:12px; border:1px solid #e0e8f1; border-radius:8px; background:#fff; }
.worker-required-shot.done { border-color:#acdcbc; background:#fafffc; }
.worker-required-shot > header { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.worker-required-shot > header strong,
.worker-required-shot > header small { display:block; }
.worker-required-shot > header small { margin-top:4px; color:var(--muted); line-height:1.45; }
.worker-required-shot > header em { padding:3px 7px; color:#b15e08; border-radius:12px; background:#fff2d8; font-size:11px; font-style:normal; white-space:nowrap; }
.worker-required-shot.done > header em { color:#137347; background:#e8f9f0; }
.worker-construction-photo-grid figure.review-rejected { border-color:#f2aaaa; background:#fff7f7; }
.worker-construction-photo-grid figure.review-approved { border-color:#a9dfc1; }
.worker-construction-photo-grid figcaption strong { color:#22324a; font-size:11px; }
.worker-construction-photo-grid figcaption em { color:#90600d; font-size:10px; font-style:normal; }
.worker-construction-photo-grid figure.review-rejected figcaption em,
.worker-construction-photo-grid .review-remark { color:#c53636; }

.worker-profile-grid { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr); gap:14px; }
.worker-profile-side { display:grid; align-content:start; gap:14px; }
.worker-profile-page .grid-2 { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 14px; }
.worker-profile-full { grid-column:1/-1; }

/* Worker profile center v2 */
.worker-profile-page-v2 { display:grid; max-width:980px; margin:0 auto; gap:14px; }
.worker-profile-mobile-header { display:none; }
.worker-profile-identity-card,
.worker-profile-stat-grid,
.worker-profile-section-card { border:1px solid #dfe8f2; border-radius:13px; background:#fff; box-shadow:0 7px 22px rgba(36,72,125,.06); }
.worker-profile-identity-card { position:relative; display:grid; grid-template-columns:120px minmax(0,1fr) 24px; align-items:center; gap:18px; overflow:hidden; padding:22px; }
.worker-profile-identity-card::after { content:""; position:absolute; right:-15px; bottom:-28px; width:230px; height:115px; opacity:.32; background:linear-gradient(135deg,transparent 20%,#dbeaff 20% 22%,transparent 22% 40%,#dbeaff 40% 42%,transparent 42%); clip-path:polygon(0 100%,20% 48%,32% 76%,50% 18%,58% 55%,76% 0,100% 100%); }
.worker-profile-avatar { position:relative; display:flex; width:112px; height:112px; align-items:center; justify-content:center; overflow:hidden; border-radius:50%; background:linear-gradient(145deg,#e8f4ff,#9fc9ff); }
.worker-profile-avatar > span { display:flex; width:62px; height:62px; align-items:center; justify-content:center; color:#fff; border-radius:50% 50% 42% 42%; background:#1763bc; font-size:29px; font-weight:800; }
.worker-profile-avatar > i { position:absolute; top:21px; left:28px; z-index:2; width:56px; height:24px; border-radius:28px 28px 8px 8px; background:#ffb526; box-shadow:0 5px 0 #e79512; }
.worker-profile-avatar > i::after { content:""; position:absolute; right:-8px; bottom:-3px; left:-8px; height:7px; border-radius:8px; background:#f49f13; }
.worker-profile-identity-main { position:relative; z-index:1; display:grid; gap:7px; }
.worker-profile-identity-main > div { display:flex; align-items:center; gap:14px; }
.worker-profile-identity-main h2 { margin:0; color:#142340; font-size:28px; }
.worker-profile-identity-main em { padding:5px 10px; color:#9a650d; border-radius:16px; background:#fff4d8; font-style:normal; }
.worker-profile-identity-main em.approved { color:#1261d1; background:#eaf3ff; }
.worker-profile-identity-main p { margin:0; color:#65728a; font-size:16px; }
.worker-profile-identity-main > span { color:#52617b; }
.worker-profile-identity-main > span > i { display:inline-block; width:18px; height:18px; margin-right:8px; vertical-align:-4px; color:#53647f; }
.worker-profile-identity-main i.dealer::before { content:"▣"; }
.worker-profile-identity-main i.phone::before { content:"⌕"; font-size:20px; }
.worker-profile-card-arrow { position:relative; z-index:2; color:#9aabc1; font-size:34px; text-decoration:none; }
.worker-profile-stat-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding:16px; }
.worker-profile-stat-grid > a { display:grid; grid-template-columns:48px minmax(0,1fr); align-items:center; gap:11px; padding:9px 16px; color:#253550; border-left:1px solid #e4ebf3; text-decoration:none; }
.worker-profile-stat-grid > a:first-child { border-left:0; }
.worker-profile-stat-grid > a > i { display:flex; width:44px; height:44px; align-items:center; justify-content:center; color:#fff; border-radius:50%; background:linear-gradient(145deg,#58a6ff,#0868e9); box-shadow:0 7px 14px rgba(14,105,233,.23); font-style:normal; }
.worker-profile-stat-grid i.pending::before { content:"✓"; font-size:21px; }
.worker-profile-stat-grid i.total { background:linear-gradient(145deg,#41d4ee,#08aacf); }
.worker-profile-stat-grid i.total::before { content:"↗"; font-size:22px; }
.worker-profile-stat-grid i.records { background:linear-gradient(145deg,#ab78ff,#7747df); }
.worker-profile-stat-grid i.records::before { content:"▤"; font-size:21px; }
.worker-profile-stat-grid span,
.worker-profile-stat-grid strong,
.worker-profile-stat-grid small { display:block; }
.worker-profile-stat-grid strong { margin:5px 0; color:#0966df; font-size:25px; }
.worker-profile-stat-grid small { color:var(--muted); font-size:11px; }
.worker-profile-section-card { padding:17px; scroll-margin-top:82px; }
.worker-profile-section-title { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.worker-profile-section-title h3 { position:relative; margin:0; padding-left:14px; color:#142440; font-size:17px; }
.worker-profile-section-title h3::before { content:""; position:absolute; top:2px; bottom:2px; left:0; width:4px; border-radius:3px; background:#0b70ef; }
.worker-profile-section-title > span { color:#0b69e5; }
.worker-profile-form-rows,
.worker-profile-account-list,
.worker-profile-security-list { overflow:hidden; border:1px solid #e1e8f1; border-radius:9px; }
.worker-profile-form-rows > label { display:grid; grid-template-columns:28px 140px minmax(0,1fr); align-items:center; gap:9px; min-height:54px; padding:0 14px; border-top:1px solid #e8edf3; }
.worker-profile-form-rows > label:first-child { border-top:0; }
.worker-profile-form-rows input { height:40px; padding:6px 0; border:0; background:transparent; text-align:right; box-shadow:none; }
.worker-profile-form-rows input:focus { box-shadow:none; }
.worker-profile-form-rows i,
.worker-profile-account-list i,
.worker-profile-security-list i { position:relative; width:23px; height:23px; color:#0b6eea; font-style:normal; }
.worker-profile-form-rows i.person::before,
.worker-profile-account-list i.account::before { content:"●"; }
.worker-profile-form-rows i.mobile::before,
.worker-profile-security-list i.mobile::before { content:"▯"; font-size:24px; }
.worker-profile-form-rows i.skill::before { content:"◆"; }
.worker-profile-save { width:100%; margin-top:12px; min-height:46px; border-radius:8px; font-weight:700; }
.worker-profile-account-list { margin:0; }
.worker-profile-account-list > div { display:flex; min-height:48px; padding:0 14px; align-items:center; justify-content:space-between; gap:20px; border-top:1px solid #e8edf3; }
.worker-profile-account-list > div:first-child { border-top:0; }
.worker-profile-account-list dt { display:flex; align-items:center; gap:9px; color:#31415b; }
.worker-profile-account-list dd { margin:0; color:#55637a; text-align:right; }
.worker-profile-account-list i.shield::before { content:"◆"; }
.worker-profile-account-list i.certified::before { content:"★"; }
.worker-profile-account-list i.building::before { content:"▥"; }
.worker-profile-account-list i.clock::before { content:"◷"; font-size:22px; }
.worker-profile-security-list > a,
.worker-profile-security-list summary { display:grid; grid-template-columns:28px minmax(0,1fr) 16px; min-height:50px; padding:0 14px; align-items:center; gap:9px; color:#31415b; border-top:1px solid #e8edf3; cursor:pointer; text-decoration:none; list-style:none; }
.worker-profile-security-list > *:first-child summary { border-top:0; }
.worker-profile-security-list summary::-webkit-details-marker { display:none; }
.worker-profile-security-list b { color:#a8b5c6; font-size:23px; font-weight:400; }
.worker-profile-security-list i.lock::before { content:"▣"; }
.worker-profile-security-list i.power::before { content:"◯"; font-size:24px; }
.worker-profile-security-list > a.logout { color:#ee3b32; }
.worker-profile-security-list details[open] summary b { transform:rotate(90deg); }
.worker-profile-security-list details form { display:grid; gap:10px; padding:14px; border-top:1px solid #e8edf3; background:#f8fbff; }
.worker-profile-security-list details form label { display:grid; gap:5px; color:#52617a; font-size:12px; }

@media (max-width:760px) {
    .worker-profile-body .role-worker .app-topbar { display:none; }
    .worker-profile-body .role-worker .page-body { padding:calc(78px + env(safe-area-inset-top)) 10px calc(82px + env(safe-area-inset-bottom)); background:linear-gradient(180deg,#1471ed 0,#3686ef 205px,#f2f6fb 410px,#f2f6fb 100%); }
    .worker-profile-body .role-worker .page-body > .card { padding:0; border:0; background:transparent; box-shadow:none; }
    .worker-profile-mobile-header { position:fixed; top:0; right:0; left:0; z-index:90; display:flex; height:calc(68px + env(safe-area-inset-top)); padding-top:env(safe-area-inset-top); align-items:center; justify-content:center; box-sizing:border-box; color:#fff; background:linear-gradient(135deg,#0870ec,#1468e6 60%,#438ef5); }
    .worker-profile-mobile-header h1 { margin:0; font-size:23px; letter-spacing:1px; }
    .worker-profile-mobile-header > a { position:absolute; right:17px; bottom:17px; width:30px; height:30px; color:#fff; }
    .worker-profile-mobile-header > a i::before { content:""; position:absolute; inset:4px 2px 5px; border:2px solid currentColor; border-radius:8px; }
    .worker-profile-mobile-header > a i::after { content:"•••"; position:absolute; top:1px; left:6px; letter-spacing:1px; }
    .worker-profile-page-v2 { gap:11px; }
    .worker-profile-identity-card { grid-template-columns:78px minmax(0,1fr) 16px; gap:11px; padding:17px 14px; border:0; border-radius:15px; }
    .worker-profile-avatar { width:76px; height:76px; }
    .worker-profile-avatar > span { width:43px; height:43px; font-size:20px; }
    .worker-profile-avatar > i { top:14px; left:19px; width:38px; height:16px; }
    .worker-profile-identity-main > div { gap:9px; }
    .worker-profile-identity-main h2 { font-size:21px; }
    .worker-profile-identity-main em { padding:4px 8px; font-size:11px; }
    .worker-profile-identity-main p { font-size:14px; }
    .worker-profile-identity-main > span { font-size:12px; }
    .worker-profile-stat-grid { padding:9px 5px; }
    .worker-profile-stat-grid > a { grid-template-columns:34px minmax(0,1fr); gap:6px; padding:7px; }
    .worker-profile-stat-grid > a > i { width:32px; height:32px; }
    .worker-profile-stat-grid > a > span { font-size:12px; }
    .worker-profile-stat-grid strong { font-size:22px; }
    .worker-profile-stat-grid small { line-height:1.35; }
    .worker-profile-section-card { padding:13px; border:0; border-radius:14px; }
    .worker-profile-form-rows > label { grid-template-columns:24px 100px minmax(0,1fr); min-height:50px; padding:0 10px; }
    .worker-profile-form-rows input { min-width:0; font-size:14px; }
    .worker-profile-account-list > div { min-height:46px; padding:0 10px; }
    .worker-profile-account-list dt,
    .worker-profile-account-list dd { font-size:13px; }
}

@media (max-width: 1100px) {
    .worker-dashboard-stats { grid-template-columns: repeat(3,minmax(140px,1fr)); }
    .worker-dashboard-layout,
    .worker-profile-grid { grid-template-columns:1fr; }
    .worker-task-item { grid-template-columns:54px minmax(0,1fr); }
}

@media (max-width: 760px) {
    .worker-welcome-panel { align-items:flex-start; flex-direction:column; }
    .worker-welcome-status { justify-items:start; }
    .worker-dashboard-stats { grid-template-columns:repeat(2,minmax(130px,1fr)); }
    .worker-task-filter { align-items:stretch; flex-direction:column; }
    .worker-task-filter > div { width:100%; min-width:0; }
    .worker-task-info-grid,
    .worker-task-action-card,
    .worker-profile-page .grid-2 { grid-template-columns:1fr; }
    .worker-task-action-card > form:not(.worker-completion-form) { justify-self:start; }
    .worker-task-item { grid-template-columns:54px minmax(0,1fr); }
    .worker-construction-flow { gap:13px; padding:13px; border-radius:10px; }
    .worker-construction-heading { align-items:flex-start; }
    .worker-construction-heading h3 { font-size:18px; }
    .worker-construction-heading p { font-size:12px; }
    .worker-construction-progress strong { font-size:23px; }
    .worker-product-check-section,
    .worker-area-photo-section { padding:12px; }
    .worker-product-check-info { grid-template-columns:48px minmax(0,1fr); }
    .worker-product-check-info > span { width:46px; height:46px; }
    .worker-product-check-info > em { grid-column:2; justify-self:start; }
    .worker-area-panel-heading { align-items:flex-start; flex-direction:column; gap:5px; }
    .worker-area-panel-heading > span { white-space:normal; }
    .worker-area-phases { grid-template-columns:1fr; }
    .worker-area-phase-card > header { grid-template-columns:30px minmax(0,1fr) auto; }
    .worker-construction-photo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .worker-construction-upload { grid-template-columns:1fr auto; }
    .worker-construction-upload .worker-camera-button,
    .worker-construction-upload > small,
    .worker-construction-upload .worker-location-state { grid-column:1 / -1; }
    .worker-construction-upload > small { white-space:normal; }
    .worker-construction-upload .button { grid-column:1 / -1; width:100%; }
    .worker-product-inspection-form,
    .worker-required-shot-list { grid-template-columns:1fr; }
    .worker-construction-summary { grid-template-columns:1fr; gap:12px; }
    .worker-construction-summary .button { width:100%; }
    .worker-construction-page-toolbar { grid-template-columns:1fr auto; }
    .worker-construction-page-toolbar > div { grid-column:1 / -1; grid-row:1; text-align:left; }
    .worker-construction-page-toolbar > a { grid-row:2; }
    .worker-construction-page-toolbar > em { grid-row:2; }
    .worker-area-navigation-grid { grid-template-columns:1fr; }
    .worker-construction-phase-nav { grid-template-columns:repeat(5,125px); }
    .worker-task-view-body .role-worker .page-body { padding:10px 10px calc(78px + env(safe-area-inset-bottom)); background:#f2f6fb; }
    .worker-task-detail-page { gap:10px; }
    .worker-task-detail-toolbar { position:relative; min-height:112px; padding:17px; overflow:hidden; color:#fff; border:0; border-radius:14px; background:linear-gradient(135deg,#0875f5,#2f8cf4); box-shadow:0 9px 23px rgba(24,105,225,.18); }
    .worker-task-detail-toolbar::after { content:""; position:absolute; right:-28px; bottom:-48px; width:160px; height:120px; border:22px solid rgba(255,255,255,.09); border-radius:50%; }
    .worker-task-detail-toolbar > div { position:relative; z-index:1; }
    .worker-task-detail-toolbar > div:first-child span { color:rgba(255,255,255,.76); }
    .worker-task-detail-toolbar h2 { color:#fff; font-size:20px; }
    .worker-task-detail-toolbar > div:last-child { align-items:center; }
    .worker-task-detail-toolbar .status-badge { color:#0867db; border-color:rgba(255,255,255,.78); background:#fff; }
    .worker-task-detail-toolbar .button.secondary { color:#fff; border-color:rgba(255,255,255,.48); background:rgba(255,255,255,.13); }
    .worker-task-progress,
    .worker-task-detail-page > .worker-dashboard-card,
    .worker-task-info-grid .worker-dashboard-card { padding:14px; border:1px solid #e1e9f3; border-radius:13px; box-shadow:0 6px 18px rgba(36,75,132,.06); }
    .worker-task-progress .worker-card-heading { margin-bottom:13px; }
    .worker-card-heading h3 { font-size:15px; }
    .worker-progress-steps { margin-right:-14px; margin-left:-14px; padding:1px 14px 7px; overscroll-behavior-x:contain; scrollbar-width:none; }
    .worker-progress-steps::-webkit-scrollbar { display:none; }
    .worker-construction-summary { padding:15px; border:1px solid #c6ddfa; border-radius:13px; background:linear-gradient(135deg,#fff,#eff6ff); box-shadow:0 6px 18px rgba(36,75,132,.06); }
    .worker-construction-summary h3 { font-size:17px; }
    .worker-construction-summary p { font-size:11px; }
    .worker-construction-summary-progress { grid-template-columns:auto 1fr; align-items:end; column-gap:8px; }
    .worker-construction-summary-progress .worker-construction-progress-bar { grid-column:1/-1; }
    .worker-construction-summary .button { min-height:42px; border-radius:8px; }
    .worker-task-info-grid { gap:10px; }
    .worker-task-detail-page .worker-profile-summary > div { grid-template-columns:76px minmax(0,1fr); padding:9px 0; }
    .worker-task-detail-page .worker-profile-summary dt,
    .worker-task-detail-page .worker-profile-summary dd { font-size:11px; }
    .worker-task-detail-page > .worker-dashboard-card .table-wrap { min-height:0; overflow:visible; }
    .worker-task-detail-page .worker-detail-products tr { padding:4px 0 8px; }
    .worker-task-detail-page .worker-detail-products td { grid-template-columns:70px minmax(0,1fr); padding:7px 0; }
    .worker-completion-card { gap:0; padding:0; overflow:hidden; border-radius:14px; box-shadow:0 7px 20px rgba(122,85,22,.08); scroll-margin-top:72px; }
    .worker-completion-card.is-ready { box-shadow:0 7px 20px rgba(31,137,84,.09); }
    .worker-completion-copy { padding:16px; }
    .worker-completion-copy h3 { font-size:18px; }
    .worker-completion-copy > p { font-size:11px; }
    .worker-completion-count { margin-top:12px; }
    .worker-missing-requirements { max-height:164px; overflow-y:auto; }
    .worker-completion-form { padding:15px 16px 16px; border:0; border-top:1px solid #e8edf3; border-radius:0; }
    .worker-completion-form textarea { min-height:105px; font-size:13px; }
    .worker-completion-form > .button { min-height:44px; }
    .dealer-construction-photo-grid { grid-template-columns:1fr; }
}

.worker-inline-action button:hover,
.worker-actions .more-menu form button:hover { color: var(--primary-dark); }

.worker-inline-action button.danger-link,
.worker-actions .more-menu form button.danger-link { color: var(--red); }

.worker-actions .more-menu form { margin: 0; }

.worker-actions .more-menu form button {
    width: 100%;
    padding: 8px 12px;
    text-align: left;
}

.worker-actions .more-menu form button:hover { background: #f1f8fc; }

.worker-status-tabs a.active {
    background: #0ea5e9;
    border-color: #0ea5e9;
}

.worker-business-filter {
    grid-template-columns: minmax(190px, 1fr) minmax(170px, 0.9fr) minmax(150px, 0.8fr) minmax(150px, 0.8fr) minmax(160px, 0.85fr) minmax(130px, 0.7fr) minmax(130px, 0.7fr) minmax(150px, 0.8fr) auto;
    align-items: end;
}

.worker-business-filter label {
    font-size: 12px;
}

.worker-business-filter input,
.worker-business-filter select {
    height: 34px;
    padding: 7px 9px;
}

.worker-business-table-wrap {
    height: 100%;
    min-height: 0;
    border-radius: 0;
}

.worker-business-table {
    min-width: 1580px;
}

.worker-business-table th {
    height: 42px;
    padding-top: 10px;
    padding-bottom: 10px;
}

.worker-business-table td {
    height: 88px;
    padding-top: 12px;
    padding-bottom: 12px;
}

.worker-info-cell {
    min-width: 210px;
}

.skill-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    min-width: 150px;
}

.skill-tags span {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    padding: 0 8px;
    border-radius: 999px;
    color: #075985;
    background: #e0f2fe;
    font-size: 12px;
}

.worker-actions .more-menu {
    width: 150px;
}

/* Worker management - unified report workspace */
.admin-workers-body .app-main { background:#f5f7fb; }
.admin-workers-body .page-body { padding:16px; }
.admin-workers-body .page-body>.card { padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
.worker-management-page {
    min-height:calc(100vh - 92px); grid-template-rows:auto auto auto auto minmax(0,1fr); gap:13px; color:#17233a;
}
.worker-report-head {
    min-height:68px; margin:0; padding:13px 16px; border:1px solid #e5ebf4; border-radius:14px;
    background:#fff; box-shadow:none;
}
.worker-report-head h1 { margin:0; color:#17233a; font-size:22px; }
.worker-report-head p { margin:5px 0 0; color:#7a879b; font-size:12px; }
.worker-report-head .toolbar-actions { gap:9px; }
.worker-report-head .button { height:39px; padding:0 16px; border-radius:9px; font-size:12px; box-shadow:none; }
.worker-report-head .button.secondary { border-color:#d8e3f5; color:#345173; background:#fff; }
.worker-report-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:13px; }
.worker-report-stats>a {
    min-height:111px; padding:12px 14px; display:block; overflow:hidden; position:relative;
    border:1px solid #e5ebf4; border-radius:13px; color:#17233a; background:#fff;
}
.worker-report-stats>a::after {
    content:""; width:112px; height:142px; position:absolute; right:-26px; top:8px;
    border-radius:48% 0 0 0; background:#edf3ff; transform:rotate(13deg);
}
.worker-report-stats>a.is-green::after { background:#e1f7ef; }
.worker-report-stats>a.is-yellow::after { background:#fff6dd; }
.worker-report-stats>a.is-violet::after { background:#f0edff; }
.worker-report-stats i {
    width:30px; height:30px; display:block; position:relative; z-index:1; border:1px solid #d7e5ff;
    border-radius:8px; color:#3474f3; background:#eef4ff;
}
.worker-report-stats i::before {
    content:""; position:absolute; left:7px; right:7px; bottom:6px; height:10px;
    border:1.5px solid currentColor; border-radius:8px 8px 2px 2px;
}
.worker-report-stats i::after {
    content:""; width:7px; height:7px; position:absolute; left:10px; top:5px;
    border:1.5px solid currentColor; border-radius:50%; background:inherit;
}
.worker-report-stats .is-green i { color:#20a878; border-color:#cceee2; background:#eaf9f3; }
.worker-report-stats .is-yellow i { color:#d79b29; border-color:#f2e1b8; background:#fff8e8; }
.worker-report-stats .is-violet i { color:#7567e8; border-color:#ded8ff; background:#f1efff; }
.worker-report-stats div { position:relative; z-index:1; }
.worker-report-stats small { display:block; margin:8px 0 5px; color:#39475d; font-size:12px; }
.worker-report-stats strong { display:block; color:#17233a; font-size:19px; line-height:1; }
.worker-report-stats em { display:block; margin-top:7px; color:#8b96a8; font-size:12px; font-style:normal; }
.worker-management-page>.worker-admin-topbar { display:block; }
.worker-management-page .worker-status-tabs {
    min-height:48px; padding:7px 10px; gap:6px; align-items:center; border-color:#e5ebf4;
    border-radius:12px; background:#fff;
}
.worker-management-page .worker-status-tabs a {
    min-height:30px; padding:0 11px; border-color:transparent; border-radius:7px;
    color:#5e6d82; background:#f6f8fb; font-size:12px; font-weight:600;
}
.worker-management-page .worker-status-tabs a:hover,
.worker-management-page .worker-status-tabs a.active {
    color:#1557b4; border-color:#c4daf6; background:#dfeeff;
}
.worker-management-page .worker-status-tabs span {
    min-width:18px; height:18px; color:#66809f; background:#fff; font-size:11px;
}
.worker-management-page>.worker-business-filter {
    margin:0; padding:11px 14px; display:grid; grid-template-columns:repeat(4,minmax(170px,1fr));
    gap:10px 14px; align-items:center; border:1px solid #e5ebf4; border-radius:14px; background:#fff;
}
.worker-management-page>.worker-business-filter>div { min-width:0; display:flex; align-items:center; gap:9px; }
.worker-management-page>.worker-business-filter label {
    flex:0 0 auto; margin:0; color:#435168; font-size:12px; font-weight:600; white-space:nowrap;
}
.worker-management-page>.worker-business-filter input,
.worker-management-page>.worker-business-filter select {
    min-width:0; width:100%; height:34px; padding:0 9px; border:1px solid #dbe4f0;
    border-radius:8px; color:#31405a; background:#fff; font-size:12px;
}
.worker-management-page>.worker-business-filter .filter-actions { justify-content:flex-end; }
.worker-management-page>.worker-business-filter .button { height:34px; padding:0 15px; border-radius:8px; font-size:12px; }
.worker-management-page>.worker-business-table-wrap {
    height:100%; min-height:300px; padding:0; overflow:hidden; align-self:stretch;
    border:1px solid #e5ebf4; border-radius:14px; background:#fff;
}
.worker-management-page .worker-table-scroll { min-height:280px; overflow:auto; }
.worker-management-page .worker-business-table {
    width:100%; min-width:1500px; border:0; border-collapse:separate; border-spacing:0;
}
.worker-management-page .worker-business-table th {
    height:48px; padding:0 12px; color:#53647d; background:#f5f8fc; border-bottom:1px solid #e5ebf4;
    font-size:12px; font-weight:600; text-align:center;
}
.worker-management-page .worker-business-table td {
    height:72px; padding:10px 12px; color:#25334a; border-bottom:1px solid #edf1f6;
    font-size:12px; text-align:center;
}
.worker-management-page .worker-business-table tbody tr:hover { background:#fafcff; }
.worker-management-page .worker-business-table th:first-child,
.worker-management-page .worker-business-table td:first-child { width:48px; min-width:48px; max-width:48px; padding-left:16px; padding-right:8px; }
.worker-management-page .worker-business-table th:nth-child(2),
.worker-management-page .worker-business-table td:nth-child(2) { width:100px; min-width:100px; }
.worker-management-page .worker-business-table th:nth-child(3),
.worker-management-page .worker-business-table td:nth-child(3) { width:100px; min-width:100px; }
.worker-management-page .worker-business-table th:nth-child(4),
.worker-management-page .worker-business-table td:nth-child(4) { width:130px; min-width:130px; }
.worker-management-page .worker-business-table th:nth-child(5),
.worker-management-page .worker-business-table td:nth-child(5) { width:160px; min-width:160px; }
.worker-management-page .worker-business-table th:nth-child(6),
.worker-management-page .worker-business-table td:nth-child(6) { width:140px; min-width:140px; }
.worker-management-page .worker-business-table th:nth-child(11),
.worker-management-page .worker-business-table td:nth-child(11) { width:190px; min-width:190px; }
.worker-management-page .worker-business-table th:nth-child(12),
.worker-management-page .worker-business-table td:nth-child(12) { width:180px; min-width:180px; }
.worker-management-page .worker-check-column input { width:15px; height:15px; accent-color:#3474f3; cursor:pointer; }
.worker-management-page .worker-name-value { color:#1e2c43; font-size:12px; font-weight:700; }
.worker-management-page .worker-phone-value,
.worker-management-page .worker-dealer-value,
.worker-management-page .worker-region-value { color:#40506a; white-space:nowrap; }
.worker-management-page .worker-count-value { color:#17233d; font-size:14px; font-weight:700; }
.worker-management-page .worker-state-text { font-size:12px; font-weight:600; }
.worker-management-page .worker-state-text.normal { color:#18a05e; }
.worker-management-page .worker-state-text.abnormal { color:#e54f4f; }
.worker-management-page .worker-state-text.paused { color:#7d8796; }
.worker-management-page .worker-state-text.pending { color:#e29416; }
.worker-management-page .skill-tags { min-width:120px; gap:4px; justify-content:center; }
.worker-management-page .skill-tags span { min-height:22px; padding:0 8px; font-size:12px; }
.worker-management-page .status-badge { padding:3px 7px; font-size:12px; }
.worker-management-page .worker-actions { white-space:nowrap; }
.worker-management-page .worker-actions>a,
.worker-management-page .worker-actions button { font-size:12px; }
.worker-management-page .worker-table-footer { border-top:1px solid #e5ebf4; }
.worker-management-page .worker-table-footer,
.worker-management-page .worker-table-footer>div,
.worker-management-page .worker-table-footer .dealer-pagination a { font-size:12px; }
.worker-management-page .empty-cell { height:150px; color:#8b96a8; }
@media (max-width:1200px) {
    .worker-management-page>.worker-business-filter { grid-template-columns:repeat(2,minmax(220px,1fr)); }
}
@media (max-width:760px) {
    .admin-workers-body .page-body { padding:10px; }
    .worker-management-page { min-height:auto; }
    .worker-report-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .worker-report-head { align-items:flex-start; flex-direction:column; gap:12px; }
    .worker-management-page>.worker-business-filter { grid-template-columns:1fr; }
}

.terminal-management-page {
    display: grid;
    min-height: calc(100vh - 136px);
    grid-template-rows: auto auto minmax(0, 1fr);
    gap: 14px;
}

.terminal-status-tabs a.active {
    background: #16a34a;
    border-color: #16a34a;
}

.terminal-business-filter {
    grid-template-columns: minmax(220px, 1.2fr) minmax(180px, 0.9fr) minmax(140px, 0.7fr) minmax(150px, 0.75fr) minmax(140px, 0.7fr) minmax(150px, 0.75fr) auto;
    align-items: end;
}

.terminal-business-filter label {
    font-size: 12px;
}

.terminal-business-filter input,
.terminal-business-filter select {
    height: 34px;
    padding: 7px 9px;
}

.terminal-business-table-wrap {
    height: 100%;
    min-height: 0;
    border-radius: 0;
}

.terminal-business-table {
    min-width: 1420px;
}

.terminal-business-table th {
    height: 42px;
    padding-top: 10px;
    padding-bottom: 10px;
}

.terminal-business-table td {
    height: 84px;
    padding-top: 12px;
    padding-bottom: 12px;
}

.terminal-info-cell {
    min-width: 220px;
}

.terminal-actions .more-menu {
    width: 146px;
}

/* Terminal users: align with the dealer management workspace. */
.terminal-management-page {
    min-height:calc(100vh - 92px);
    grid-template-rows:auto auto auto auto minmax(0,1fr);
    gap:13px;
    color:#17233a;
}
.terminal-management-page>.terminal-report-head {
    min-height:68px; margin:0; padding:13px 16px; border:1px solid #e5ebf4;
    border-radius:14px; background:#fff; box-shadow:none;
}
.terminal-management-page>.terminal-report-head h1 { margin:0; color:#17233a; font-size:22px; }
.terminal-management-page>.terminal-report-stats { gap:13px; }
.terminal-management-page>.terminal-status-tabs {
    min-height:44px; padding:6px 10px; gap:6px; align-items:center;
    border-color:#e5ebf4; border-radius:12px; background:#fff;
}
.terminal-management-page>.terminal-status-tabs a {
    min-height:30px; padding:0 11px; border-color:transparent; border-radius:7px;
    color:#5e6d82; background:#f6f8fb; font-size:12.5px; font-weight:600;
}
.terminal-management-page>.terminal-status-tabs a:hover,
.terminal-management-page>.terminal-status-tabs a.active {
    color:#1557b4; border-color:#c4daf6; background:#dfeeff;
}
.terminal-management-page>.terminal-status-tabs span {
    min-width:19px; height:19px; color:#66809f; background:#fff; font-size:10.5px;
}
.terminal-management-page>.terminal-business-filter {
    margin:0; padding:11px 14px; display:grid;
    grid-template-columns:repeat(4,minmax(170px,1fr)); gap:10px 14px;
    align-items:center; border:1px solid #e5ebf4; border-radius:14px; background:#fff;
}
.terminal-management-page>.terminal-business-filter>div {
    min-width:0; display:flex; align-items:center; gap:9px;
}
.terminal-management-page>.terminal-business-filter label {
    flex:0 0 auto; margin:0; color:#435168; font-size:12.5px; font-weight:600; white-space:nowrap;
}
.terminal-management-page>.terminal-business-filter input,
.terminal-management-page>.terminal-business-filter select {
    min-width:0; width:100%; height:38px; padding:0 10px; border:1px solid #dbe4f0;
    border-radius:8px; color:#31405a; background:#fff; font-size:12.5px;
}
.terminal-management-page>.terminal-business-filter .filter-actions { justify-content:flex-end; }
.terminal-management-page>.terminal-business-filter .button {
    height:38px; padding:0 16px; border-radius:8px; font-size:12.5px;
}
.terminal-management-page>.terminal-business-table-wrap {
    height:100%; min-height:300px; padding:0; overflow:hidden; align-self:stretch;
    display:flex; flex-direction:column;
    border:1px solid #e5ebf4; border-radius:14px; background:#fff;
}
.terminal-table-scroll { flex:1; min-height:0; padding:11px; overflow:auto; }
.terminal-management-page .terminal-business-table {
    width:100%; min-width:1450px; table-layout:fixed;
    border:1px solid #e5ebf4; border-collapse:separate; border-spacing:0;
}
.terminal-management-page .terminal-business-table th {
    height:46px; padding:0 12px; color:#64748b; background:#f5f8fc;
    border-bottom:1px solid #e5ebf4; font-size:12.5px; font-weight:600; text-align:center;
}
.terminal-management-page .terminal-business-table td {
    height:76px; padding:10px 12px; color:#25334a; border-bottom:1px solid #edf1f6;
    font-size:12.5px; text-align:center;
}
.terminal-management-page .terminal-business-table tbody tr:hover { background:#fafcff; }
.terminal-management-page .terminal-business-table th:nth-child(1),
.terminal-management-page .terminal-business-table td:nth-child(1) { width:44px; padding-right:6px; padding-left:6px; }
.terminal-management-page .terminal-business-table th:nth-child(2),
.terminal-management-page .terminal-business-table td:nth-child(2) { width:100px; }
.terminal-management-page .terminal-business-table th:nth-child(3),
.terminal-management-page .terminal-business-table td:nth-child(3) { width:110px; }
.terminal-management-page .terminal-business-table th:nth-child(4),
.terminal-management-page .terminal-business-table td:nth-child(4) { width:130px; }
.terminal-management-page .terminal-business-table th:nth-child(5),
.terminal-management-page .terminal-business-table td:nth-child(5) { width:210px; }
.terminal-management-page .terminal-business-table th:nth-child(6),
.terminal-management-page .terminal-business-table td:nth-child(6) { width:100px; }
.terminal-management-page .terminal-business-table th:nth-child(7),
.terminal-management-page .terminal-business-table td:nth-child(7) { width:135px; }
.terminal-management-page .terminal-business-table th:nth-child(8),
.terminal-management-page .terminal-business-table td:nth-child(8) { width:110px; }
.terminal-management-page .terminal-business-table th:nth-child(9),
.terminal-management-page .terminal-business-table td:nth-child(9) { width:90px; }
.terminal-management-page .terminal-business-table th:nth-child(10),
.terminal-management-page .terminal-business-table td:nth-child(10) { width:190px; }
.terminal-management-page .terminal-business-table th:nth-child(11),
.terminal-management-page .terminal-business-table td:nth-child(11) { width:150px; }
.terminal-check-column input { width:16px; height:16px; margin:0; accent-color:#3474f3; cursor:pointer; }
.terminal-name-value { color:#2c3a50; font-size:12.5px; font-weight:700; white-space:nowrap; }
.terminal-phone-value { color:#52647d; font-variant-numeric:tabular-nums; white-space:nowrap; }
.terminal-region-value {
    max-width:186px; display:inline-block; overflow:hidden; color:#34435a;
    text-overflow:ellipsis; white-space:nowrap; vertical-align:middle;
}
.terminal-count-value { color:#17233d; font-size:14px; font-weight:700; }
.terminal-source-value { color:#52647d; white-space:nowrap; }
.terminal-wechat-value,.terminal-state-text { font-weight:700; white-space:nowrap; }
.terminal-wechat-value.bound,.terminal-state-text.normal { color:#16845e; }
.terminal-wechat-value.unbound,.terminal-state-text.paused { color:#8a94a3; }
.terminal-management-page .terminal-actions { gap:8px; white-space:nowrap; }
.terminal-management-page .terminal-actions>a,
.terminal-management-page .terminal-actions button { font-size:12px; }
.terminal-table-footer { border-top:1px solid #e5ebf4; }

/* Terminal management: shared sizing and rhythm with dealer management. */
.admin-terminals-body .app-main { min-width:0; background:#f5f7fb; }
.admin-terminals-body .page-body { min-height:calc(100vh - 60px); padding:16px; box-sizing:border-box; }
.admin-terminals-body .page-body>.card { min-height:100%; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
.admin-terminals-body .terminal-management-page {
    min-height:calc(100vh - 92px); grid-template-rows:auto auto auto auto minmax(320px,1fr); gap:13px;
}
.admin-terminals-body .terminal-report-head { min-height:68px; padding:13px 16px; }
.admin-terminals-body .terminal-report-head h1 { font-size:22px; line-height:1.3; }
.admin-terminals-body .terminal-report-stats a { min-height:128px; }
.admin-terminals-body .terminal-report-stats small { font-size:14px; }
.admin-terminals-body .terminal-report-stats strong { font-size:24px; }
.admin-terminals-body .terminal-report-stats em { font-size:12.5px; }
.admin-terminals-body .terminal-status-tabs { font-size:14px; }
.admin-terminals-body .terminal-status-tabs a { min-height:32px; padding:0 13px; font-size:14px; }
.admin-terminals-body .terminal-business-filter {
    grid-template-columns:minmax(230px,1.35fr) minmax(180px,1fr) minmax(135px,.72fr) minmax(150px,.82fr) minmax(145px,.78fr) minmax(150px,.82fr) auto;
    gap:12px; padding:12px 14px;
}
.admin-terminals-body .terminal-business-filter label,
.admin-terminals-body .terminal-business-filter input,
.admin-terminals-body .terminal-business-filter select,
.admin-terminals-body .terminal-business-filter .button { font-size:14px; }
.admin-terminals-body .terminal-business-filter input,
.admin-terminals-body .terminal-business-filter select,
.admin-terminals-body .terminal-business-filter .button { height:40px; }
.admin-terminals-body .terminal-business-table-wrap { min-height:320px; height:100%; }
.admin-terminals-body .terminal-table-scroll { padding:10px; }
.admin-terminals-body .terminal-business-table { min-width:1320px; }
.admin-terminals-body .terminal-business-table th { height:48px; padding:0 10px; font-size:14px; }
.admin-terminals-body .terminal-business-table td { height:68px; padding:9px 10px; font-size:14px; }
.admin-terminals-body .terminal-business-table th:nth-child(2),
.admin-terminals-body .terminal-business-table td:nth-child(2) { width:96px; }
.admin-terminals-body .terminal-business-table th:nth-child(3),
.admin-terminals-body .terminal-business-table td:nth-child(3) { width:105px; }
.admin-terminals-body .terminal-business-table th:nth-child(4),
.admin-terminals-body .terminal-business-table td:nth-child(4) { width:125px; }
.admin-terminals-body .terminal-business-table th:nth-child(5),
.admin-terminals-body .terminal-business-table td:nth-child(5) { width:185px; }
.admin-terminals-body .terminal-business-table th:nth-child(6),
.admin-terminals-body .terminal-business-table td:nth-child(6) { width:86px; }
.admin-terminals-body .terminal-business-table th:nth-child(7),
.admin-terminals-body .terminal-business-table td:nth-child(7) { width:125px; }
.admin-terminals-body .terminal-business-table th:nth-child(8),
.admin-terminals-body .terminal-business-table td:nth-child(8) { width:100px; }
.admin-terminals-body .terminal-business-table th:nth-child(9),
.admin-terminals-body .terminal-business-table td:nth-child(9) { width:76px; }
.admin-terminals-body .terminal-business-table th:nth-child(10),
.admin-terminals-body .terminal-business-table td:nth-child(10) { width:175px; white-space:nowrap; }
.admin-terminals-body .terminal-business-table th:nth-child(11),
.admin-terminals-body .terminal-business-table td:nth-child(11) { width:138px; }
.admin-terminals-body .terminal-name-value,
.admin-terminals-body .terminal-count-value { font-size:14px; }
.admin-terminals-body .terminal-actions>a,
.admin-terminals-body .terminal-actions button { font-size:13.5px; }
.admin-terminals-body .terminal-table-footer { min-height:48px; padding:7px 12px; flex:0 0 auto; font-size:13px; }
@media (max-width:1500px) {
    .admin-terminals-body .terminal-business-filter { grid-template-columns:repeat(4,minmax(180px,1fr)); }
}

.worker-detail-page {
    display: grid;
    gap: 14px;
}

.detail-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: #f8fafc;
}

.detail-grid {
    margin: 0;
}

.detail-grid .item {
    min-height: 150px;
}

.member-table-wrap {
    border-radius: 0;
}

.member-table {
    min-width: 1060px;
}

.member-table td {
    height: 64px;
    padding-top: 10px;
    padding-bottom: 10px;
}

.member-table th {
    height: 40px;
    padding-top: 9px;
    padding-bottom: 9px;
}

.check-col {
    width: 42px;
    text-align: center !important;
}

.check-col input {
    width: auto;
    margin: 0;
}

.table-avatar {
    width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: #fff;
    background: linear-gradient(135deg, #f59e0b, #ff7a18);
    font-weight: 800;
    box-shadow: 0 6px 14px rgba(249, 115, 22, 0.18);
}

.name-stack {
    display: grid;
    gap: 4px;
}

.name-stack strong {
    color: #111827;
    font-size: 14px;
}

.name-stack > span {
    color: #334155;
}

.bind-badges {
    display: flex;
    gap: 6px;
    align-items: center;
}

.bind-badges em {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 999px;
    color: #fff;
    background: #ff7a18;
    font-size: 12px;
    font-style: normal;
    line-height: 1;
}

.bind-badges em:nth-child(2) {
    background: #22c55e;
}

.source-badge {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    padding: 0 9px;
    border-radius: 999px;
    color: #2563eb;
    background: #eef2ff;
    font-size: 12px;
    white-space: nowrap;
}

.table-actions {
    white-space: nowrap;
}

.table-actions a {
    margin-right: 10px;
    color: #0b65c2;
}

.empty-cell {
    height: 90px;
    color: var(--muted);
    text-align: center !important;
}

.filter-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 10px;
}

.small-title {
    color: #475569;
    font-size: 13px;
    margin-bottom: 6px;
    font-weight: 600;
}

.alert {
    border-radius: var(--radius);
    padding: 11px 14px;
    border: 1px solid #f8d083;
    background: #fff7e6;
    color: #7c4a03;
    margin-bottom: 14px;
}

.form-row {
    margin-bottom: 14px;
}

label {
    display: block;
    margin-bottom: 6px;
    color: #374151;
    font-weight: 600;
    font-size: 13px;
}

input,
select,
textarea {
    width: 100%;
    border: 1px solid #d6dbe3;
    background: #fff;
    color: var(--text);
    padding: 10px 11px;
    border-radius: 4px;
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
    font-size: 14px;
}

input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(22, 136, 196, 0.12);
}

.button {
    appearance: none;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    min-height: 34px;
    border: 1px solid transparent;
    background: var(--primary);
    color: #fff;
    padding: 8px 16px;
    border-radius: 4px;
    cursor: pointer;
    text-decoration: none;
    font-weight: 600;
    font-size: 14px;
    line-height: 1;
}

.button:hover {
    color: #fff;
    background: var(--primary-dark);
}

.button.secondary {
    color: #374151;
    background: #fff;
    border-color: #cfd6df;
}

.button.secondary:hover {
    color: #111827;
    background: #f3f4f6;
}

.button.danger {
    background: var(--red);
}

.button.danger:hover {
    background: #b91c1c;
}

.status-badge {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    padding: 2px 9px;
    border-radius: 999px;
    font-size: 12px;
    color: #334155;
    border: 1px solid #d6dbe3;
    background: #f8fafc;
    white-space: nowrap;
}

.status-badge.warning {
    color: #92400e;
    border-color: #f5c667;
    background: #fff7e6;
}

.status-badge.primary {
    color: #075985;
    border-color: #bae6fd;
    background: #e0f2fe;
}

.status-badge.info {
    color: #1d4ed8;
    border-color: #c7d2fe;
    background: #eef2ff;
}

.status-badge.processing {
    color: #6d28d9;
    border-color: #ddd6fe;
    background: #f5f3ff;
}

.status-badge.success {
    color: #166534;
    border-color: #bbf7d0;
    background: #ecfdf3;
}

.status-badge.dark {
    color: #334155;
    border-color: #cbd5e1;
    background: #f1f5f9;
}

.status-badge.danger {
    color: #b91c1c;
    border-color: #fecaca;
    background: #fef2f2;
}

.settings-wrap {
    display: grid;
    gap: 14px;
}

.setting-panel,
.settings-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 16px;
}

.setting-panel h2 {
    margin-top: 0;
}

.settings-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 10px;
    background: #f7f8fa;
    border: 1px solid var(--line);
    border-radius: var(--radius);
}

.settings-tabs a {
    color: #374151;
    border: 1px solid #d6dbe3;
    background: #fff;
    padding: 7px 11px;
    border-radius: 4px;
    font-size: 13px;
    font-weight: 600;
}

.settings-tabs a.active,
.settings-tabs a:hover {
    color: #fff;
    background: var(--primary);
    border-color: var(--primary);
}

.grid-2 {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.category-management-page {
    display: grid;
    min-height: calc(100vh - 136px);
    grid-template-rows: auto auto auto minmax(0, 1fr);
    gap: 14px;
}

.category-modal-toggle {
    position: fixed;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.category-modal {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 50;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.category-modal-toggle:checked + .category-modal {
    display: flex;
}

.category-modal-backdrop {
    position: absolute;
    inset: 0;
    margin: 0;
    background: rgba(15, 23, 42, 0.44);
    cursor: pointer;
}

.category-modal-dialog {
    position: relative;
    z-index: 1;
    width: min(680px, 100%);
    max-height: calc(100vh - 48px);
    overflow-y: auto;
    padding: 22px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: #fff;
    box-shadow: 0 24px 70px rgba(15, 23, 42, 0.22);
}

.category-modal-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
}

.category-modal-header span {
    color: var(--primary-dark);
    font-size: 13px;
    font-weight: 700;
}

.category-modal-header h2 {
    margin: 5px 0 0;
    color: #111827;
    font-size: 20px;
}

.category-modal-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    margin: 0;
    border-radius: 50%;
    color: #64748b;
    background: #f1f5f9;
    cursor: pointer;
    font-size: 22px;
    line-height: 1;
}

.category-modal-close:hover {
    color: #111827;
    background: #e2e8f0;
}

.category-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 14px;
}

.category-form-grid .form-row {
    min-width: 0;
}

.category-modal-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding-top: 8px;
    border-top: 1px solid var(--line);
}

.category-modal-actions .button {
    min-width: 96px;
}

.category-detail-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 18px;
}

.category-detail-grid > div {
    display: grid;
    gap: 5px;
    min-height: 58px;
    padding: 10px 12px;
    border: 1px solid var(--line);
    background: #f8fafc;
}

.category-detail-grid span {
    color: var(--muted);
    font-size: 12px;
}

.category-detail-grid strong {
    color: #111827;
    font-size: 14px;
}

.danger-alert {
    border-color: #fecaca;
    color: #991b1b;
    background: #fef2f2;
}

.category-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
}

.category-toolbar h1 {
    margin: 0 0 6px;
    color: #111827;
    font-size: 22px;
}

.category-toolbar p {
    margin: 0;
    color: var(--muted);
}

.category-filter-bar {
    display: grid;
    grid-template-columns: minmax(280px, 1.4fr) minmax(190px, 0.9fr) minmax(160px, 0.75fr) auto;
    gap: 12px;
    align-items: end;
    padding: 14px 16px;
    border: 1px solid var(--line);
    background: #f8fafc;
}

.category-filter-field {
    min-width: 0;
}

.category-filter-field label {
    margin-bottom: 6px;
}

.category-filter-field input,
.category-filter-field select {
    height: 36px;
    padding: 7px 10px;
}

.category-filter-actions {
    display: flex;
    gap: 8px;
    align-items: center;
}

.category-list-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.category-list-header div {
    display: flex;
    align-items: baseline;
    gap: 10px;
}

.category-list-header strong {
    font-size: 16px;
}

.category-list-header span {
    color: var(--muted);
    font-size: 13px;
}

.category-table-wrap {
    height: 100%;
    min-height: 0;
    border-radius: var(--radius);
}

.category-table {
    min-width: 1480px;
}

.category-table th,
.category-table td {
    height: 64px;
    padding: 10px 12px;
    white-space: nowrap;
}

/* Product categories - unified report workspace */
.admin-categories-body .app-main { background:#f5f7fb; }
.admin-categories-body .page-body { padding:16px; }
.admin-categories-body .page-body>.card { padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
.admin-categories-body .category-management-page {
    min-height:calc(100vh - 92px); grid-template-rows:auto auto auto minmax(0,1fr); gap:13px; color:#17233a;
}
.admin-categories-body .category-toolbar {
    min-height:68px; margin:0; padding:13px 16px; border:1px solid #e5ebf4; border-radius:14px;
    background:#fff; box-shadow:none;
}
.admin-categories-body .category-toolbar h1 { margin:0; color:#17233a; font-size:18px; }
.admin-categories-body .category-toolbar p { margin:5px 0 0; color:#7a879b; font-size:11px; }
.admin-categories-body .category-toolbar .toolbar-actions { display:flex; gap:9px; }
.admin-categories-body .category-toolbar .button {
    width:auto; height:39px; padding:0 16px; border-radius:9px; font-size:11px; box-shadow:none;
}
.admin-categories-body .category-toolbar .button.secondary {
    border-color:#d8e3f5; color:#345173; background:#fff;
}
.category-report-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:13px; }
.category-report-stats article {
    min-height:111px; padding:12px 14px; display:block; overflow:hidden; position:relative;
    border:1px solid #e5ebf4; border-radius:13px; background:#fff;
}
.category-report-stats article::after {
    content:""; width:112px; height:142px; position:absolute; right:-26px; top:8px;
    border-radius:48% 0 0 0; background:#edf3ff; transform:rotate(13deg);
}
.category-report-stats .is-green::after { background:#e1f7ef; }
.category-report-stats .is-yellow::after { background:#fff6dd; }
.category-report-stats .is-violet::after { background:#f0edff; }
.category-report-stats i {
    width:30px; height:30px; display:block; position:relative; z-index:1; border:1px solid #d7e5ff;
    border-radius:8px; color:#3474f3; background:#eef4ff;
}
.category-report-stats i::before {
    content:""; position:absolute; inset:7px 6px; border:1.5px solid currentColor; border-radius:2px;
}
.category-report-stats i::after {
    content:""; width:8px; height:1.5px; position:absolute; left:11px; top:11px;
    background:currentColor; box-shadow:0 4px currentColor,0 8px currentColor;
}
.category-report-stats .is-green i { color:#20a878; border-color:#cceee2; background:#eaf9f3; }
.category-report-stats .is-yellow i { color:#d79b29; border-color:#f2e1b8; background:#fff8e8; }
.category-report-stats .is-violet i { color:#7567e8; border-color:#ded8ff; background:#f1efff; }
.category-report-stats div { position:relative; z-index:1; }
.category-report-stats small { display:block; margin:8px 0 5px; color:#39475d; font-size:11px; }
.category-report-stats strong { display:block; color:#17233a; font-size:19px; line-height:1; }
.category-report-stats em { display:block; margin-top:7px; color:#8b96a8; font-size:9.5px; font-style:normal; }
.admin-categories-body .category-report-filter {
    margin:0; padding:11px 14px; display:grid;
    grid-template-columns:minmax(260px,1.4fr) minmax(190px,.9fr) minmax(160px,.75fr) auto;
    gap:12px; align-items:center; border:1px solid #e5ebf4; border-radius:14px; background:#fff;
}
.admin-categories-body .category-report-filter>div { min-width:0; display:flex; align-items:center; gap:9px; }
.admin-categories-body .category-report-filter label {
    flex:0 0 auto; margin:0; color:#435168; font-size:10.5px; font-weight:600; white-space:nowrap;
}
.admin-categories-body .category-report-filter input,
.admin-categories-body .category-report-filter select {
    min-width:0; width:100%; height:34px; padding:0 9px; border:1px solid #dbe4f0;
    border-radius:8px; color:#31405a; background:#fff; font-size:10.5px;
}
.admin-categories-body .category-report-filter .filter-actions { justify-content:flex-end; }
.admin-categories-body .category-report-filter .button {
    width:auto; height:34px; padding:0 15px; border-radius:8px; font-size:10.5px;
}
.admin-categories-body .category-report-table-wrap {
    height:100%; min-height:300px; padding:11px; overflow:auto; align-self:stretch;
    border:1px solid #e5ebf4; border-radius:14px; background:#fff;
}
.admin-categories-body .category-report-table {
    min-width:1120px; border:1px solid #e5ebf4; border-collapse:separate; border-spacing:0;
}
.admin-categories-body .category-report-table th {
    height:42px; padding:0 11px; color:#64748b; background:#f5f8fc; border-bottom:1px solid #e5ebf4;
    font-size:10.5px; font-weight:600; text-align:center;
}
.admin-categories-body .category-report-table td {
    height:58px; padding:9px 11px; color:#25334a; border-bottom:1px solid #edf1f6;
    font-size:10.5px; text-align:center;
}
.admin-categories-body .category-report-table tbody tr:hover { background:#fafcff; }
.admin-categories-body .category-report-table th:first-child,
.admin-categories-body .category-report-table td:first-child { width:170px; text-align:left; }
.admin-categories-body .category-report-table code {
    padding:4px 7px; border:1px solid #d7e4ff; border-radius:5px; color:#3971e9;
    background:#edf3ff; font-size:9.5px;
}
.admin-categories-body .category-report-table .status-badge { padding:3px 8px; font-size:9px; }
.admin-categories-body .category-report-table .table-actions { white-space:nowrap; }
.admin-categories-body .category-report-table .table-actions a { margin:0 4px; font-size:9.5px; }
.admin-categories-body .category-report-table .empty-cell { height:150px; color:#8b96a8; text-align:center; }
.admin-categories-body .category-modal-dialog {
    width:min(760px,100%); padding:0; overflow:hidden; border-color:#dfe7f2; border-radius:16px;
}
.admin-categories-body .category-modal-header {
    margin:0; padding:20px 24px 17px; border-bottom:1px solid #e7edf5; background:#f8faff;
}
.admin-categories-body .category-modal-header span { color:#3474f3; font-size:10px; letter-spacing:.12em; }
.admin-categories-body .category-modal-header h2 { margin-top:5px; color:#17233a; font-size:18px; }
.admin-categories-body .category-modal-dialog>form,
.admin-categories-body .category-modal-dialog>.category-detail-grid,
.admin-categories-body .category-modal-dialog>.product-action-note { margin:0; padding:20px 24px; }
.admin-categories-body .category-modal-actions { padding:14px 24px; border-top:1px solid #e7edf5; background:#f8faff; }
@media (max-width:980px) {
    .admin-categories-body .category-report-filter { grid-template-columns:repeat(2,minmax(220px,1fr)); }
    .admin-categories-body .category-report-filter .filter-actions { grid-column:1/-1; }
}
@media (max-width:760px) {
    .admin-categories-body .page-body { padding:10px; }
    .admin-categories-body .category-management-page { min-height:auto; }
    .category-report-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .admin-categories-body .category-toolbar { align-items:flex-start; flex-direction:column; gap:12px; }
    .admin-categories-body .category-report-filter { grid-template-columns:1fr; }
    .admin-categories-body .category-report-filter .filter-actions { grid-column:auto; }
}

.category-name-cell {
    display: inline-flex;
    align-items: center;
    gap: 9px;
}

.category-color-mark {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--primary);
    box-shadow: 0 0 0 4px #e0f2fe;
}

.category-actions {
    min-width: 184px;
}

.category-actions .more-actions > button {
    margin-right: 0;
}

.category-actions .more-actions > summary {
    display: inline-block;
    margin-right: 0;
    color: #0b65c2;
    cursor: pointer;
    list-style: none;
}

.category-actions .more-actions > summary::-webkit-details-marker {
    display: none;
}

.category-actions .more-actions[open] .more-menu {
    display: grid;
}

.category-delete-message {
    margin: 0 0 12px;
    color: #475569;
    line-height: 1.7;
}

.category-delete-warning {
    margin: 0 0 20px;
    padding: 10px 12px;
    color: #b42318;
    background: #fff1f0;
    border: 1px solid #fecaca;
    border-radius: 6px;
    line-height: 1.6;
}

.category-delete-dialog .category-modal-actions {
    margin-top: 0;
}

.product-management-page {
    display: grid;
    min-height: calc(100vh - 136px);
    grid-template-rows: auto auto auto auto minmax(0, 1fr);
    gap: 14px;
}

.product-toolbar,
.product-list-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.product-toolbar h1 {
    margin: 0 0 6px;
    color: #111827;
    font-size: 22px;
}

.product-toolbar p,
.product-list-header span {
    margin: 0;
    color: var(--muted);
}

.product-status-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 10px;
    border: 1px solid var(--line);
    background: #f8fafc;
}

.product-status-tabs a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 32px;
    padding: 0 12px;
    border: 1px solid #dbe3ee;
    border-radius: 999px;
    color: #334155;
    background: #fff;
    font-weight: 600;
}

.product-status-tabs a.active,
.product-status-tabs a:hover {
    color: #fff;
    background: var(--primary);
    border-color: var(--primary);
}

.product-status-tabs span {
    min-width: 18px;
    height: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    color: #2563eb;
    background: #eef2ff;
    font-size: 12px;
}

.product-status-tabs a.active span,
.product-status-tabs a:hover span {
    color: var(--primary-dark);
    background: #fff;
}

.product-business-filter {
    grid-template-columns: repeat(4, minmax(190px, 1fr));
    align-items: end;
}

.product-business-filter label {
    font-size: 12px;
}

.product-business-filter input,
.product-business-filter select {
    height: 34px;
    padding: 7px 9px;
}

.product-list-header strong {
    font-size: 16px;
}

.product-business-table-wrap {
    height: 100%;
    min-height: 0;
    border-radius: 0;
}

.product-business-table {
    min-width: 1840px;
}

.product-business-table th {
    height: 42px;
    padding-top: 10px;
    padding-bottom: 10px;
}

.product-business-table td {
    height: 88px;
    padding-top: 12px;
    padding-bottom: 12px;
}

.product-info-cell {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 240px;
}

.product-color-mark {
    width: 10px;
    height: 10px;
    flex: 0 0 auto;
    border-radius: 50%;
    background: #f97316;
    box-shadow: 0 0 0 5px #ffedd5;
}

.product-info-cell code {
    width: max-content;
    color: #64748b;
    background: transparent;
    border: 0;
    padding: 0;
    font-size: 12px;
}

.product-config-cell {
    display: grid;
    gap: 5px;
    min-width: 130px;
}

.product-config-cell strong {
    color: #334155;
    font-size: 13px;
}

.config-state {
    width: max-content;
    display: inline-flex;
    align-items: center;
    min-height: 21px;
    padding: 0 7px;
    border-radius: 999px;
    font-size: 12px;
}

.config-state.ready {
    color: #166534;
    background: #ecfdf3;
}

.config-state.pending {
    color: #92400e;
    background: #fff7e6;
}

.product-actions {
    min-width: 184px;
}

.product-actions .more-actions > button {
    margin-right: 0;
}

.product-actions .more-actions > summary {
    display: inline-block;
    margin-right: 0;
    color: #0b65c2;
    cursor: pointer;
    list-style: none;
}

.product-actions .more-actions > summary::-webkit-details-marker {
    display: none;
}

.product-actions .more-actions[open] .more-menu {
    display: grid;
}

.product-action-note {
    margin: 0 0 20px;
    color: #475569;
    line-height: 1.7;
}

.product-info-panel {
    display: grid;
    gap: 8px;
    padding: 14px;
    border: 1px solid var(--line);
    background: #f8fafc;
    color: #475569;
    line-height: 1.7;
}

.product-info-panel p,
.product-info-panel strong {
    margin: 0;
}

/* Product management - unified report workspace */
.admin-products-body .app-main { background:#f5f7fb; }
.admin-products-body .page-body { padding:16px; }
.admin-products-body .page-body>.card { padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
.admin-products-body .product-management-page {
    min-height:calc(100vh - 92px); grid-template-rows:auto auto auto auto auto minmax(0,1fr);
    gap:13px; color:#17233a;
}
.admin-products-body .product-toolbar {
    min-height:68px; margin:0; padding:13px 16px; border:1px solid #e5ebf4; border-radius:14px;
    background:#fff; box-shadow:none;
}
.admin-products-body .product-toolbar h1 { margin:0; color:#17233a; font-size:18px; }
.admin-products-body .product-toolbar p { margin:5px 0 0; color:#7a879b; font-size:11px; }
.admin-products-body .product-toolbar .toolbar-actions { display:flex; gap:9px; }
.admin-products-body .product-toolbar .button {
    width:auto; height:39px; padding:0 16px; border-radius:9px; font-size:11px; box-shadow:none;
}
.admin-products-body .product-toolbar .button.secondary {
    border-color:#d8e3f5; color:#345173; background:#fff;
}
.product-report-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:13px; }
.product-report-stats>a {
    min-height:111px; padding:12px 14px; display:block; overflow:hidden; position:relative;
    border:1px solid #e5ebf4; border-radius:13px; color:#17233a; background:#fff;
}
.product-report-stats>a::after {
    content:""; width:112px; height:142px; position:absolute; right:-26px; top:8px;
    border-radius:48% 0 0 0; background:#edf3ff; transform:rotate(13deg);
}
.product-report-stats .is-green::after { background:#e1f7ef; }
.product-report-stats .is-yellow::after { background:#fff6dd; }
.product-report-stats .is-violet::after { background:#f0edff; }
.product-report-stats i {
    width:30px; height:30px; display:block; position:relative; z-index:1; border:1px solid #d7e5ff;
    border-radius:8px; color:#3474f3; background:#eef4ff;
}
.product-report-stats i::before {
    content:""; position:absolute; left:6px; top:8px; width:16px; height:13px;
    border:1.5px solid currentColor; border-radius:2px;
}
.product-report-stats i::after {
    content:""; position:absolute; left:9px; top:5px; width:10px; height:5px;
    border:1.5px solid currentColor; border-radius:2px; background:inherit;
}
.product-report-stats .is-green i { color:#20a878; border-color:#cceee2; background:#eaf9f3; }
.product-report-stats .is-yellow i { color:#d79b29; border-color:#f2e1b8; background:#fff8e8; }
.product-report-stats .is-violet i { color:#7567e8; border-color:#ded8ff; background:#f1efff; }
.product-report-stats div { position:relative; z-index:1; }
.product-report-stats small { display:block; margin:8px 0 5px; color:#39475d; font-size:11px; }
.product-report-stats strong { display:block; color:#17233a; font-size:19px; line-height:1; }
.product-report-stats em { display:block; margin-top:7px; color:#8b96a8; font-size:9.5px; font-style:normal; }
.admin-products-body .product-status-tabs {
    min-height:48px; padding:7px 10px; gap:6px; align-items:center; border:1px solid #e5ebf4;
    border-radius:12px; background:#fff;
}
.admin-products-body .product-status-tabs a {
    min-height:30px; padding:0 11px; border-color:transparent; border-radius:7px;
    color:#5e6d82; background:#f6f8fb; font-size:10.5px; font-weight:600;
}
.admin-products-body .product-status-tabs a:hover,
.admin-products-body .product-status-tabs a.active {
    color:#1557b4; border-color:#c4daf6; background:#dfeeff;
}
.admin-products-body .product-status-tabs span {
    min-width:17px; height:17px; color:#66809f; background:#fff; font-size:9px;
}
.admin-products-body .product-business-filter {
    margin:0; padding:11px 14px; display:grid;
    grid-template-columns:minmax(280px,1.4fr) minmax(190px,.9fr) minmax(170px,.8fr) auto;
    gap:12px; align-items:center; border:1px solid #e5ebf4; border-radius:14px; background:#fff;
}
.admin-products-body .product-business-filter>div { min-width:0; display:flex; align-items:center; gap:9px; }
.admin-products-body .product-business-filter label {
    flex:0 0 auto; margin:0; color:#435168; font-size:10.5px; font-weight:600; white-space:nowrap;
}
.admin-products-body .product-business-filter input,
.admin-products-body .product-business-filter select {
    min-width:0; width:100%; height:34px; padding:0 9px; border:1px solid #dbe4f0;
    border-radius:8px; color:#31405a; background:#fff; font-size:10.5px;
}
.admin-products-body .product-business-filter .filter-actions { justify-content:flex-end; }
.admin-products-body .product-business-filter .button {
    width:auto; height:34px; padding:0 15px; border-radius:8px; font-size:10.5px;
}
.admin-products-body .product-list-header {
    min-height:40px; padding:0 14px; border:1px solid #e5ebf4; border-radius:10px; background:#fff;
}
.admin-products-body .product-list-header strong { color:#25334a; font-size:11px; }
.admin-products-body .product-list-header span { color:#8b96a8; font-size:9.5px; }
.admin-products-body .product-business-table-wrap {
    height:100%; min-height:300px; padding:11px; overflow:auto; align-self:stretch;
    border:1px solid #e5ebf4; border-radius:14px; background:#fff;
}
.admin-products-body .product-business-table {
    min-width:1080px; border:1px solid #e5ebf4; border-collapse:separate; border-spacing:0;
}
.admin-products-body .product-business-table th {
    height:42px; padding:0 12px; color:#64748b; background:#f5f8fc; border-bottom:1px solid #e5ebf4;
    font-size:10.5px; font-weight:600; text-align:center;
}
.admin-products-body .product-business-table td {
    height:66px; padding:9px 12px; color:#25334a; border-bottom:1px solid #edf1f6;
    font-size:10.5px; text-align:center;
}
.admin-products-body .product-business-table tbody tr:hover { background:#fafcff; }
.admin-products-body .product-business-table th:first-child,
.admin-products-body .product-business-table td:first-child { width:270px; text-align:left; }
.admin-products-body .product-info-cell { min-width:220px; gap:10px; }
.admin-products-body .product-color-mark {
    width:42px; height:42px; flex:0 0 42px; border:1px solid #dfe7f2; border-radius:8px;
    object-fit:cover; background:linear-gradient(145deg,#edf3ff,#dfeaff); box-shadow:none;
}
.admin-products-body span.product-color-mark { position:relative; }
.admin-products-body span.product-color-mark::before {
    content:""; position:absolute; inset:10px; border:2px solid #7ba3e8; border-radius:4px;
}
.admin-products-body .product-info-cell strong { color:#1e2c43; font-size:11px; }
.admin-products-body .product-info-cell span { margin-top:4px; color:#7d899b; font-size:9.5px; }
.admin-products-body .product-info-cell code {
    margin-top:4px; padding:3px 6px; border:1px solid #d7e4ff; border-radius:4px;
    color:#3971e9; background:#edf3ff; font-size:9px;
}
.admin-products-body .product-business-table .status-badge { padding:3px 8px; font-size:9px; }
.admin-products-body .product-actions { min-width:145px; white-space:nowrap; }
.admin-products-body .product-actions>a,
.admin-products-body .product-actions summary { margin:0 4px; font-size:9.5px; }
.admin-products-body .product-business-table .empty-cell { height:150px; color:#8b96a8; text-align:center; }
.admin-products-body .product-form-dialog {
    width:min(1060px,calc(100vw - 48px)); padding:0; overflow:auto; border-color:#dfe7f2; border-radius:16px;
}
.admin-products-body .product-form-dialog .category-modal-header {
    margin:0; padding:20px 24px 17px; border-bottom:1px solid #e7edf5; background:#f8faff;
}
.admin-products-body .product-form { padding:20px 24px 0; }
.admin-products-body .product-form-section { padding:16px; border-color:#e1e9f4; border-radius:11px; background:#fbfdff; }
.admin-products-body .product-section-heading h3 { color:#26354c; font-size:14px; }
.admin-products-body .product-form .category-modal-actions { margin:20px -24px 0; padding:14px 24px; background:#f8faff; }
@media (max-width:980px) {
    .admin-products-body .product-business-filter { grid-template-columns:repeat(2,minmax(220px,1fr)); }
    .admin-products-body .product-business-filter .filter-actions { grid-column:1/-1; }
}
@media (max-width:760px) {
    .admin-products-body .page-body { padding:10px; }
    .admin-products-body .product-management-page { min-height:auto; }
    .product-report-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .admin-products-body .product-toolbar { align-items:flex-start; flex-direction:column; gap:12px; }
    .admin-products-body .product-toolbar .toolbar-actions { flex-wrap:wrap; }
    .admin-products-body .product-business-filter { grid-template-columns:1fr; }
    .admin-products-body .product-business-filter .filter-actions { grid-column:auto; }
}

.checkbox-row {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 18px;
    font-weight: 500;
    cursor: pointer;
}

.checkbox-row input[type="checkbox"] {
    width: auto;
    margin: 0;
}

.product-form-dialog {
    width: min(1080px, 100%);
}

.product-form-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 0.75fr);
    gap: 22px;
}

.product-form-section {
    min-width: 0;
    padding: 16px;
    border: 1px solid var(--line);
    background: #fbfdff;
}

.product-detail-editor-section {
    grid-column: 1 / -1;
}

.product-section-heading {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.product-section-heading h3 {
    margin: 0;
    color: #111827;
    font-size: 16px;
}

.product-section-heading span {
    color: var(--muted);
    font-size: 12px;
}

.product-upload-field {
    display: grid;
    gap: 8px;
    margin-bottom: 18px;
}

.product-form .product-upload-field:has(.product-detail-upload) {
    display: none;
}

.product-upload-field > label:first-child {
    color: #334155;
    font-size: 13px;
    font-weight: 700;
}

.product-upload-box {
    display: grid;
    min-height: 116px;
    align-content: center;
    justify-items: center;
    gap: 5px;
    padding: 14px;
    border: 1px dashed #94a3b8;
    background: #fff;
    color: #0b65c2;
    cursor: pointer;
    text-align: center;
}

.product-upload-box:hover {
    border-color: #0b85c9;
    background: #f0f9ff;
}

.product-upload-box input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.product-upload-icon {
    display: inline-grid;
    width: 28px;
    height: 28px;
    place-items: center;
    border-radius: 50%;
    background: #e0f2fe;
    font-size: 21px;
    line-height: 1;
}

.product-upload-box strong {
    font-size: 13px;
}

.product-upload-box small {
    color: #64748b;
    font-size: 11px;
}

.product-main-preview {
    display: grid;
    width: 150px;
    aspect-ratio: 1;
    place-items: center;
    overflow: hidden;
    border: 1px solid var(--line);
    background: #f8fafc;
    color: #94a3b8;
    font-size: 12px;
}

.product-main-preview img,
.product-detail-preview-grid img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.product-detail-preview-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.product-detail-preview-grid:empty::after {
    content: '暂无详情图预览';
    grid-column: 1 / -1;
    color: #94a3b8;
    font-size: 12px;
}

.product-detail-preview-grid figure {
    aspect-ratio: 1;
    margin: 0;
    overflow: hidden;
    border: 1px solid var(--line);
    background: #f8fafc;
}

.product-editor {
    overflow: hidden;
    border: 1px solid #cbd5e1;
    background: #fff;
}

.product-editor-toolbar {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 4px;
    min-height: 42px;
    padding: 4px 8px;
    border-bottom: 1px solid var(--line);
    background: #fff;
}

.product-editor-toolbar button {
    display: inline-grid;
    width: 32px;
    height: 30px;
    place-items: center;
    border: 0;
    border-radius: 3px;
    background: transparent;
    color: #334155;
    cursor: pointer;
    font-size: 16px;
}

.product-editor-toolbar button:hover {
    border: 0;
    background: #eef2f6;
}

.product-editor-toolbar .editor-tool::before {
    display: block;
    font-family: Arial, sans-serif;
    font-size: 16px;
    line-height: 1;
}

.product-editor-toolbar .editor-tool::before {
    content: none !important;
}

.product-editor-toolbar .editor-tool svg {
    width: 17px;
    height: 17px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.product-editor-toolbar .editor-letter {
    display: block;
    color: currentColor;
    font-family: Arial, sans-serif;
    font-size: 16px;
    line-height: 1;
}

.product-editor-toolbar .icon-bold .editor-letter { font-weight: 700; }
.product-editor-toolbar .icon-italic .editor-letter { font-style: italic; }
.product-editor-toolbar .icon-underline .editor-letter { text-decoration: underline; }

.product-editor-toolbar .icon-undo::before { content: '↶'; }
.product-editor-toolbar .icon-redo::before { content: '↷'; }
.product-editor-toolbar .icon-bold::before { content: 'B'; font-weight: 700; }
.product-editor-toolbar .icon-italic::before { content: 'I'; font-style: italic; }
.product-editor-toolbar .icon-underline::before { content: 'U'; text-decoration: underline; }
.product-editor-toolbar .icon-color::before { content: 'A'; text-decoration: underline; text-decoration-color: #2563eb; }
.product-editor-toolbar .icon-fill::before { content: '◆'; color: #64748b; font-size: 12px; }
.product-editor-toolbar .icon-align-left::before { content: '☰'; text-align: left; }
.product-editor-toolbar .icon-align-center::before { content: '☰'; text-align: center; }
.product-editor-toolbar .icon-align-right::before { content: '☰'; text-align: right; }
.product-editor-toolbar .icon-list-ul::before { content: '•≡'; font-size: 14px; }
.product-editor-toolbar .icon-list-ol::before { content: '1.'; font-size: 13px; }
.product-editor-toolbar .icon-image::before { content: '▧'; font-size: 17px; }
.product-editor-toolbar .icon-clear::before { content: '⌫'; font-size: 17px; }

.product-editor-toolbar .editor-tool-separator {
    width: 1px;
    height: 24px;
    margin: 0 4px;
    background: #e2e8f0;
}

.product-editor-toolbar .editor-tool-select {
    height: 30px;
    min-width: 76px;
    padding: 0 22px 0 8px;
    border: 0;
    border-radius: 3px;
    outline: none;
    background: #fff;
    color: #334155;
    cursor: pointer;
    font-size: 13px;
}

.product-editor-toolbar .editor-tool-select:hover,
.product-editor-toolbar .editor-tool-select:focus {
    background: #eef2f6;
}

.product-editor-surface {
    min-height: 170px;
    padding: 14px;
    outline: none;
    color: #334155;
    line-height: 1.7;
}

.product-editor-media {
    display: grid;
    gap: 8px;
    padding: 10px 14px;
    border-bottom: 1px solid var(--line);
    background: #fbfdff;
}

.product-editor-media > span {
    color: #475569;
    font-size: 12px;
    font-weight: 700;
}

.product-editor-media-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.product-editor-upload-button {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 0 10px;
    border: 1px solid #bae6fd;
    background: #eff6ff;
    color: #075985;
    cursor: pointer;
    font-size: 12px;
}

.product-editor-upload-button:hover {
    background: #e0f2fe;
}

.product-editor-upload-button input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.product-editor-media-preview {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.product-editor-media-preview:empty::after {
    content: '暂无详情图片';
    color: #94a3b8;
    font-size: 12px;
}

.product-editor-media-preview img {
    width: 72px;
    height: 72px;
    object-fit: cover;
    border: 1px solid var(--line);
    background: #fff;
}

.product-editor-surface:empty::before {
    content: '请输入产品卖点、规格说明、安装要求等详情内容';
    color: #94a3b8;
}

.product-editor-image-input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.product-editor-inserted-image {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 10px 0;
}

.warranty-management-page {
    display: grid;
    min-height: calc(100vh - 136px);
    grid-template-rows: auto auto auto auto minmax(0, 1fr);
    gap: 14px;
}

.warranty-toolbar,
.warranty-list-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.warranty-toolbar h1 {
    margin: 0 0 6px;
    color: #111827;
    font-size: 22px;
}

.warranty-toolbar p,
.warranty-list-header span {
    margin: 0;
    color: var(--muted);
}

.warranty-flow-strip {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    padding: 12px 14px;
    border: 1px solid #bae6fd;
    background: #f0f9ff;
    color: #075985;
}

.warranty-flow-strip span:not(.warranty-flow-title) {
    padding: 5px 9px;
    border-radius: 999px;
    background: #fff;
    border: 1px solid #bae6fd;
    font-size: 12px;
}

.warranty-flow-strip b {
    color: #38bdf8;
}

.warranty-flow-title {
    margin-right: 4px;
    color: #0c4a6e;
    font-weight: 700;
}

.warranty-business-filter {
    grid-template-columns: minmax(280px, 1.3fr) minmax(160px, 0.7fr) auto;
    align-items: end;
}

.warranty-business-filter input,
.warranty-business-filter select {
    height: 34px;
    padding: 7px 9px;
}

.warranty-list-header div {
    display: flex;
    align-items: baseline;
    gap: 10px;
}

.warranty-list-header strong {
    font-size: 16px;
}

.warranty-business-table-wrap {
    height: 100%;
    min-height: 0;
    border-radius: 0;
}

.warranty-business-table {
    min-width: 1720px;
}

.warranty-business-table th {
    height: 42px;
    padding-top: 10px;
    padding-bottom: 10px;
}

.warranty-business-table td {
    height: 86px;
    padding-top: 12px;
    padding-bottom: 12px;
}

/* Warranty rules - unified report workspace */
.admin-warranty-rules-body .app-main { background:#f5f7fb; }
.admin-warranty-rules-body .page-body { padding:16px; }
.admin-warranty-rules-body .page-body>.card { padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
.admin-warranty-rules-body .warranty-management-page {
    min-height:calc(100vh - 92px); grid-template-rows:auto auto auto auto auto minmax(0,1fr);
    gap:13px; color:#17233a;
}
.admin-warranty-rules-body .warranty-toolbar {
    min-height:68px; margin:0; padding:13px 16px; border:1px solid #e5ebf4; border-radius:14px;
    background:#fff; box-shadow:none;
}
.admin-warranty-rules-body .warranty-toolbar h1 { margin:0; color:#17233a; font-size:18px; }
.admin-warranty-rules-body .warranty-toolbar p { margin:5px 0 0; color:#7a879b; font-size:11px; }
.admin-warranty-rules-body .warranty-toolbar .toolbar-actions { display:flex; gap:9px; }
.admin-warranty-rules-body .warranty-toolbar .button {
    width:auto; height:39px; padding:0 16px; border-radius:9px; font-size:11px; box-shadow:none;
}
.admin-warranty-rules-body .warranty-toolbar .button.secondary {
    border-color:#d8e3f5; color:#345173; background:#fff;
}
.warranty-rule-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:13px; }
.warranty-rule-stats article {
    min-height:111px; padding:12px 14px; display:block; overflow:hidden; position:relative;
    border:1px solid #e5ebf4; border-radius:13px; background:#fff;
}
.warranty-rule-stats article::after {
    content:""; width:112px; height:142px; position:absolute; right:-26px; top:8px;
    border-radius:48% 0 0 0; background:#edf3ff; transform:rotate(13deg);
}
.warranty-rule-stats .is-green::after { background:#e1f7ef; }
.warranty-rule-stats .is-yellow::after { background:#fff6dd; }
.warranty-rule-stats .is-violet::after { background:#f0edff; }
.warranty-rule-stats i {
    width:30px; height:30px; display:block; position:relative; z-index:1; border:1px solid #d7e5ff;
    border-radius:8px; color:#3474f3; background:#eef4ff;
}
.warranty-rule-stats i::before {
    content:""; position:absolute; inset:6px 7px; border:1.5px solid currentColor; border-radius:50%;
}
.warranty-rule-stats i::after {
    content:""; position:absolute; left:14px; top:9px; width:1.5px; height:7px;
    background:currentColor; box-shadow:3px 6px 0 -0.2px currentColor;
}
.warranty-rule-stats .is-green i { color:#20a878; border-color:#cceee2; background:#eaf9f3; }
.warranty-rule-stats .is-yellow i { color:#d79b29; border-color:#f2e1b8; background:#fff8e8; }
.warranty-rule-stats .is-violet i { color:#7567e8; border-color:#ded8ff; background:#f1efff; }
.warranty-rule-stats div { position:relative; z-index:1; }
.warranty-rule-stats small { display:block; margin:8px 0 5px; color:#39475d; font-size:11px; }
.warranty-rule-stats strong { display:flex; align-items:baseline; gap:4px; color:#17233a; font-size:19px; line-height:1; }
.warranty-rule-stats strong b { color:#64748b; font-size:9px; font-weight:500; }
.warranty-rule-stats em { display:block; margin-top:7px; color:#8b96a8; font-size:9.5px; font-style:normal; }
.admin-warranty-rules-body .warranty-flow-strip {
    min-height:50px; padding:8px 14px; gap:8px; border:1px solid #dce7f5; border-radius:12px;
    color:#31547e; background:#f7faff;
}
.admin-warranty-rules-body .warranty-flow-title { color:#264c7b; font-size:10.5px; }
.admin-warranty-rules-body .warranty-flow-strip span:not(.warranty-flow-title) {
    padding:5px 9px; border-color:#d7e4f5; border-radius:6px; color:#4c6482; font-size:9.5px;
}
.admin-warranty-rules-body .warranty-flow-strip b { color:#86a6cf; font-size:11px; }
.admin-warranty-rules-body .warranty-business-filter {
    margin:0; padding:11px 14px; display:grid;
    grid-template-columns:minmax(300px,1.5fr) minmax(180px,.8fr) auto;
    gap:12px; align-items:center; border:1px solid #e5ebf4; border-radius:14px; background:#fff;
}
.admin-warranty-rules-body .warranty-business-filter>div { min-width:0; display:flex; align-items:center; gap:9px; }
.admin-warranty-rules-body .warranty-business-filter label {
    flex:0 0 auto; margin:0; color:#435168; font-size:10.5px; font-weight:600; white-space:nowrap;
}
.admin-warranty-rules-body .warranty-business-filter input,
.admin-warranty-rules-body .warranty-business-filter select {
    min-width:0; width:100%; height:34px; padding:0 9px; border:1px solid #dbe4f0;
    border-radius:8px; color:#31405a; background:#fff; font-size:10.5px;
}
.admin-warranty-rules-body .warranty-business-filter .filter-actions { justify-content:flex-end; }
.admin-warranty-rules-body .warranty-business-filter .button {
    width:auto; height:34px; padding:0 15px; border-radius:8px; font-size:10.5px;
}
.admin-warranty-rules-body .warranty-list-header {
    min-height:40px; padding:0 14px; border:1px solid #e5ebf4; border-radius:10px; background:#fff;
}
.admin-warranty-rules-body .warranty-list-header strong { color:#25334a; font-size:11px; }
.admin-warranty-rules-body .warranty-list-header span { color:#8b96a8; font-size:9.5px; }
.admin-warranty-rules-body .warranty-business-table-wrap {
    height:100%; min-height:300px; padding:11px; overflow:auto; align-self:stretch;
    border:1px solid #e5ebf4; border-radius:14px; background:#fff;
}
.admin-warranty-rules-body .warranty-business-table {
    min-width:1120px; border:1px solid #e5ebf4; border-collapse:separate; border-spacing:0;
}
.admin-warranty-rules-body .warranty-business-table th {
    height:42px; padding:0 11px; color:#64748b; background:#f5f8fc; border-bottom:1px solid #e5ebf4;
    font-size:10.5px; font-weight:600; text-align:center;
}
.admin-warranty-rules-body .warranty-business-table td {
    height:60px; padding:9px 11px; color:#25334a; border-bottom:1px solid #edf1f6;
    font-size:10.5px; text-align:center;
}
.admin-warranty-rules-body .warranty-business-table tbody tr:hover { background:#fafcff; }
.admin-warranty-rules-body .warranty-business-table th:first-child,
.admin-warranty-rules-body .warranty-business-table td:first-child { width:170px; text-align:left; }
.admin-warranty-rules-body .warranty-business-table th:nth-child(5),
.admin-warranty-rules-body .warranty-business-table td:nth-child(5) { width:260px; text-align:left; }
.admin-warranty-rules-body .warranty-business-table code {
    padding:4px 7px; border:1px solid #d7e4ff; border-radius:5px; color:#3971e9;
    background:#edf3ff; font-size:9.5px;
}
.admin-warranty-rules-body .warranty-business-table .status-badge { padding:3px 8px; font-size:9px; }
.admin-warranty-rules-body .warranty-business-table .table-actions { white-space:nowrap; }
.admin-warranty-rules-body .warranty-business-table .table-actions a { margin:0 4px; font-size:9.5px; }
.admin-warranty-rules-body .warranty-business-table .empty-cell { height:150px; color:#8b96a8; text-align:center; }
.admin-warranty-rules-body .category-modal-dialog {
    width:min(760px,100%); padding:0; overflow:hidden; border-color:#dfe7f2; border-radius:16px;
}
.admin-warranty-rules-body .category-modal-header {
    margin:0; padding:20px 24px 17px; border-bottom:1px solid #e7edf5; background:#f8faff;
}
.admin-warranty-rules-body .category-modal-header span { color:#3474f3; font-size:10px; letter-spacing:.12em; }
.admin-warranty-rules-body .category-modal-header h2 { margin-top:5px; color:#17233a; font-size:18px; }
.admin-warranty-rules-body .category-modal-dialog>form { padding:20px 24px 0; }
.admin-warranty-rules-body .category-modal-dialog>form>.category-modal-actions {
    margin:18px -24px 0; padding:14px 24px; background:#f8faff;
}
@media (max-width:900px) {
    .admin-warranty-rules-body .warranty-business-filter { grid-template-columns:1fr 1fr; }
    .admin-warranty-rules-body .warranty-business-filter .filter-actions { grid-column:1/-1; }
}
@media (max-width:760px) {
    .admin-warranty-rules-body .page-body { padding:10px; }
    .admin-warranty-rules-body .warranty-management-page { min-height:auto; }
    .warranty-rule-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .admin-warranty-rules-body .warranty-toolbar { align-items:flex-start; flex-direction:column; gap:12px; }
    .admin-warranty-rules-body .warranty-business-filter { grid-template-columns:1fr; }
    .admin-warranty-rules-body .warranty-business-filter .filter-actions { grid-column:auto; }
}

/* Construction work orders - unified report workspace */
.admin-work-orders-body .app-main { background:#f5f7fb; }
.admin-work-orders-body .page-body { padding:16px; }
.admin-work-orders-body .page-body>.card { padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
.work-order-management-page {
    min-height:calc(100vh - 92px); display:grid;
    grid-template-rows:auto auto auto auto minmax(0,1fr); gap:13px; color:#17233a;
}
.work-order-toolbar {
    min-height:68px; padding:13px 16px; display:flex; align-items:center; justify-content:space-between; gap:18px;
    border:1px solid #e5ebf4; border-radius:14px; background:#fff;
}
.work-order-toolbar h1 { margin:0; color:#17233a; font-size:18px; }
.work-order-toolbar p { margin:5px 0 0; color:#7a879b; font-size:11px; }
.work-order-toolbar .toolbar-actions { display:flex; gap:9px; }
.work-order-toolbar .button { width:auto; height:39px; padding:0 16px; border-radius:9px; font-size:11px; }
.work-order-toolbar .button.secondary { border-color:#d8e3f5; color:#345173; background:#fff; }
.work-order-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:13px; }
.work-order-stats>a {
    min-height:111px; padding:12px 14px; display:block; overflow:hidden; position:relative;
    border:1px solid #e5ebf4; border-radius:13px; color:#17233a; background:#fff;
}
.work-order-stats>a::after {
    content:""; width:112px; height:142px; position:absolute; right:-26px; top:8px;
    border-radius:48% 0 0 0; background:#edf3ff; transform:rotate(13deg);
}
.work-order-stats .is-green::after { background:#e1f7ef; }
.work-order-stats .is-yellow::after { background:#fff6dd; }
.work-order-stats .is-violet::after { background:#f0edff; }
.work-order-stats i {
    width:30px; height:30px; display:block; position:relative; z-index:1; border:1px solid #d7e5ff;
    border-radius:8px; color:#3474f3; background:#eef4ff;
}
.work-order-stats i::before {
    content:""; position:absolute; left:7px; top:6px; width:14px; height:17px;
    border:1.5px solid currentColor; border-radius:2px;
}
.work-order-stats i::after {
    content:""; position:absolute; left:11px; top:11px; width:7px; height:1.5px;
    background:currentColor; box-shadow:0 4px currentColor,0 8px currentColor;
}
.work-order-stats .is-green i { color:#20a878; border-color:#cceee2; background:#eaf9f3; }
.work-order-stats .is-yellow i { color:#d79b29; border-color:#f2e1b8; background:#fff8e8; }
.work-order-stats .is-violet i { color:#7567e8; border-color:#ded8ff; background:#f1efff; }
.work-order-stats div { position:relative; z-index:1; }
.work-order-stats small { display:block; margin:8px 0 5px; color:#39475d; font-size:11px; }
.work-order-stats strong { display:block; color:#17233a; font-size:19px; line-height:1; }
.work-order-stats em { display:block; margin-top:7px; color:#8b96a8; font-size:9.5px; font-style:normal; }
.admin-work-orders-body .work-order-filter {
    margin:0; padding:11px 14px; display:grid;
    grid-template-columns:minmax(250px,1.3fr) repeat(4,minmax(145px,.75fr)) auto;
    gap:12px; align-items:center; border:1px solid #e5ebf4; border-radius:14px; background:#fff;
}
.admin-work-orders-body .work-order-filter>div { min-width:0; display:flex; align-items:center; gap:9px; }
.admin-work-orders-body .work-order-filter label {
    flex:0 0 auto; margin:0; color:#435168; font-size:10.5px; font-weight:600; white-space:nowrap;
}
.admin-work-orders-body .work-order-filter input,
.admin-work-orders-body .work-order-filter select {
    min-width:0; width:100%; height:34px; padding:0 9px; border:1px solid #dbe4f0;
    border-radius:8px; color:#31405a; background:#fff; font-size:10.5px;
}
.admin-work-orders-body .work-order-filter .filter-actions { justify-content:flex-end; }
.admin-work-orders-body .work-order-filter .button {
    width:auto; height:34px; padding:0 15px; border-radius:8px; font-size:10.5px;
}
.work-order-list-header {
    min-height:40px; padding:0 14px; display:flex; align-items:center; justify-content:space-between;
    border:1px solid #e5ebf4; border-radius:10px; background:#fff;
}
.work-order-list-header>div { display:flex; align-items:baseline; gap:9px; }
.work-order-list-header strong { color:#25334a; font-size:11px; }
.work-order-list-header span { color:#8b96a8; font-size:9.5px; }
.admin-work-orders-body .work-order-table-wrap {
    height:100%; min-height:300px; padding:11px; overflow:auto; align-self:stretch;
    border:1px solid #e5ebf4; border-radius:14px; background:#fff;
}
.admin-work-orders-body .work-order-table {
    min-width:1220px; border:1px solid #e5ebf4; border-collapse:separate; border-spacing:0;
}
.admin-work-orders-body .work-order-table th {
    height:42px; padding:0 11px; color:#64748b; background:#f5f8fc; border-bottom:1px solid #e5ebf4;
    font-size:10.5px; font-weight:600; text-align:center;
}
.admin-work-orders-body .work-order-table td {
    height:64px; padding:9px 11px; color:#25334a; border-bottom:1px solid #edf1f6;
    font-size:10.5px; text-align:center;
}
.admin-work-orders-body .work-order-table tbody tr:hover { background:#fafcff; }
.admin-work-orders-body .work-order-table th:first-child,
.admin-work-orders-body .work-order-table td:first-child { width:175px; text-align:left; }
.work-order-number,.work-order-customer,.work-order-product,.work-order-assignment {
    display:flex; flex-direction:column; gap:4px;
}
.work-order-number strong { color:#3971e9; font-size:10.5px; }
.work-order-customer strong,.work-order-product strong,.work-order-assignment strong { color:#26354c; font-size:10.5px; }
.work-order-number span,.work-order-customer span,.work-order-product span,.work-order-assignment span {
    color:#8b96a8; font-size:9px;
}
.admin-work-orders-body .work-order-table .status-badge { padding:3px 8px; font-size:9px; }
.work-order-detail {
    height:27px; padding:0 10px; display:inline-flex; align-items:center; justify-content:center;
    border:1px solid #bcd1fa; border-radius:6px; color:#3474f3; font-size:9.5px;
}
.admin-work-orders-body .work-order-table .empty-cell { height:150px; color:#8b96a8; text-align:center; }
@media (max-width:1280px) {
    .admin-work-orders-body .work-order-filter { grid-template-columns:repeat(3,minmax(190px,1fr)); }
    .admin-work-orders-body .work-order-filter .filter-actions { grid-column:1/-1; }
}
@media (max-width:760px) {
    .admin-work-orders-body .page-body { padding:10px; }
    .work-order-management-page { min-height:auto; }
    .work-order-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .work-order-toolbar { align-items:flex-start; flex-direction:column; gap:12px; }
    .admin-work-orders-body .work-order-filter { grid-template-columns:1fr; }
    .admin-work-orders-body .work-order-filter .filter-actions { grid-column:auto; }
}

/* Login logs - security workspace */
.admin-login-logs-body .app-main { background:#f5f7fb; }
.admin-login-logs-body .page-body { padding:16px; }
.admin-login-logs-body .page-body>.card { padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
.login-log-page {
    min-height:calc(100vh - 92px); display:grid;
    grid-template-rows:auto auto minmax(0,1fr); gap:13px; color:#17233a;
}
.login-log-stats i::before { border:0; }
.login-log-stats article:nth-child(1) i::before { content:"录"; font-size:11px; }
.login-log-stats article:nth-child(2) i::before { content:"今"; font-size:11px; }
.login-log-stats article:nth-child(3) i::before { content:"!"; font-size:13px; }
.login-log-stats article:nth-child(4) i::before { content:"盾"; font-size:10px; }
.admin-login-logs-body .login-log-filter {
    margin:0; padding:11px 14px; display:grid;
    grid-template-columns:minmax(230px,1.3fr) minmax(145px,.7fr) minmax(145px,.7fr) minmax(145px,.7fr) minmax(145px,.7fr) auto;
    gap:11px; align-items:center; border:1px solid #e5ebf4; border-radius:14px; background:#fff;
}
.admin-login-logs-body .login-log-filter>div { min-width:0; display:flex; align-items:center; gap:8px; }
.admin-login-logs-body .login-log-filter label { flex:0 0 auto; margin:0; color:#435168; font-size:10.5px; font-weight:600; white-space:nowrap; }
.admin-login-logs-body .login-log-filter input,.admin-login-logs-body .login-log-filter select {
    min-width:0; width:100%; height:34px; padding:0 9px; border:1px solid #dbe4f0;
    border-radius:8px; color:#31405a; background:#fff; font-size:10.5px;
}
.admin-login-logs-body .login-log-filter .filter-actions { justify-content:flex-end; }
.admin-login-logs-body .login-log-filter .button { width:auto; height:34px; padding:0 13px; border-radius:8px; font-size:10.5px; }
.admin-login-logs-body .login-log-table-wrap {
    height:100%; min-height:320px; padding:0; overflow:hidden; align-self:stretch;
    display:flex; flex-direction:column;
    border:1px solid #e5ebf4; border-radius:14px; background:#fff;
}
.login-log-table-scroll { flex:1; min-height:0; padding:11px; overflow:auto; }
.admin-login-logs-body .login-log-table { min-width:1280px; border:1px solid #e5ebf4; border-collapse:separate; border-spacing:0; }
.admin-login-logs-body .login-log-table th {
    height:42px; padding:0 11px; color:#64748b; background:#f5f8fc;
    border-bottom:1px solid #e5ebf4; font-size:10.5px; font-weight:600; text-align:center;
}
.admin-login-logs-body .login-log-table td {
    height:66px; padding:9px 11px; color:#25334a; border-bottom:1px solid #edf1f6; font-size:10.5px; text-align:center;
}
.admin-login-logs-body .login-log-table tbody tr:hover { background:#fafcff; }
.login-log-time { display:flex; flex-direction:column; gap:4px; }
.login-log-time strong { color:#34435a; font-size:10.5px; }
.login-log-time span { color:#8b96a8; font-size:9px; }
.login-log-account { min-width:150px; display:flex; flex-direction:column; gap:5px; text-align:left; }
.login-log-account strong { color:#26354c; font-size:10.5px; }
.login-log-account small { color:#8b96a8; font-size:9px; }
.admin-login-logs-body .login-log-table code {
    padding:4px 7px; border:1px solid #dce5f2; border-radius:5px; color:#50647f; background:#f5f8fc; font-size:9.5px;
}
.admin-login-logs-body .login-log-table .status-badge { padding:3px 8px; font-size:9px; }
.login-risk { display:inline-flex; padding:3px 8px; border-radius:999px; font-size:9px; }
.login-risk.success { color:#16845e; background:#eaf8f2; }
.login-risk.failed { color:#a86a10; background:#fff5dd; }
.login-risk.blocked { color:#b42318; background:#feebe9; }
.login-log-view { color:#3474f3; font-size:9.5px; white-space:nowrap; }
.admin-login-logs-body .login-log-table .empty-cell { height:170px; color:#8b96a8; text-align:center; }
.login-log-modal .category-modal-backdrop { background:rgba(17,31,53,.42); backdrop-filter:blur(2px); }
.login-log-dialog { width:min(620px,calc(100vw - 34px)); border-radius:14px; }
.login-log-detail { padding:18px 20px; display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.login-log-detail>div {
    min-height:62px; padding:11px 12px; display:flex; flex-direction:column; gap:6px;
    border:1px solid #e5ebf4; border-radius:9px; background:#f8fafc;
}
.login-log-detail>div.full { grid-column:1/-1; }
.login-log-detail span { color:#8390a3; font-size:10px; }
.login-log-detail strong { color:#2c3b52; font-size:12px; line-height:1.5; }
.login-log-dialog .category-modal-actions { padding:0 20px 20px; }
.login-log-pagination {
    display:flex; align-items:center; justify-content:flex-end; gap:6px;
}
.login-log-pagination a {
    min-width:32px; height:30px; padding:0 9px; display:inline-flex; align-items:center; justify-content:center;
    border:1px solid #dce5f1; border-radius:7px; color:#52647d; background:#fff; font-size:10px;
}
.login-log-pagination a:hover,.login-log-pagination a.active { color:#fff; border-color:#3474f3; background:#3474f3; }
.login-log-pagination a.disabled { pointer-events:none; opacity:.45; }
.login-log-table-footer {
    min-height:54px; padding:8px 12px; display:flex; align-items:center; justify-content:space-between; gap:16px;
    flex:0 0 auto; border-top:1px solid #e5ebf4; background:#fff;
}
.login-log-table-footer>div { display:flex; align-items:center; gap:16px; color:#7f8b9d; font-size:10.5px; }
.login-log-table-footer>div strong { color:#3474f3; font-size:11px; }
.login-log-pagination a.page-arrow { color:#6f7e92; font-size:15px; }
.login-log-clear-dialog { width:min(480px,calc(100vw - 34px)); border-radius:14px; }
.login-log-clear-note { margin:18px 20px; padding:15px; border:1px solid #f4d3cf; border-radius:10px; background:#fff7f6; }
.login-log-clear-note strong { display:block; margin-bottom:7px; color:#b42318; font-size:13px; }
.login-log-clear-note p { margin:0; color:#7d4a46; font-size:11px; line-height:1.7; }
.login-log-clear-dialog .category-modal-actions { padding:0 20px 20px; }
@media(max-width:1220px) {
    .admin-login-logs-body .login-log-filter { grid-template-columns:repeat(3,minmax(190px,1fr)); }
    .admin-login-logs-body .login-log-filter .filter-actions { grid-column:1/-1; }
}
@media(max-width:760px) {
    .admin-login-logs-body .page-body { padding:10px; }
    .login-log-page { min-height:auto; }
    .admin-login-logs-body .login-log-filter { grid-template-columns:1fr; }
    .admin-login-logs-body .login-log-filter .filter-actions { grid-column:auto; }
    .login-log-detail { grid-template-columns:1fr; }
    .login-log-detail>div.full { grid-column:auto; }
    .login-log-table-footer { align-items:flex-start; flex-direction:column; }
}

/* Operation logs - audit workspace */
.admin-operation-logs-body .app-main { background:#f5f7fb; }
.admin-operation-logs-body .page-body { padding:16px; }
.admin-operation-logs-body .page-body>.card { padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
.operation-log-page {
    min-height:calc(100vh - 92px); display:grid;
    grid-template-rows:auto auto auto auto minmax(0,1fr); gap:13px; color:#17233a;
}
.operation-log-stats i::before { border:0; }
.operation-log-stats article:nth-child(1) i::before { content:"记"; font-size:11px; }
.operation-log-stats article:nth-child(2) i::before { content:"今"; font-size:11px; }
.operation-log-stats article:nth-child(3) i::before { content:"人"; font-size:11px; }
.operation-log-stats article:nth-child(4) i::before { content:"!"; font-size:13px; }
.admin-operation-logs-body .operation-log-filter {
    margin:0; padding:11px 14px; display:grid;
    grid-template-columns:minmax(220px,1.35fr) minmax(145px,.7fr) minmax(145px,.7fr) minmax(145px,.7fr) minmax(145px,.7fr) auto;
    gap:11px; align-items:center; border:1px solid #e5ebf4; border-radius:14px; background:#fff;
}
.admin-operation-logs-body .operation-log-filter>div { min-width:0; display:flex; align-items:center; gap:8px; }
.admin-operation-logs-body .operation-log-filter label {
    flex:0 0 auto; margin:0; color:#435168; font-size:10.5px; font-weight:600; white-space:nowrap;
}
.admin-operation-logs-body .operation-log-filter input,
.admin-operation-logs-body .operation-log-filter select {
    min-width:0; width:100%; height:34px; padding:0 9px; border:1px solid #dbe4f0;
    border-radius:8px; color:#31405a; background:#fff; font-size:10.5px;
}
.admin-operation-logs-body .operation-log-filter .filter-actions { justify-content:flex-end; }
.admin-operation-logs-body .operation-log-filter .button { width:auto; height:34px; padding:0 13px; border-radius:8px; font-size:10.5px; }
.admin-operation-logs-body .operation-log-table-wrap {
    height:100%; min-height:320px; padding:11px; overflow:auto; align-self:stretch;
    border:1px solid #e5ebf4; border-radius:14px; background:#fff;
}
.admin-operation-logs-body .operation-log-table {
    min-width:1320px; border:1px solid #e5ebf4; border-collapse:separate; border-spacing:0;
}
.admin-operation-logs-body .operation-log-table th {
    height:42px; padding:0 11px; color:#64748b; background:#f5f8fc;
    border-bottom:1px solid #e5ebf4; font-size:10.5px; font-weight:600; text-align:center;
}
.admin-operation-logs-body .operation-log-table td {
    height:68px; padding:9px 11px; color:#25334a;
    border-bottom:1px solid #edf1f6; font-size:10.5px; text-align:center;
}
.admin-operation-logs-body .operation-log-table tbody tr:hover { background:#fafcff; }
.admin-operation-logs-body .operation-log-table code {
    padding:4px 7px; border:1px solid #d7e4ff; border-radius:5px;
    color:#3971e9; background:#edf3ff; font-size:9.5px;
}
.operation-time,.operation-case { display:flex; flex-direction:column; gap:4px; }
.operation-time strong { color:#34435a; font-size:10.5px; }
.operation-time span,.operation-case span { color:#8b96a8; font-size:9px; }
.operation-actor { min-width:180px; display:flex; align-items:center; gap:9px; text-align:left; }
.operation-actor>span {
    width:34px; height:34px; display:grid; place-items:center; flex:0 0 34px;
    border-radius:9px; color:#3474f3; background:linear-gradient(145deg,#edf4ff,#dce9ff); font-size:12px; font-weight:800;
}
.operation-actor div { display:flex; flex-direction:column; gap:4px; }
.operation-actor strong { color:#26354c; font-size:10.5px; }
.operation-actor small { color:#8b96a8; font-size:9px; }
.operation-case a { color:#3474f3; font-size:10.5px; font-weight:700; }
.operation-flow { min-width:175px; display:flex; align-items:center; justify-content:center; gap:7px; }
.operation-flow>span:first-child { color:#65758a; font-size:9.5px; }
.operation-flow b { color:#a4afbd; font-weight:500; }
.operation-flow .status-badge { padding:3px 8px; font-size:9px; }
.operation-remark {
    display:block; max-width:230px; overflow:hidden; color:#65758a;
    text-align:left; text-overflow:ellipsis; white-space:nowrap;
}
.operation-view-link { color:#3474f3; font-size:9.5px; white-space:nowrap; }
.admin-operation-logs-body .operation-log-table .empty-cell { height:170px; color:#8b96a8; text-align:center; }
.operation-log-modal .category-modal-backdrop { background:rgba(17,31,53,.42); backdrop-filter:blur(2px); }
.operation-log-dialog { width:min(650px,calc(100vw - 34px)); border-radius:14px; }
.operation-detail-grid { padding:18px 20px; display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.operation-detail-grid>div {
    min-height:66px; padding:11px 12px; display:flex; flex-direction:column; gap:6px;
    border:1px solid #e5ebf4; border-radius:9px; background:#f8fafc;
}
.operation-detail-grid>div.full { grid-column:1/-1; }
.operation-detail-grid span { color:#8390a3; font-size:10px; }
.operation-detail-grid strong { color:#2c3b52; font-size:12px; line-height:1.5; }
.operation-detail-grid small { color:#8b96a8; font-size:9.5px; }
.operation-log-dialog .category-modal-actions { padding:0 20px 20px; }

.worker-edit-modal .category-modal-backdrop { background:rgba(17,31,53,.42); backdrop-filter:blur(2px); }
.worker-edit-dialog { width:min(760px,calc(100vw - 34px)); max-height:calc(100vh - 42px); overflow:auto; border-radius:14px; box-shadow:0 24px 60px rgba(23,35,58,.22); }
.worker-edit-form { padding:0 24px 22px; }
.worker-edit-alert { margin:18px 24px 0; }
.worker-edit-section { margin-top:18px; padding:18px; border:1px solid #e3eaf4; border-radius:12px; background:#fbfcff; }
.worker-edit-section h3 { margin:0 0 14px; color:#1b2b45; font-size:15px; }
.worker-edit-section .category-form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px 18px; }
.worker-edit-section .form-row { margin:0; }
.worker-edit-section .form-row label { margin-bottom:7px; color:#40516b; font-size:13px; font-weight:600; }
.worker-edit-section input,.worker-edit-section select { min-height:42px; font-size:14px; }
.worker-edit-section small { display:block; margin-top:8px; color:#8290a5; line-height:1.6; }
.worker-edit-form .category-modal-actions { margin:20px -24px -22px; padding:15px 24px; background:#f7f9fd; }

@media (max-width:720px) {
    .worker-edit-section .category-form-grid { grid-template-columns:1fr; }
    .worker-edit-form { padding-right:16px; padding-left:16px; }
    .worker-edit-form .category-modal-actions { margin-right:-16px; margin-left:-16px; }
}
@media(max-width:1220px) {
    .admin-operation-logs-body .operation-log-filter { grid-template-columns:repeat(3,minmax(190px,1fr)); }
    .admin-operation-logs-body .operation-log-filter .filter-actions { grid-column:1/-1; }
}
@media(max-width:760px) {
    .admin-operation-logs-body .page-body { padding:10px; }
    .operation-log-page { min-height:auto; }
    .admin-operation-logs-body .operation-log-filter { grid-template-columns:1fr; }
    .admin-operation-logs-body .operation-log-filter .filter-actions { grid-column:auto; }
    .operation-detail-grid { grid-template-columns:1fr; }
    .operation-detail-grid>div.full { grid-column:auto; }
}

/* Interface management - finance workspace layout */
.admin-interfaces-body .app-main { background:#f5f7fb; }
.admin-interfaces-body .page-body { padding:16px; }
.admin-interfaces-body .page-body>.card { padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
.interface-management-page {
    min-height:calc(100vh - 92px); display:grid; grid-template-rows:auto auto auto auto auto;
    align-content:start; gap:13px; color:#17233a; font-size:14px;
}
.admin-interfaces-body .deposit-account-toolbar h1 { font-size:22px; }
.admin-interfaces-body .deposit-account-toolbar p { font-size:13px; }
.admin-interfaces-body .deposit-account-toolbar .button { font-size:13px; }
.admin-interfaces-body .deposit-account-stats small { font-size:13px; }
.admin-interfaces-body .deposit-account-stats strong { font-size:22px; }
.admin-interfaces-body .deposit-account-stats strong b { font-size:12px; }
.admin-interfaces-body .deposit-account-stats em { font-size:11.5px; }
.admin-interfaces-body .deposit-account-list-head strong { font-size:13px; }
.admin-interfaces-body .deposit-account-list-head span { font-size:11.5px; }
.interface-account-stats i::before { content:""; inset:7px; border-radius:6px; }
.interface-account-stats article:nth-child(1) i::before { content:"API"; border:0; font-size:7px; }
.interface-account-stats article:nth-child(2) i::before { content:"启"; border:0; font-size:11px; }
.interface-account-stats article:nth-child(3) i::before { content:"密"; border:0; font-size:11px; }
.interface-account-stats article:nth-child(4) i::before { content:"✓"; border:0; font-size:12px; }
.interface-list-head { min-height:42px; }
.interface-service-panel {
    overflow:hidden; border:1px solid #e5ebf4; border-radius:14px; background:#fff;
}
.interface-service-row {
    min-height:100px; padding:16px; display:grid;
    grid-template-columns:48px minmax(175px,1.25fr) repeat(3,minmax(115px,.8fr)) minmax(100px,.7fr) auto;
    align-items:center; gap:16px;
}
.interface-service-logo {
    width:46px; height:46px; display:grid; place-items:center; border-radius:10px;
    color:#fff; background:linear-gradient(145deg,#4b8af8,#2769e7); font-size:11px; font-weight:800;
    box-shadow:0 7px 16px rgba(52,116,243,.2);
}
.interface-service-name,.interface-service-meta,.interface-service-status { min-width:0; display:flex; flex-direction:column; gap:5px; }
.interface-service-name strong { color:#25334a; font-size:15px; }
.interface-service-name span,.interface-service-meta small,.interface-service-status small { color:#8b96a8; font-size:12px; }
.interface-service-meta strong {
    overflow:hidden; color:#35445b; font-size:13px; font-weight:600; text-overflow:ellipsis; white-space:nowrap;
}
.interface-service-status { align-items:flex-start; }
.interface-service-status .status-badge { padding:4px 9px; font-size:11px; }
.interface-service-actions { display:flex; gap:8px; white-space:nowrap; }
.interface-service-actions a {
    min-width:52px; height:30px; padding:0 10px; display:inline-flex; align-items:center; justify-content:center;
    border:1px solid #cdddf7; border-radius:7px; color:#3474f3; background:#fff; font-size:12px;
}
.interface-service-actions a:first-child { color:#fff; border-color:#3474f3; background:#3474f3; }
.interface-service-actions a.disabled { pointer-events:none; color:#aeb7c5; border-color:#e4e8ef; background:#f7f8fa; }
.interface-inline-test { margin:0; display:inline-flex; }
.interface-inline-test button {
    min-width:64px; height:30px; padding:0 10px; border:1px solid #cdddf7; border-radius:7px;
    color:#3474f3; background:#fff; font-size:12px; cursor:pointer;
}
.interface-service-foot {
    min-height:39px; padding:0 16px; display:flex; align-items:center; gap:24px;
    border-top:1px solid #edf1f6; color:#8793a5; background:#fafcff; font-size:11.5px;
}
.interface-notice-panel {
    padding:14px 16px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0;
    border:1px solid #e5ebf4; border-radius:14px; background:#fff;
}
.interface-notice-panel>div { min-width:0; padding:2px 18px; border-right:1px solid #edf1f6; }
.interface-notice-panel>div:first-child { padding-left:0; }
.interface-notice-panel>div:last-child { padding-right:0; border-right:0; }
.interface-notice-panel strong { display:block; margin-bottom:6px; color:#35445b; font-size:13px; }
.interface-notice-panel span { display:block; color:#8995a7; font-size:11.5px; line-height:1.7; }
.interface-modal .category-modal-backdrop { background:rgba(17,31,53,.42); backdrop-filter:blur(2px); }
.interface-modal .category-modal-dialog { border-radius:14px; box-shadow:0 24px 60px rgba(23,35,58,.22); }
.interface-config-dialog { width:min(760px,calc(100vw - 34px)); max-height:calc(100vh - 42px); overflow:auto; }
.interface-test-dialog { width:min(480px,calc(100vw - 34px)); }
.interface-modal .category-modal-header {
    position:sticky; top:0; z-index:2; padding:16px 20px; border-bottom:1px solid #e8edf4; background:#fff;
}
.interface-modal .category-modal-header span { color:#718096; font-size:12px; }
.interface-modal .category-modal-header h2 { margin-top:3px; color:#223149; font-size:20px; }
.interface-modal .category-modal-close { text-decoration:none; }
.interface-config-form { padding:18px 20px 20px; }
.interface-enable-row {
    margin-bottom:15px; padding:13px 14px; display:flex; align-items:center; justify-content:space-between;
    border:1px solid #d7e5fa; border-radius:10px; background:#f5f9ff;
}
.interface-enable-row>div { display:flex; flex-direction:column; gap:4px; }
.interface-enable-row strong { color:#2a3b55; font-size:14px; }
.interface-enable-row span { color:#8290a4; font-size:11.5px; }
.interface-enable-row label { margin:0; display:flex; align-items:center; gap:6px; color:#3474f3; font-size:13px; }
.interface-enable-row input { width:auto; }
.interface-form-section { margin-top:13px; padding:15px; border:1px solid #e6ebf2; border-radius:11px; background:#fff; }
.interface-section-title { margin-bottom:14px; display:flex; align-items:center; gap:9px; }
.interface-section-title b {
    width:27px; height:27px; display:grid; place-items:center; border-radius:7px;
    color:#3474f3; background:#edf4ff; font-size:11px;
}
.interface-section-title div { display:flex; flex-direction:column; gap:2px; }
.interface-section-title strong { color:#2b3a51; font-size:14px; }
.interface-section-title span { color:#8a96a8; font-size:11.5px; }
.interface-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:13px; }
.interface-form-grid .form-row { margin:0; }
.interface-form-grid label,.interface-test-dialog .form-row label { margin-bottom:7px; color:#435168; font-size:13px; }
.interface-form-grid input,.interface-form-grid select,.interface-test-dialog .form-row input {
    width:100%; height:42px; padding:0 11px; border:1px solid #dbe4f0; border-radius:8px; color:#31405a; font-size:13px;
}
.interface-secret-field { position:relative; }
.interface-secret-field input { padding-right:58px; }
.interface-secret-field span {
    position:absolute; right:10px; top:12px; color:#1c9a6d; font-size:11px; font-weight:700;
}
.interface-template-tip {
    margin:12px 0 0; padding:10px 12px; border-radius:7px; color:#6f7e92; background:#f7f9fc; font-size:11.5px;
}
.interface-config-form .category-modal-actions { margin-top:18px; }
.interface-test-summary {
    margin:18px 20px 16px; padding:13px; display:flex; align-items:center; gap:11px;
    border:1px solid #dbe8fb; border-radius:10px; background:#f6f9fe;
}
.interface-test-summary>span {
    width:38px; height:38px; display:grid; place-items:center; border-radius:8px;
    color:#fff; background:#3474f3; font-size:9px; font-weight:800;
}
.interface-test-summary div { display:flex; flex-direction:column; gap:4px; }
.interface-test-summary strong { color:#2d3d55; font-size:14px; }
.interface-test-summary small { color:#8290a4; font-size:11.5px; line-height:1.55; }
.interface-test-dialog form { padding:0 20px 20px; }
@media(max-width:1080px) {
    .interface-service-row { grid-template-columns:48px minmax(170px,1fr) repeat(2,minmax(105px,.8fr)) auto; }
    .interface-service-row .interface-service-meta:nth-of-type(4) { display:none; }
}
@media(max-width:760px) {
    .admin-interfaces-body .page-body { padding:10px; }
    .interface-management-page { min-height:auto; }
    .interface-service-row { grid-template-columns:46px 1fr auto; gap:10px; }
    .interface-service-meta,.interface-service-status { display:none; }
    .interface-service-foot { align-items:flex-start; flex-direction:column; gap:4px; padding:10px 14px; }
    .interface-notice-panel,.interface-form-grid { grid-template-columns:1fr; }
    .interface-notice-panel>div { padding:10px 0; border-right:0; border-bottom:1px solid #edf1f6; }
    .interface-notice-panel>div:last-child { border-bottom:0; }
}

/* Deposit accounts - unified finance workspace */
.admin-deposit-accounts-body .app-main { background:#f5f7fb; }
.admin-deposit-accounts-body .page-body { padding:16px; }
.admin-deposit-accounts-body .page-body>.card { padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
.deposit-account-page {
    min-height:calc(100vh - 92px); display:grid;
    grid-template-rows:auto auto auto auto minmax(0,1fr); gap:13px; color:#17233a;
}
.deposit-account-toolbar {
    min-height:68px; padding:13px 16px; display:flex; align-items:center; justify-content:space-between; gap:18px;
    border:1px solid #e5ebf4; border-radius:14px; background:#fff;
}
.deposit-account-toolbar h1 { margin:0; color:#17233a; font-size:18px; }
.deposit-account-toolbar p { margin:5px 0 0; color:#7a879b; font-size:11px; }
.deposit-account-toolbar .toolbar-actions { display:flex; gap:9px; }
.deposit-account-toolbar .button { width:auto; height:39px; padding:0 16px; border-radius:9px; font-size:11px; }
.deposit-account-toolbar .button.secondary { border-color:#d8e3f5; color:#345173; background:#fff; }
.deposit-account-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:13px; }
.deposit-account-stats article {
    min-height:111px; padding:12px 14px; display:block; overflow:hidden; position:relative;
    border:1px solid #e5ebf4; border-radius:13px; background:#fff;
}
.deposit-account-stats article::after {
    content:""; width:112px; height:142px; position:absolute; right:-26px; top:8px;
    border-radius:48% 0 0 0; background:#edf3ff; transform:rotate(13deg);
}
.deposit-account-stats .is-green::after { background:#e1f7ef; }
.deposit-account-stats .is-yellow::after { background:#fff6dd; }
.deposit-account-stats .is-violet::after { background:#f0edff; }
.deposit-account-stats i {
    width:30px; height:30px; display:block; position:relative; z-index:1; border:1px solid #d7e5ff;
    border-radius:8px; color:#3474f3; background:#eef4ff;
}
.deposit-account-stats i::before {
    content:"¥"; position:absolute; inset:5px; display:grid; place-items:center; border:1.5px solid currentColor;
    border-radius:50%; font-size:10px; font-style:normal; font-weight:800;
}
.deposit-account-stats .is-green i { color:#20a878; border-color:#cceee2; background:#eaf9f3; }
.deposit-account-stats .is-yellow i { color:#d79b29; border-color:#f2e1b8; background:#fff8e8; }
.deposit-account-stats .is-violet i { color:#7567e8; border-color:#ded8ff; background:#f1efff; }
.deposit-account-stats div { position:relative; z-index:1; }
.deposit-account-stats small { display:block; margin:8px 0 5px; color:#39475d; font-size:11px; }
.deposit-account-stats strong { display:flex; align-items:baseline; gap:3px; color:#17233a; font-size:19px; line-height:1; }
.deposit-account-stats strong b { color:#65758a; font-size:10px; font-weight:600; }
.deposit-account-stats em { display:block; margin-top:7px; color:#8b96a8; font-size:9.5px; font-style:normal; }
.admin-deposit-accounts-body .deposit-account-filter {
    margin:0; padding:11px 14px; display:grid;
    grid-template-columns:minmax(300px,1.5fr) minmax(180px,.8fr) minmax(190px,.9fr) auto;
    gap:12px; align-items:center; border:1px solid #e5ebf4; border-radius:14px; background:#fff;
}
.admin-deposit-accounts-body .deposit-account-filter>div { min-width:0; display:flex; align-items:center; gap:9px; }
.admin-deposit-accounts-body .deposit-account-filter label {
    flex:0 0 auto; margin:0; color:#435168; font-size:10.5px; font-weight:600; white-space:nowrap;
}
.admin-deposit-accounts-body .deposit-account-filter input,
.admin-deposit-accounts-body .deposit-account-filter select {
    min-width:0; width:100%; height:34px; padding:0 9px; border:1px solid #dbe4f0;
    border-radius:8px; color:#31405a; background:#fff; font-size:10.5px;
}
.admin-deposit-accounts-body .deposit-account-filter .filter-actions { justify-content:flex-end; }
.admin-deposit-accounts-body .deposit-account-filter .button {
    width:auto; height:34px; padding:0 15px; border-radius:8px; font-size:10.5px;
}
.deposit-account-list-head {
    min-height:40px; padding:0 14px; display:flex; align-items:center; justify-content:space-between;
    border:1px solid #e5ebf4; border-radius:10px; background:#fff;
}
.deposit-account-list-head>div { display:flex; align-items:baseline; gap:9px; }
.deposit-account-list-head strong { color:#25334a; font-size:11px; }
.deposit-account-list-head span { color:#8b96a8; font-size:9.5px; }
.admin-deposit-accounts-body .deposit-account-table-wrap {
    height:100%; min-height:300px; padding:11px; overflow:auto; align-self:stretch;
    border:1px solid #e5ebf4; border-radius:14px; background:#fff;
}
.admin-deposit-accounts-body .deposit-account-table {
    min-width:1320px; border:1px solid #e5ebf4; border-collapse:separate; border-spacing:0;
}
.admin-deposit-accounts-body .deposit-account-table th {
    height:42px; padding:0 11px; color:#64748b; background:#f5f8fc; border-bottom:1px solid #e5ebf4;
    font-size:10.5px; font-weight:600; text-align:center;
}
.admin-deposit-accounts-body .deposit-account-table td {
    height:66px; padding:9px 11px; color:#25334a; border-bottom:1px solid #edf1f6;
    font-size:10.5px; text-align:center;
}
.admin-deposit-accounts-body .deposit-account-table tbody tr:hover { background:#fafcff; }
.admin-deposit-accounts-body .deposit-account-table code {
    padding:4px 7px; border:1px solid #d7e4ff; border-radius:5px; color:#3971e9;
    background:#edf3ff; font-size:9.5px;
}
.deposit-dealer-cell { min-width:190px; display:flex; align-items:center; gap:9px; text-align:left; }
.deposit-dealer-cell>span {
    width:34px; height:34px; display:grid; place-items:center; flex:0 0 34px; border-radius:9px;
    color:#3474f3; background:linear-gradient(145deg,#edf4ff,#dce9ff); font-size:12px; font-weight:800;
}
.deposit-dealer-cell div,.deposit-stack,.deposit-balance,.deposit-metric {
    display:flex; flex-direction:column; gap:4px;
}
.deposit-dealer-cell strong,.deposit-stack strong { color:#26354c; font-size:10.5px; }
.deposit-dealer-cell small,.deposit-stack span,.deposit-balance span,.deposit-metric span { color:#8b96a8; font-size:9px; }
.deposit-balance strong { color:#18845e; font-size:12px; }
.deposit-metric { align-items:center; }
.deposit-metric strong { color:#26354c; font-size:14px; }
.admin-deposit-accounts-body .deposit-account-table .status-badge { padding:3px 8px; font-size:9px; }
.deposit-row-actions { display:flex; justify-content:center; gap:9px; white-space:nowrap; }
.deposit-row-actions a { font-size:9.5px; }
.deposit-row-actions a:first-child { color:#3474f3; }
.admin-deposit-accounts-body .deposit-account-table .empty-cell { height:150px; color:#8b96a8; text-align:center; }
@media (max-width:980px) {
    .admin-deposit-accounts-body .deposit-account-filter { grid-template-columns:repeat(2,minmax(220px,1fr)); }
    .admin-deposit-accounts-body .deposit-account-filter .filter-actions { grid-column:1/-1; }
}
@media (max-width:760px) {
    .admin-deposit-accounts-body .page-body { padding:10px; }
    .deposit-account-page { min-height:auto; }
    .deposit-account-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .deposit-account-toolbar { align-items:flex-start; flex-direction:column; gap:12px; }
    .admin-deposit-accounts-body .deposit-account-filter { grid-template-columns:1fr; }
    .admin-deposit-accounts-body .deposit-account-filter .filter-actions { grid-column:auto; }
}

/* Deposit ledgers - real empty-state finance workspace */
.admin-deposit-ledgers-body .app-main { background:#f5f7fb; }
.admin-deposit-ledgers-body .page-body { padding:16px; }
.admin-deposit-ledgers-body .page-body>.card { padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
.deposit-ledger-page {
    min-height:calc(100vh - 92px); display:flex; flex-direction:column; gap:13px; color:#17233a;
}
.deposit-ledger-toolbar {
    min-height:68px; padding:13px 16px; display:flex; align-items:center; justify-content:space-between; gap:18px;
    border:1px solid #e5ebf4; border-radius:14px; background:#fff;
}
.deposit-ledger-toolbar h1 { margin:0; color:#17233a; font-size:18px; }
.deposit-ledger-toolbar p { margin:5px 0 0; color:#7a879b; font-size:11px; }
.deposit-ledger-toolbar .toolbar-actions { display:flex; gap:9px; }
.deposit-ledger-toolbar .button { width:auto; height:39px; padding:0 16px; border-radius:9px; font-size:11px; }
.deposit-ledger-toolbar .button.secondary { border-color:#d8e3f5; color:#345173; background:#fff; }
.deposit-ledger-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:13px; }
.deposit-ledger-stats article {
    min-height:111px; padding:12px 14px; display:block; overflow:hidden; position:relative;
    border:1px solid #e5ebf4; border-radius:13px; background:#fff;
}
.deposit-ledger-stats article::after {
    content:""; width:112px; height:142px; position:absolute; right:-26px; top:8px;
    border-radius:48% 0 0 0; background:#edf3ff; transform:rotate(13deg);
}
.deposit-ledger-stats .is-green::after { background:#e1f7ef; }
.deposit-ledger-stats .is-yellow::after { background:#fff6dd; }
.deposit-ledger-stats .is-violet::after { background:#f0edff; }
.deposit-ledger-stats i {
    width:30px; height:30px; display:block; position:relative; z-index:1; border:1px solid #d7e5ff;
    border-radius:8px; color:#3474f3; background:#eef4ff;
}
.deposit-ledger-stats i::before {
    content:""; position:absolute; left:7px; top:7px; width:14px; height:14px;
    border:1.5px solid currentColor; border-radius:50%;
}
.deposit-ledger-stats i::after {
    content:"↕"; position:absolute; inset:0; display:grid; place-items:center; font-size:10px;
    font-style:normal; font-weight:800;
}
.deposit-ledger-stats .is-green i { color:#20a878; border-color:#cceee2; background:#eaf9f3; }
.deposit-ledger-stats .is-yellow i { color:#d79b29; border-color:#f2e1b8; background:#fff8e8; }
.deposit-ledger-stats .is-violet i { color:#7567e8; border-color:#ded8ff; background:#f1efff; }
.deposit-ledger-stats div { position:relative; z-index:1; }
.deposit-ledger-stats small { display:block; margin:8px 0 5px; color:#39475d; font-size:11px; }
.deposit-ledger-stats strong { display:flex; align-items:baseline; gap:3px; color:#17233a; font-size:19px; line-height:1; }
.deposit-ledger-stats strong b { color:#65758a; font-size:10px; font-weight:600; }
.deposit-ledger-stats em { display:block; margin-top:7px; color:#8b96a8; font-size:9.5px; font-style:normal; }
.deposit-ledger-context {
    min-height:44px; padding:7px 13px; display:flex; align-items:center; gap:10px;
    border:1px solid #cfe0fa; border-radius:10px; color:#526987; background:#eff6ff; font-size:10px;
}
.deposit-ledger-context>span { color:#7d91ac; }
.deposit-ledger-context strong { color:#254f86; font-size:11px; }
.deposit-ledger-context em { padding:3px 6px; border-radius:4px; background:#fff; font-style:normal; }
.deposit-ledger-context b { margin-left:auto; color:#18845e; }
.deposit-ledger-context a { margin-left:6px; color:#3474f3; }
.admin-deposit-ledgers-body .deposit-ledger-filter {
    margin:0; padding:11px 14px; display:grid;
    grid-template-columns:minmax(260px,1.3fr) minmax(160px,.7fr) minmax(170px,.8fr) minmax(170px,.8fr) auto;
    gap:12px; align-items:center; border:1px solid #e5ebf4; border-radius:14px; background:#fff;
}
.admin-deposit-ledgers-body .deposit-ledger-filter>div { min-width:0; display:flex; align-items:center; gap:9px; }
.admin-deposit-ledgers-body .deposit-ledger-filter label {
    flex:0 0 auto; margin:0; color:#435168; font-size:10.5px; font-weight:600; white-space:nowrap;
}
.admin-deposit-ledgers-body .deposit-ledger-filter input,
.admin-deposit-ledgers-body .deposit-ledger-filter select {
    min-width:0; width:100%; height:34px; padding:0 9px; border:1px solid #dbe4f0;
    border-radius:8px; color:#31405a; background:#fff; font-size:10.5px;
}
.admin-deposit-ledgers-body .deposit-ledger-filter .filter-actions { justify-content:flex-end; }
.admin-deposit-ledgers-body .deposit-ledger-filter .button {
    width:auto; height:34px; padding:0 15px; border-radius:8px; font-size:10.5px;
}
.deposit-ledger-list-head {
    min-height:40px; padding:0 14px; display:flex; align-items:center; justify-content:space-between;
    border:1px solid #e5ebf4; border-radius:10px; background:#fff;
}
.deposit-ledger-list-head>div { display:flex; align-items:baseline; gap:9px; }
.deposit-ledger-list-head strong { color:#25334a; font-size:11px; }
.deposit-ledger-list-head span { color:#8b96a8; font-size:9.5px; }
.admin-deposit-ledgers-body .deposit-ledger-table-wrap {
    min-height:300px; padding:11px; overflow:auto; flex:1 1 auto;
    border:1px solid #e5ebf4; border-radius:14px; background:#fff;
}
.admin-deposit-ledgers-body .deposit-ledger-table {
    min-width:1350px; border:1px solid #e5ebf4; border-collapse:separate; border-spacing:0;
}
.admin-deposit-ledgers-body .deposit-ledger-table th {
    height:42px; padding:0 11px; color:#64748b; background:#f5f8fc; border-bottom:1px solid #e5ebf4;
    font-size:10.5px; font-weight:600; text-align:center;
}
.admin-deposit-ledgers-body .deposit-ledger-table td { padding:0; border-bottom:0; }
.deposit-ledger-empty {
    min-height:260px; display:flex; align-items:center; justify-content:center; flex-direction:column;
    color:#8b96a8; text-align:center;
}
.deposit-ledger-empty>i {
    width:48px; height:48px; display:grid; place-items:center; margin-bottom:12px;
    border:1px solid #d7e4f5; border-radius:14px; color:#6b8fc7; background:#edf4ff;
    font-size:18px; font-style:normal; font-weight:700;
}
.deposit-ledger-empty strong { color:#435168; font-size:13px; }
.deposit-ledger-empty p { max-width:520px; margin:7px 0 15px; color:#8b96a8; font-size:10px; line-height:1.65; }
.deposit-ledger-empty>div { display:flex; gap:8px; }
.deposit-ledger-empty .button { width:auto; height:34px; padding:0 14px; border-radius:8px; font-size:10px; }
@media (max-width:1100px) {
    .admin-deposit-ledgers-body .deposit-ledger-filter { grid-template-columns:repeat(2,minmax(220px,1fr)); }
    .admin-deposit-ledgers-body .deposit-ledger-filter .filter-actions { grid-column:1/-1; }
}
@media (max-width:760px) {
    .admin-deposit-ledgers-body .page-body { padding:10px; }
    .deposit-ledger-page { min-height:auto; }
    .deposit-ledger-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .deposit-ledger-toolbar { align-items:flex-start; flex-direction:column; gap:12px; }
    .deposit-ledger-context { align-items:flex-start; flex-wrap:wrap; }
    .deposit-ledger-context b { margin-left:0; }
    .admin-deposit-ledgers-body .deposit-ledger-filter { grid-template-columns:1fr; }
    .admin-deposit-ledgers-body .deposit-ledger-filter .filter-actions { grid-column:auto; }
}

.warranty-project-cell {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 220px;
}

.warranty-color-mark {
    width: 10px;
    height: 10px;
    flex: 0 0 auto;
    border-radius: 50%;
    background: #0ea5e9;
    box-shadow: 0 0 0 5px #e0f2fe;
}

.type-badge {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 0 9px;
    border-radius: 999px;
    font-size: 12px;
    white-space: nowrap;
}

.type-badge.adhesive {
    color: #9a3412;
    background: #ffedd5;
}

.type-badge.waterproof {
    color: #075985;
    background: #e0f2fe;
}

.warranty-scope-text {
    display: block;
    max-width: 220px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.warranty-requirement-box {
    display: grid;
    gap: 5px;
    margin: 4px 0 18px;
    padding: 12px 14px;
    border: 1px solid #bae6fd;
    background: #f0f9ff;
    color: #075985;
}

.warranty-requirement-box span {
    font-size: 13px;
}

.warranty-flow-options {
    display: grid;
    gap: 12px;
    margin-bottom: 20px;
}

.warranty-flow-options label {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 0;
    padding: 11px 12px;
    border: 1px solid var(--line);
    background: #f8fafc;
    cursor: pointer;
}

.warranty-flow-options input {
    width: auto;
    margin: 0;
}

.warranty-actions {
    min-width: 184px;
}

.warranty-actions .more-actions > summary {
    display: inline-block;
    margin-right: 0;
    color: #0b65c2;
    cursor: pointer;
    list-style: none;
}

.warranty-actions .more-actions > summary::-webkit-details-marker {
    display: none;
}

.warranty-actions .more-actions[open] .more-menu {
    display: grid;
}

.warranty-delete-message {
    margin: 0 0 20px;
    color: #475569;
    line-height: 1.7;
}

.warranty-delete-dialog .category-modal-actions {
    margin-top: 0;
}

.portal-list {
    list-style: none;
    padding: 0;
    margin: 16px 0 0;
    display: grid;
    gap: 10px;
    max-width: 420px;
}

.entry-system-brand {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 8px;
}

.entry-system-brand .system-logo { width: 180px; }
.entry-system-brand span { color: var(--muted); font-size: 14px; }

.portal-list li {
    margin: 0;
}

.portal-list a {
    display: flex;
    align-items: center;
    min-height: 42px;
    padding: 0 14px;
    border: 1px solid var(--line-strong);
    background: #fff;
    border-radius: var(--radius);
    font-weight: 600;
}

code {
    color: #1f2937;
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
    border-radius: 4px;
    padding: 2px 6px;
    font-size: 13px;
}

.auth-page {
    min-height: 100vh;
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(420px, 0.55fr);
    background:
        radial-gradient(circle at 38% 86%, rgba(251, 191, 36, 0.18), transparent 28%),
        linear-gradient(90deg, #fff8ea 0%, #fffaf0 60%, #ffffff 60%, #ffffff 100%);
}

.auth-hero {
    position: relative;
    min-height: 100vh;
    padding: 30px 56px;
    overflow: hidden;
}

.auth-brand {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: #111827;
}

.auth-system-logo { width: 180px; }

.auth-brand .brand-mark {
    width: 46px;
    height: 46px;
    border-radius: 14px;
    color: #fff;
    background: linear-gradient(135deg, #f59e0b, #ff7a18);
    box-shadow: 0 12px 28px rgba(245, 158, 11, 0.24);
}

.auth-brand strong {
    font-size: 28px;
    letter-spacing: 0.02em;
}

.auth-brand span {
    color: #7c5a18;
}

.auth-visual {
    position: absolute;
    left: 26%;
    top: 42%;
    width: 520px;
    height: 260px;
    transform: translate(-10%, -30%);
}

.visual-window,
.visual-chart {
    position: absolute;
    background: rgba(255, 255, 255, 0.94);
    border-radius: 20px;
    box-shadow: 0 26px 70px rgba(120, 83, 20, 0.12);
}

.visual-window {
    left: 0;
    top: 18px;
    width: 380px;
    height: 196px;
    padding: 52px 28px 26px;
}

.visual-window span {
    position: absolute;
    top: 18px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
}

.visual-window span:nth-child(1) {
    left: 18px;
    background: #fb7185;
}

.visual-window span:nth-child(2) {
    left: 36px;
    background: #fbbf24;
}

.visual-window span:nth-child(3) {
    left: 54px;
    background: #34d399;
}

.visual-window i,
.visual-chart::before {
    display: block;
    height: 10px;
    border-radius: 999px;
    background: #e8eef7;
    content: "";
}

.visual-window .line-one {
    width: 88px;
    background: #ffc76b;
}

.visual-window .line-two {
    width: 174px;
    margin-top: 22px;
}

.visual-window .line-three {
    width: 128px;
    margin-top: 16px;
}

.visual-block {
    position: absolute;
    right: 28px;
    bottom: 26px;
    width: 86px;
    height: 92px;
    border-radius: 18px;
    background: linear-gradient(180deg, #ffc15a, #ff8b1a);
}

.visual-chart {
    right: 18px;
    bottom: 0;
    width: 146px;
    height: 148px;
    padding: 38px 18px 20px;
}

.visual-chart::before {
    width: 72px;
    margin-bottom: 36px;
}

.visual-chart i {
    display: inline-block;
    width: 18px;
    margin-right: 10px;
    vertical-align: bottom;
    border-radius: 999px;
    background: linear-gradient(180deg, #ffc15a, #ff8b1a);
}

.visual-chart i:nth-child(1) {
    height: 38px;
}

.visual-chart i:nth-child(2) {
    height: 68px;
}

.visual-chart i:nth-child(3) {
    height: 52px;
}

.auth-hero-copy {
    position: absolute;
    left: 56px;
    bottom: 52px;
    max-width: 420px;
    color: #47340d;
}

.auth-hero-copy h2 {
    margin: 0 0 10px;
    font-size: 26px;
}

.auth-hero-copy p {
    margin: 0;
    line-height: 1.8;
    color: #7c5a18;
}

.auth-panel {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px 64px;
    background: #fff;
}

.auth-card {
    width: min(360px, 100%);
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.auth-title {
    margin-bottom: 24px;
}

.auth-title span {
    display: inline-flex;
    margin-bottom: 10px;
    color: #f97316;
    font-size: 13px;
    font-weight: 700;
}

.auth-title h1 {
    margin: 0;
    font-size: 28px;
    color: #0f2742;
}

.auth-title p {
    margin: 10px 0 0;
    color: #7a8494;
}

.auth-card .entry-hint,
.auth-card .auth-hint {
    margin: -10px 0 18px;
    color: #7a8494;
}

.auth-card .form-row {
    margin-bottom: 14px;
}

.auth-card label {
    color: #5f6978;
}

.auth-card input {
    min-height: 58px;
    padding: 0 16px;
    border-color: #f1d6ad;
    border-radius: 12px;
    background: #fffdf9;
}

.auth-card input:focus-visible {
    border-color: #ff9f2e;
    box-shadow: 0 0 0 4px rgba(245, 158, 11, 0.14);
}

.auth-card .button {
    width: 100%;
    min-height: 52px;
    margin-top: 4px;
    border-radius: 12px;
    background: linear-gradient(90deg, #f59e0b, #ff7a18);
    box-shadow: 0 16px 30px rgba(249, 115, 22, 0.2);
}

.auth-card .button:hover {
    background: linear-gradient(90deg, #e58e05, #f36f0d);
}

.auth-links {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-top: 14px;
    color: #7a8494;
    font-size: 13px;
}

.auth-links a {
    color: #f97316;
    font-weight: 600;
}

.checkbox-row label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 500;
    cursor: pointer;
}

.checkbox-row input[type="checkbox"] {
    width: auto;
    margin: 0;
}

strong {
    color: #111827;
}

.layout {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px 16px;
}

.content {
    width: min(760px, calc(100% - 32px));
    margin: 0 auto;
}

@media (max-width: 1040px) {
    .app-shell {
        grid-template-columns: 148px minmax(0, 1fr);
    }

    .app-shell.has-subsidebar {
        grid-template-columns: 148px 124px minmax(0, 1fr);
    }

    .member-filter {
        grid-template-columns: repeat(2, minmax(240px, 1fr));
    }

    .dealer-filter {
        grid-template-columns: repeat(2, minmax(240px, 1fr));
    }

    .dealer-business-filter {
        grid-template-columns: repeat(2, minmax(220px, 1fr));
    }

    .worker-business-filter {
        grid-template-columns: repeat(2, minmax(220px, 1fr));
    }

    .terminal-business-filter {
        grid-template-columns: repeat(2, minmax(220px, 1fr));
    }

    .category-filter-bar {
        grid-template-columns: repeat(2, minmax(220px, 1fr));
    }

    .product-business-filter {
        grid-template-columns: repeat(2, minmax(220px, 1fr));
    }

    .warranty-business-filter {
        grid-template-columns: repeat(2, minmax(220px, 1fr));
    }

    .member-filter > div:not(.filter-actions),
    .dealer-filter > div:not(.filter-actions) {
        align-items: flex-start;
        flex-direction: column;
        gap: 6px;
    }

    .member-filter label,
    .dealer-filter label {
        margin-bottom: 0;
    }
}

@media (max-width: 760px) {
    .app-shell {
        display: block;
    }

    .app-sidebar {
        min-height: auto;
        position: static;
    }

    .app-subsidebar {
        width: auto;
        min-height: auto;
        padding-top: 0;
        position: static;
        border-right: 0;
        border-bottom: 1px solid var(--line);
    }

    .subsidebar-title {
        display: none;
    }

    .sub-nav {
        display: flex;
        gap: 8px;
        overflow-x: auto;
        padding: 10px 12px;
    }

    .sub-link {
        height: 34px;
        line-height: 34px;
        border: 1px solid var(--line);
        border-radius: 4px;
        padding: 0 12px;
        white-space: nowrap;
    }

    .sub-link.active {
        border-color: var(--primary);
    }

    .sidebar-brand {
        height: 58px;
    }

    .sidebar-nav {
        display: flex;
        gap: 8px;
        overflow-x: auto;
        padding: 10px 12px;
    }

    .sidebar-link {
        height: 36px;
        min-width: max-content;
        border-left: 0;
        border-radius: 4px;
        padding: 0 12px;
        background: rgba(255, 255, 255, 0.12);
    }

    .sidebar-link.active {
        border-left: 0;
        background: rgba(0, 0, 0, 0.18);
    }

    .app-topbar {
        position: static;
        height: auto;
        padding: 10px 12px;
        align-items: flex-start;
        flex-direction: column;
    }

    .topbar-right {
        width: 100%;
        justify-content: space-between;
        flex-wrap: wrap;
    }

    .page-body {
        padding: 14px;
    }

    .page-heading {
        min-height: auto;
        margin-bottom: 10px;
    }

    .page-heading h1 {
        font-size: 20px;
    }

    .card {
        padding: 14px;
    }

    .filter-bar {
        grid-template-columns: 1fr;
        padding: 12px;
    }

    .category-toolbar,
    .category-list-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .category-toolbar .toolbar-actions,
    .category-filter-actions {
        width: 100%;
    }

    .category-toolbar .button,
    .category-filter-actions .button {
        flex: 1;
    }

    .category-filter-bar {
        grid-template-columns: 1fr;
    }

    .category-management-page {
        min-height: auto;
        grid-template-rows: none;
    }

    .product-management-page {
        min-height: auto;
        grid-template-rows: none;
    }

    .warranty-management-page {
        min-height: auto;
        grid-template-rows: none;
    }

    .product-business-filter {
        grid-template-columns: 1fr;
    }

    .product-toolbar,
    .product-list-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .product-toolbar .toolbar-actions {
        width: 100%;
    }

    .product-toolbar .button {
        flex: 1;
    }

    .warranty-business-filter {
        grid-template-columns: 1fr;
    }

    .warranty-toolbar,
    .warranty-list-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .warranty-toolbar .toolbar-actions {
        width: 100%;
    }

    .warranty-toolbar .button {
        flex: 1;
    }

    .product-form-layout {
        grid-template-columns: 1fr;
    }

    .product-detail-editor-section {
        grid-column: auto;
    }

    .product-section-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .product-detail-preview-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .category-form-grid {
        grid-template-columns: 1fr;
    }

    .category-detail-grid {
        grid-template-columns: 1fr;
    }

    .category-modal {
        padding: 12px;
    }

    .category-modal-dialog {
        max-height: calc(100vh - 24px);
        padding: 16px;
    }

    .dealer-management-page {
        min-height: auto;
        grid-template-rows: none;
    }

    .worker-management-page,
    .terminal-management-page {
        min-height: auto;
        grid-template-rows: none;
    }

    .settings-tabs a,
    .button {
        width: 100%;
    }
}

@media (max-width: 960px) {
    .auth-page {
        display: block;
        background: #fff8ea;
    }

    .auth-hero {
        min-height: auto;
        padding: 24px;
    }

    .auth-brand {
        align-items: flex-start;
        flex-direction: column;
        gap: 10px;
    }

    .auth-system-logo { width: 164px; }
    .auth-brand strong { font-size: 21px; }

    .auth-visual,
    .auth-hero-copy {
        display: none;
    }

    .auth-panel {
        min-height: auto;
        padding: 24px;
        background: transparent;
    }

    .auth-card {
        box-sizing: border-box;
        width: min(420px, 100%);
        margin: 0 auto;
        padding: 22px;
        border: 1px solid #f5dfbd;
        border-radius: 18px;
        background: #fff;
        box-shadow: 0 20px 50px rgba(120, 83, 20, 0.08);
    }
}

@media (max-width: 480px) {
    .auth-hero { padding: 20px 22px; }
    .auth-panel { padding: 16px; }
    .auth-card { padding: 20px; }
    .auth-links { align-items: flex-start; flex-wrap: wrap; }
    .entry-system-brand { align-items: flex-start; flex-direction: column; gap: 7px; }
    .entry-system-brand .system-logo { width: 160px; }
}

@media (max-width: 760px) {
    .app-shell.role-worker {
        min-height: 100vh;
        padding-bottom: calc(68px + env(safe-area-inset-bottom));
        background: #f2f6fa;
    }

    .role-worker .app-sidebar {
        position: fixed;
        top: auto;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 100;
        width: 100%;
        min-height: 0;
        color: #6b7489;
        border-top: 1px solid #e6ebf3;
        background: rgba(255,255,255,.97);
        box-shadow: 0 -8px 24px rgba(44,74,120,.11);
        backdrop-filter: blur(10px);
    }

    .role-worker .sidebar-brand { display: none; }

    .role-worker .sidebar-nav {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 0;
        overflow: visible;
        padding: 5px 6px calc(5px + env(safe-area-inset-bottom));
    }

    .role-worker .sidebar-link {
        display: flex;
        min-width: 0;
        height: 56px;
        padding: 4px 2px;
        align-items: center;
        justify-content: center;
        flex-direction: column;
        gap: 3px;
        color: #6e778c;
        border: 0;
        border-radius: 7px;
        background: transparent;
        font-size: 11px;
    }

    .role-worker .sidebar-link .nav-icon {
        position: relative;
        width: 24px;
        height: 24px;
        color: inherit;
        background: transparent;
        font-size: 0;
    }

    .role-worker .sidebar-link > span:last-child { font-size: 0; }
    .role-worker .sidebar-link > span:last-child::after { font-size: 11px; }
    .role-worker .sidebar-link:nth-child(1) > span:last-child::after { content:"工作台"; }
    .role-worker .sidebar-link:nth-child(2) > span:last-child::after { content:"任务中心"; }
    .role-worker .sidebar-link:nth-child(3) > span:last-child::after { content:"施工记录"; }
    .role-worker .sidebar-link:nth-child(4) > span:last-child::after { content:"个人中心"; }
    .role-worker .sidebar-link:nth-child(1) .nav-icon::before { content:""; position:absolute; top:3px; left:3px; width:8px; height:8px; border-radius:3px; background:currentColor; box-shadow:10px 0 currentColor,0 10px currentColor,10px 10px currentColor; }
    .role-worker .sidebar-link:nth-child(2) .nav-icon::before { content:""; position:absolute; inset:3px 4px 2px; border:2px solid currentColor; border-radius:3px; }
    .role-worker .sidebar-link:nth-child(2) .nav-icon::after { content:""; position:absolute; top:1px; left:8px; width:8px; height:5px; border:2px solid currentColor; border-radius:3px; background:#fff; }
    .role-worker .sidebar-link:nth-child(3) .nav-icon::before { content:""; position:absolute; inset:2px 4px; border:2px solid currentColor; border-radius:3px; }
    .role-worker .sidebar-link:nth-child(3) .nav-icon::after { content:""; position:absolute; top:8px; left:8px; width:9px; height:2px; background:currentColor; box-shadow:0 5px currentColor; }
    .role-worker .sidebar-link:nth-child(4) .nav-icon::before { content:""; position:absolute; top:1px; left:8px; width:9px; height:9px; border:2px solid currentColor; border-radius:50%; box-sizing:border-box; }
    .role-worker .sidebar-link:nth-child(4) .nav-icon::after { content:""; position:absolute; bottom:1px; left:4px; width:17px; height:10px; border:2px solid currentColor; border-radius:10px 10px 3px 3px; box-sizing:border-box; }

    .role-worker .sidebar-link.active {
        color: #1267ef;
        border: 0;
        background: #f3f7ff;
    }

    .role-worker .app-topbar {
        position: sticky;
        top: 0;
        z-index: 40;
        min-height: 50px;
        padding: 8px 12px;
        align-items: center;
        justify-content: space-between;
        flex-direction: row;
        background: rgba(255,255,255,.96);
        box-shadow: 0 1px 8px rgba(15,23,42,.08);
        backdrop-filter: blur(8px);
    }

    .role-worker .topbar-left { font-weight: 700; }
    .role-worker .topbar-mobile-logo { display: block; width: 78px; flex: 0 0 auto; }
    .role-worker .menu-glyph { display: none; }
    .role-worker .topbar-right { width: auto; flex-wrap: nowrap; justify-content: flex-end; gap: 10px; }
    .role-worker .topbar-right > a:first-child { display: none; }
    .role-worker .user-chip { min-width: 0; }
    .role-worker .user-chip > span:last-child { display: block; max-width: 125px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .role-worker .avatar-dot { width: 28px; height: 28px; }

    .worker-dashboard-body .role-worker .app-topbar { display: none; }
    .worker-mobile-home-header {
        position: fixed;
        top: 0;
        right: 0;
        left: 0;
        z-index: 90;
        display: flex;
        height: calc(60px + env(safe-area-inset-top));
        padding-top: env(safe-area-inset-top);
        align-items: center;
        justify-content: center;
        box-sizing: border-box;
        border-bottom: 1px solid rgba(218,227,239,.82);
        background: rgba(247,250,254,.96);
        box-shadow: 0 4px 14px rgba(32,67,115,.06);
        backdrop-filter: blur(12px);
    }
    .worker-mobile-home-header h1 { margin:0; color:#10264b; font-size:22px; }
    .worker-mobile-home-header > a { position:absolute; right:12px; top:calc(14px + env(safe-area-inset-top)); width:32px; height:32px; color:#13264a; }
    .worker-mobile-home-header > a i { position:absolute; left:7px; top:7px; width:18px; height:18px; border:2px solid currentColor; border-radius:10px 10px 5px 5px; box-sizing:border-box; }
    .worker-mobile-home-header > a i::before { content:""; position:absolute; top:-6px; left:6px; width:3px; height:6px; border-radius:3px; background:currentColor; }
    .worker-mobile-home-header > a i::after { content:""; position:absolute; right:3px; bottom:-5px; left:3px; height:2px; border-radius:2px; background:currentColor; }
    .worker-mobile-home-header > a > span { position:absolute; top:1px; right:2px; width:8px; height:8px; border:2px solid #fff; border-radius:50%; background:#f04444; }

    .role-worker .page-body { padding: 10px 10px 14px; }
    .worker-dashboard-body .role-worker .page-body { padding-top: calc(70px + env(safe-area-inset-top)); }
    .role-worker .page-body > .card { padding: 0; border: 0; background: transparent; box-shadow: none; }
    .role-worker .worker-portal-page { gap: 10px; }

    .role-worker .worker-welcome-panel {
        position: relative;
        min-height: 222px;
        align-items: flex-start;
        justify-content: flex-start;
        gap: 8px;
        overflow: hidden;
        box-sizing: border-box;
        padding: 25px 20px;
        border-radius: 16px;
        background: linear-gradient(125deg,#0874f7,#1473ec 58%,#67a5ff);
        box-shadow: 0 13px 27px rgba(20,92,218,.2);
    }

    .role-worker .worker-welcome-panel > div:first-child { position:relative; z-index:3; width:64%; }
    .role-worker .worker-welcome-panel > div:first-child > span { display:none; }
    .role-worker .worker-welcome-panel h2 { margin: 5px 0 8px; color:#fff; font-size:27px; line-height:1.2; }
    .role-worker .worker-welcome-panel p { color:rgba(255,255,255,.9); font-size:13px; line-height:1.65; }
    .role-worker .worker-welcome-status { position:absolute; left:20px; bottom:22px; z-index:4; display:flex; width:auto; align-items:center; }
    .role-worker .worker-welcome-status .status-badge { padding:7px 12px; color:#109a8f; border:0; background:#ecfff9; font-size:14px; }
    .role-worker .worker-welcome-status small { display:none; }
    .worker-home-hero-art { position:absolute; right:-3px; bottom:7px; z-index:2; display:block; width:155px; height:177px; }
    .worker-hero-clipboard { position:absolute; right:5px; top:2px; width:92px; height:132px; padding:35px 13px 10px; border:4px solid rgba(255,255,255,.8); border-radius:10px; box-sizing:border-box; background:linear-gradient(145deg,#fff,#cde0ff); transform:rotate(3deg); box-shadow:0 9px 20px rgba(0,60,164,.2); }
    .worker-hero-clipboard::before { content:""; position:absolute; top:-10px; left:22px; width:48px; height:22px; border:3px solid #d9e8ff; border-radius:5px; background:#fff; }
    .worker-hero-clipboard i { display:block; width:54px; height:8px; border-radius:6px; background:#b9d1f5; }
    .worker-hero-clipboard span { display:block; width:55px; height:6px; margin-top:12px; border-radius:5px; background:#bdd3f4; }
    .worker-hero-clipboard span:nth-of-type(2){width:42px}.worker-hero-clipboard span:nth-of-type(3){width:49px}
    .worker-hero-shield { position:absolute; left:0; bottom:21px; width:92px; height:106px; display:flex; align-items:center; justify-content:center; clip-path:polygon(50% 0,95% 18%,86% 78%,50% 100%,14% 78%,5% 18%); color:#fff; background:linear-gradient(145deg,#94c0ff,#1268ef 60%,#0144c1); filter:drop-shadow(0 9px 8px rgba(0,53,151,.28)); font-size:43px; font-weight:800; }
    .worker-hero-platform { position:absolute; right:0; bottom:0; width:140px; height:25px; border-radius:50%; background:linear-gradient(180deg,#fff,#b8d3ff); box-shadow:0 6px 14px rgba(0,58,158,.2); }

    .role-worker .dealer-alert { align-items: flex-start; flex-direction: column; gap: 5px; padding: 12px; }
    .worker-dashboard-body .worker-dashboard-stats { grid-template-columns:repeat(6,minmax(0,1fr)); gap:9px; }
    .worker-dashboard-body .worker-dashboard-stats a { grid-column:span 2; grid-template-columns:36px minmax(0,1fr); grid-template-rows:auto auto auto; gap:3px 7px; min-height:132px; padding:13px 10px; border-radius:13px; box-sizing:border-box; box-shadow:0 7px 18px rgba(42,77,129,.07); }
    .worker-dashboard-body .worker-dashboard-stats a:nth-child(4),
    .worker-dashboard-body .worker-dashboard-stats a:nth-child(5) { grid-column:span 3; }
    .worker-dashboard-body .worker-dashboard-stats .worker-stat-icon { grid-row:1 / 3; display:inline-flex; width:36px; height:36px; border-radius:50%; background:#e8f2ff; }
    .worker-dashboard-body .worker-dashboard-stats .worker-stat-icon::before { margin:auto; color:#1469ee; font-style:normal; font-weight:800; }
    .worker-dashboard-body .worker-stat-icon.assigned::before { content:"▣"; font-size:20px; }
    .worker-dashboard-body .worker-stat-icon.processing::before { content:"●"; font-size:17px; }
    .worker-dashboard-body .worker-stat-icon.review { background:#fff2df; }
    .worker-dashboard-body .worker-stat-icon.review::before { content:"◷"; color:#f59a1b; font-size:22px; }
    .worker-dashboard-body .worker-stat-icon.completed { background:#e5f9ef; }
    .worker-dashboard-body .worker-stat-icon.completed::before { content:"✓"; color:#19ac65; font-size:21px; }
    .worker-dashboard-body .worker-stat-icon.total { background:#f0eaff; }
    .worker-dashboard-body .worker-stat-icon.total::before { content:"↗"; color:#7950e8; font-size:21px; }
    .worker-dashboard-body .worker-dashboard-stats span { align-self:end; font-size:13px; font-weight:700; }
    .worker-dashboard-body .worker-dashboard-stats strong { align-self:start; color:#0965e8; font-size:25px; }
    .worker-dashboard-body .worker-dashboard-stats small { grid-column:1 / -1; align-self:end; line-height:1.45; font-size:11px; }

    .role-worker .worker-dashboard-card,
    .role-worker .worker-task-progress,
    .role-worker .worker-task-action-card { padding: 14px; border-radius: 9px; }
    .role-worker .worker-card-heading { align-items: flex-start; margin-bottom: 10px; }

    .worker-dashboard-body .worker-dashboard-card { border-radius:14px; box-shadow:0 7px 20px rgba(37,70,119,.07); }

    .role-worker .worker-task-item {
        display: grid;
        grid-template-columns: 62px minmax(0,1fr);
        gap: 12px;
        margin-top: 9px;
        padding: 13px;
        border: 1px solid #e2e8f0;
        border-radius: 12px;
        background: #fbfdff;
    }
    .role-worker .worker-task-item:first-child { margin-top: 0; border-top: 1px solid #e2e8f0; }
    .role-worker .worker-task-building-icon { width:62px; height:62px; align-self:start; border-radius:12px; }
    .role-worker .worker-task-summary > strong { color:#10264b; font-size:14px; }
    .role-worker .worker-task-summary > span { margin-top:6px; padding-left:18px; position:relative; color:#58657c; }
    .role-worker .worker-task-summary > span:not(.worker-task-summary-footer)::before { position:absolute; left:0; top:-1px; color:#627089; }
    .role-worker .worker-task-summary .customer::before { content:"♙"; }
    .role-worker .worker-task-summary .product::before { content:"◇"; }
    .role-worker .worker-task-summary .address::before { content:"⌾"; }
    .role-worker .worker-task-summary-footer { margin-top:10px; padding-left:0 !important; }
    .role-worker .worker-task-summary-footer small { font-size:11px; }

    .role-worker .worker-task-tabs {
        flex-wrap: nowrap;
        overflow-x: auto;
        padding: 8px;
        scrollbar-width: none;
    }
    .role-worker .worker-task-tabs::-webkit-scrollbar { display: none; }
    .role-worker .worker-task-tabs a { min-width: max-content; padding: 8px 11px; }

    .role-worker .worker-task-filter { gap: 9px; padding: 12px; }
    .role-worker input,
    .role-worker select,
    .role-worker textarea { font-size: 16px; }
    .role-worker .button { min-height: 44px; }

    .role-worker .worker-task-table-wrap {
        height: auto;
        min-height: 0;
        overflow: visible;
        border: 0;
        background: transparent;
    }
    .role-worker .worker-tasks-page { min-height: auto; grid-template-rows: none; }
    .role-worker .worker-task-table,
    .role-worker .worker-task-table tbody,
    .role-worker .worker-task-table tr,
    .role-worker .worker-task-table td { display: block; width: 100%; min-width: 0; }
    .role-worker .worker-task-table { min-width: 0; border-collapse: separate; }
    .role-worker .worker-task-table thead { display: none; }
    .role-worker .worker-task-table tr {
        margin-bottom: 10px;
        padding: 8px 12px;
        overflow: hidden;
        border: 1px solid var(--line);
        border-radius: 9px;
        background: #fff;
        box-shadow: 0 4px 12px rgba(15,23,42,.04);
    }
    .role-worker .worker-task-table td {
        display: grid;
        grid-template-columns: 78px minmax(0, 1fr);
        gap: 10px;
        min-height: 0;
        padding: 9px 0;
        border: 0;
        border-top: 1px solid #edf1f4;
        white-space: normal;
        vertical-align: top;
    }
    .role-worker .worker-task-table td:first-child { border-top: 0; }
    .role-worker .worker-task-table td::before { content: attr(data-label); color: var(--muted); font-size: 12px; font-weight: 600; }
    .role-worker .worker-task-table td.empty-cell { display: block; padding: 28px 10px; text-align: center; }
    .role-worker .worker-task-table td.empty-cell::before { display: none; }
    .role-worker .worker-task-actions { display: grid; grid-template-columns: 78px minmax(0,1fr); white-space: normal; }
    .role-worker .worker-task-actions > span { display: none; }
    .role-worker .worker-task-actions > a,
    .role-worker .worker-task-actions > form { grid-column: 2; }
    .role-worker .worker-task-actions a,
    .role-worker .worker-task-actions form,
    .role-worker .worker-task-actions button { display: inline-flex; min-height: 36px; align-items: center; }
    .role-worker .worker-task-actions form { margin-top: 4px; }

    .role-worker .worker-record-header,
    .role-worker .worker-task-detail-toolbar { align-items: flex-start; flex-direction: column; }
    .role-worker .worker-record-header > span { align-self: flex-start; }
    .role-worker .worker-task-detail-toolbar > div:last-child { width: 100%; justify-content: space-between; }
    .role-worker .worker-task-detail-toolbar .button { width: auto; min-height: 38px; }

    .role-worker .worker-task-progress { overflow: hidden; }
    .role-worker .worker-progress-steps { grid-template-columns: repeat(5, 96px); padding-bottom: 7px; }
    .role-worker .worker-progress-steps > div { min-width: 96px; }
    .role-worker .worker-task-info-grid { grid-template-columns: 1fr; gap: 10px; }
    .role-worker .worker-profile-summary > div { grid-template-columns: 82px minmax(0,1fr); }
    .role-worker .worker-task-action-card { grid-template-columns: 1fr; gap: 14px; }
    .role-worker .worker-task-action-card form,
    .role-worker .worker-task-action-card .button { width: 100%; }
    .role-worker .worker-detail-products,
    .role-worker .worker-detail-products tbody,
    .role-worker .worker-detail-products tr,
    .role-worker .worker-detail-products td { display: block; width: 100%; min-width: 0; }
    .role-worker .worker-detail-products thead { display: none; }
    .role-worker .worker-detail-products tr { margin-bottom: 10px; padding: 8px 0; border-bottom: 1px solid var(--line); }
    .role-worker .worker-detail-products tr:last-child { margin-bottom: 0; border-bottom: 0; }
    .role-worker .worker-detail-products td { display: grid; grid-template-columns: 78px minmax(0,1fr); gap: 10px; padding: 8px 0; border: 0; }
    .role-worker .worker-detail-products td::before { content: attr(data-label); color: var(--muted); font-size: 12px; font-weight: 600; }
    .role-worker .worker-detail-products td.empty-cell { display: block; text-align: center; }
    .role-worker .worker-detail-products td.empty-cell::before { display: none; }

    .role-worker .worker-profile-grid { gap: 10px; }
    .role-worker .worker-profile-page .grid-2 { grid-template-columns: 1fr; }
    .role-worker .worker-profile-full { grid-column: auto; }

    /* Worker task center mobile UI */
    .worker-tasks-body .role-worker .app-topbar { display: none; }
    .worker-tasks-body .role-worker .page-body {
        padding: calc(82px + env(safe-area-inset-top)) 10px calc(82px + env(safe-area-inset-bottom));
        background: linear-gradient(180deg,#eaf3ff 0,#f4f7fb 240px,#f4f7fb 100%);
    }
    .worker-tasks-body .role-worker .page-body > .card { padding:0; border:0; background:transparent; box-shadow:none; }
    .worker-tasks-body .worker-tasks-page { gap:12px; }
    .worker-mobile-task-header {
        position:fixed;
        top:0;
        right:0;
        left:0;
        z-index:90;
        display:flex;
        height:calc(74px + env(safe-area-inset-top));
        padding-top:env(safe-area-inset-top);
        align-items:center;
        justify-content:center;
        box-sizing:border-box;
        color:#fff;
        background:linear-gradient(135deg,#0870ec,#1966e7 58%,#4d92f5);
        box-shadow:0 7px 22px rgba(15,91,214,.22);
    }
    .worker-mobile-task-header::after { content:""; position:absolute; right:-45px; bottom:-42px; width:190px; height:100px; border-radius:50%; background:rgba(255,255,255,.08); transform:rotate(-16deg); }
    .worker-mobile-task-header h1 { position:relative; z-index:1; margin:0; font-size:23px; letter-spacing:1px; }
    .worker-mobile-task-header > a { position:absolute; right:13px; bottom:17px; z-index:2; width:34px; height:34px; color:#fff; }
    .worker-mobile-task-header > a i::before { content:""; position:absolute; top:4px; left:5px; width:22px; height:22px; background:currentColor; clip-path:polygon(0 0,100% 0,64% 48%,64% 100%,42% 84%,42% 48%); }
    .worker-mobile-task-header > a i::after { content:""; position:absolute; right:1px; bottom:5px; width:8px; height:2px; border-radius:2px; background:currentColor; box-shadow:0 -5px currentColor; }

    .worker-tasks-body .worker-task-tabs {
        display:grid;
        grid-template-columns:repeat(4,minmax(0,1fr));
        gap:7px;
        overflow:visible;
        padding:12px;
        border:0;
        border-radius:16px;
        background:#fff;
        box-shadow:0 7px 22px rgba(35,77,139,.08);
    }
    .worker-tasks-body .worker-task-tabs a {
        min-width:0;
        min-height:42px;
        padding:5px 3px;
        justify-content:center;
        gap:4px;
        color:#1b2b49;
        border-color:#dfe6f0;
        border-radius:24px;
        box-sizing:border-box;
        font-size:13px;
        white-space:nowrap;
    }
    .worker-tasks-body .worker-task-tabs a span { min-width:19px; padding:1px 4px; color:#1465df; background:#f1f6ff; }
    .worker-tasks-body .worker-task-tabs a.active { color:#fff; border-color:#1269ec; background:linear-gradient(120deg,#0873f4,#0959df); box-shadow:0 6px 15px rgba(15,96,230,.22); }
    .worker-tasks-body .worker-task-tabs a.active span { color:#1263df; background:#fff; }

    .worker-tasks-body .worker-task-filter {
        display:grid;
        grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);
        gap:10px;
        padding:15px;
        border:0;
        border-radius:15px;
        background:#fff;
        box-shadow:0 7px 22px rgba(35,77,139,.07);
        scroll-margin-top:86px;
    }
    .worker-tasks-body .worker-task-filter > div { position:relative; grid-column:1 / -1; width:100%; min-width:0; }
    .worker-tasks-body .worker-task-filter label { display:block; margin-bottom:8px; color:#14233f; font-size:14px; font-weight:700; }
    .worker-tasks-body .worker-task-filter input { height:46px; padding:8px 12px 8px 41px; border-color:#dbe4f1; border-radius:8px; background:#fff; }
    .worker-tasks-body .worker-task-filter > div::before { content:""; position:absolute; bottom:14px; left:15px; z-index:1; width:13px; height:13px; border:2px solid #95a2b8; border-radius:50%; }
    .worker-tasks-body .worker-task-filter > div::after { content:""; position:absolute; bottom:12px; left:27px; z-index:1; width:7px; height:2px; background:#95a2b8; transform:rotate(45deg); }
    .worker-tasks-body .worker-task-filter .button { display:flex; width:100%; min-height:44px; align-items:center; justify-content:center; border-radius:7px; font-size:15px; font-weight:700; }
    .worker-tasks-body .worker-task-filter button.button { border-color:#0968ed; background:linear-gradient(115deg,#0875f5,#0759df); }
    .worker-tasks-body .worker-task-filter .button.secondary { color:#35425a; border-color:#dbe3ee; background:#fff; }

    .worker-tasks-body .worker-task-table-wrap { display:none; }
    .worker-mobile-task-list { display:grid; gap:12px; }
    .worker-mobile-task-card { overflow:hidden; padding:14px 14px 0; border:1px solid #e7edf5; border-radius:15px; background:#fff; box-shadow:0 7px 22px rgba(35,77,139,.07); }
    .worker-mobile-task-card-head { display:grid; grid-template-columns:42px minmax(0,1fr) auto; align-items:start; gap:10px; }
    .worker-mobile-task-no-icon { position:relative; display:inline-flex; width:38px; height:38px; border-radius:50%; background:#eaf2ff; }
    .worker-mobile-task-no-icon::before { content:""; width:17px; height:21px; margin:auto; border:2px solid #176bed; border-radius:3px; box-sizing:border-box; }
    .worker-mobile-task-no-icon::after { content:""; position:absolute; top:8px; left:15px; width:8px; height:2px; border-radius:2px; background:#176bed; box-shadow:0 5px #176bed,0 10px #176bed; }
    .worker-mobile-task-card-head h2 { margin:1px 0 4px; color:#0f1e3b; font-size:18px; line-height:1.25; }
    .worker-mobile-task-card-head p { margin:0; color:#718098; font-size:12px; }
    .worker-mobile-task-badges { display:flex; align-items:center; gap:7px; }
    .worker-priority-badge,
    .worker-state-badge { display:inline-flex; min-width:37px; min-height:28px; padding:3px 8px; align-items:center; justify-content:center; box-sizing:border-box; border:1px solid #aac8ff; border-radius:6px; color:#1765dd; background:#f4f8ff; font-size:13px; white-space:nowrap; }
    .worker-priority-badge.priority-high { color:#e52d2d; border-color:#ffb3b3; background:#fff5f4; }
    .worker-priority-badge.priority-low { color:#16885a; border-color:#a9e4cb; background:#f1fff8; }
    .worker-state-badge.state-assigned { color:#fff; border-color:#0d64e8; background:linear-gradient(115deg,#0873f4,#0759dc); }
    .worker-state-badge.state-processing { color:#fff; border-color:#10a66a; background:#16ad70; }
    .worker-state-badge.state-finished { color:#fff; border-color:#f49a1b; background:#f5a224; }
    .worker-state-badge.state-accepted,
    .worker-state-badge.state-closed { color:#fff; border-color:#15a762; background:#19ad69; }
    .worker-state-badge.state-rejected { color:#fff; border-color:#e84848; background:#e94d4d; }
    .worker-mobile-paused-tip { margin-top:10px; padding:8px 10px; color:#b45309; border-radius:7px; background:#fff7e8; font-size:12px; }

    .worker-mobile-task-info { margin-top:12px; overflow:hidden; border:1px solid #e6ecf4; border-radius:10px; }
    .worker-mobile-task-info > div { display:grid; grid-template-columns:34px minmax(0,1fr); gap:10px; padding:11px 12px; }
    .worker-mobile-task-info > div + div { border-top:1px solid #edf1f6; }
    .worker-mobile-task-info i { position:relative; width:28px; height:28px; color:#176dec; }
    .worker-mobile-task-customer i::before { content:""; position:absolute; top:1px; left:9px; width:10px; height:10px; border-radius:50%; background:currentColor; }
    .worker-mobile-task-customer i::after { content:""; position:absolute; bottom:1px; left:4px; width:20px; height:13px; border-radius:11px 11px 4px 4px; background:currentColor; }
    .worker-mobile-task-product i::before { content:""; position:absolute; inset:3px; background:currentColor; clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%); }
    .worker-mobile-task-product i::after { content:""; position:absolute; top:10px; left:4px; width:20px; height:1px; background:#fff; box-shadow:10px 5px 0 -0.2px #fff; transform:rotate(30deg); }
    .worker-mobile-task-info p { min-width:0; margin:0; }
    .worker-mobile-task-info strong { color:#14233f; font-size:15px; }
    .worker-mobile-task-customer span { margin-left:10px; color:#69768d; font-size:13px; font-weight:400; }
    .worker-mobile-task-info small { display:block; margin-top:4px; overflow:hidden; color:#65738b; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
    .worker-mobile-task-time { display:flex; min-height:38px; align-items:center; gap:7px; color:#718098; font-size:12px; }
    .worker-mobile-task-time i { position:relative; width:17px; height:17px; border:2px solid #76849a; border-radius:50%; box-sizing:border-box; }
    .worker-mobile-task-time i::before { content:""; position:absolute; top:3px; left:7px; width:1px; height:5px; background:#76849a; }
    .worker-mobile-task-time i::after { content:""; position:absolute; top:8px; left:7px; width:4px; height:1px; background:#76849a; transform:rotate(20deg); transform-origin:left; }
    .worker-mobile-task-actions { display:grid; grid-template-columns:1fr 1fr; margin:0 -14px; border-top:1px solid #e7edf5; }
    .worker-mobile-task-actions > a,
    .worker-mobile-task-actions > form { display:flex; min-width:0; min-height:48px; align-items:center; justify-content:center; margin:0; }
    .worker-mobile-task-actions > * + * { border-left:1px solid #e7edf5; }
    .worker-mobile-task-actions a { color:#0967e9; font-size:14px; text-decoration:none; }
    .worker-mobile-task-actions form button,
    .worker-mobile-task-actions a.primary { width:calc(100% - 10px); min-height:42px; margin:3px 5px; padding:0; color:#fff; border:0; border-radius:7px; background:linear-gradient(115deg,#0875f5,#0759df); font:inherit; font-weight:700; }
    .worker-mobile-task-actions a.primary { display:flex; align-items:center; justify-content:center; }
    .worker-mobile-task-empty { padding:38px 16px; color:#718096; border-radius:15px; background:#fff; box-shadow:0 7px 22px rgba(35,77,139,.07); text-align:center; }
}

@media (max-width: 390px) {
    .role-worker .page-body { padding: 8px; }
    .role-worker .worker-dashboard-stats a { padding: 11px; }
    .role-worker .worker-dashboard-stats small { font-size: 11px; }
    .role-worker .user-chip > span:last-child { max-width: 94px; }
}

/* Terminal and worker mobile login */
.mobile-service-login-page .auth-title { display: none; }
.mobile-service-login-page .auth-card { width: min(430px, 100%); }
.mobile-role-login { color: #18335e; }
.mobile-login-tabs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-bottom: 20px;
    overflow: hidden;
    border: 1px solid #d9e3f2;
    border-radius: 999px;
    background: #fff;
}
.mobile-login-tabs a {
    display: flex;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    gap: 9px;
    color: #6c7891;
    border-radius: 999px;
    font-size: 15px;
    text-decoration: none;
}
.mobile-login-tabs a.active { color: #fff; background: linear-gradient(110deg,#1471f4,#0754df); box-shadow: 0 8px 20px rgba(14,92,229,.22); }
.mobile-tab-user-icon,
.mobile-tab-worker-icon { position: relative; display: inline-block; width: 24px; height: 24px; }
.mobile-tab-user-icon::before { content:""; position:absolute; top:1px; left:8px; width:8px; height:8px; border-radius:50%; background:currentColor; }
.mobile-tab-user-icon::after { content:""; position:absolute; bottom:2px; left:4px; width:16px; height:10px; border-radius:9px 9px 4px 4px; background:currentColor; }
.mobile-tab-worker-icon::before { content:""; position:absolute; top:4px; left:3px; width:18px; height:12px; border:2px solid currentColor; border-radius:10px 10px 3px 3px; box-sizing:border-box; }
.mobile-tab-worker-icon::after { content:""; position:absolute; bottom:3px; left:2px; width:20px; height:2px; border-radius:2px; background:currentColor; box-shadow:5px -13px 0 -0.5px currentColor,10px -14px 0 -0.5px currentColor; }

.mobile-login-hero { display: none; }
.mobile-login-card { padding: 2px; }
.mobile-code-login-form { display: grid; gap: 15px; }
.mobile-login-field {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    min-height: 62px;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 0 14px;
    border: 1px solid #dbe4f1;
    border-radius: 13px;
    background: #fff;
}
.mobile-login-field:focus-within { border-color: #4d8fff; box-shadow: 0 0 0 3px rgba(25,105,239,.1); }
.mobile-service-login-page .auth-card .mobile-login-field input {
    width: 100%;
    min-height: 58px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    font-size: 16px;
}
.mobile-field-icon { position: relative; display: inline-flex; width: 26px; height: 30px; align-items:center; justify-content:center; color:#1468ef; }
.mobile-field-icon.phone::before { content:""; width:14px; height:23px; border:2px solid currentColor; border-radius:3px; box-sizing:border-box; }
.mobile-field-icon.phone::after { content:""; position:absolute; bottom:5px; width:3px; height:3px; border-radius:50%; background:currentColor; }
.mobile-field-icon.shield { width:24px; height:27px; border:2px solid currentColor; border-radius:12px 12px 9px 9px; clip-path:polygon(50% 0,100% 20%,90% 75%,50% 100%,10% 75%,0 20%); font-size:13px; }
.mobile-field-icon.lock::before { content:""; position:absolute; top:11px; width:19px; height:15px; border:2px solid currentColor; border-radius:4px; box-sizing:border-box; }
.mobile-field-icon.lock::after { content:""; position:absolute; top:3px; width:12px; height:13px; border:2px solid currentColor; border-bottom:0; border-radius:8px 8px 0 0; box-sizing:border-box; }
.mobile-login-field.code-field { grid-template-columns:34px minmax(0,1fr) auto; }
.mobile-login-field.code-field > button {
    min-width: 104px;
    min-height: 40px;
    padding: 0 12px;
    color: #0c63ec;
    border: 1px solid #9fc1ff;
    border-radius: 10px;
    background: #fff;
    cursor: pointer;
    font-size: 14px;
}
.mobile-captcha-image { display:flex; width:118px; height:44px; overflow:hidden; border:1px solid #a8c5f7; border-radius:10px; background:#f2f7ff; }
.mobile-captcha-image img { display:block; width:100%; height:100%; object-fit:cover; }
.mobile-login-field.image-captcha-field input { text-transform:uppercase; }
.mobile-login-submit {
    min-height: 54px;
    margin-top: 7px;
    color: #fff;
    border: 0;
    border-radius: 14px;
    background: linear-gradient(110deg,#1173fa,#0753dd);
    box-shadow: 0 12px 25px rgba(13,91,228,.24);
    cursor: pointer;
    font-size: 18px;
    font-weight: 700;
}
.mobile-login-agreement { display:flex; align-items:flex-start; justify-content:center; gap:8px; margin:1px 0 0; color:#7a869d; font-size:12px; font-weight:400; line-height:1.7; }
.mobile-service-login-page .auth-card .mobile-login-agreement input { width:17px; height:17px; min-height:0; flex:0 0 auto; margin:2px 0 0; accent-color:#1168ef; }
.mobile-login-agreement a { color:#0b63ed; }
.mobile-login-help { justify-self:center; padding:5px 8px; color:#0b63ed; border:0; background:transparent; cursor:pointer; font-size:14px; }
.mobile-login-home { justify-self:center; color:#7b879c; font-size:12px; }
.mobile-service-login-page .alert { margin-bottom:12px; border-color:#b9d5ff; background:#f1f7ff; color:#194b91; }

.legal-document h1 { margin:0 0 18px; color:#12315e; }
.legal-document p { color:#5d6980; line-height:1.9; }
.legal-document .button { width:auto; margin-top:12px; }

@media (max-width: 760px) {
    .mobile-service-login-page { min-width: 320px; background:#f4f8ff; }
    .mobile-service-login-page .auth-page { display:block; min-height:100vh; background:linear-gradient(180deg,#f9fbff,#edf4ff); }
    .mobile-service-login-page .auth-hero { display:none; }
    .mobile-service-login-page .auth-panel { display:block; min-height:100vh; padding:0; background:transparent; }
    .mobile-service-login-page .auth-card { box-sizing:border-box; width:100%; max-width:480px; margin:0 auto; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
    .mobile-role-login { min-height:100vh; overflow:hidden; background:linear-gradient(180deg,#f9fbff 0,#edf4ff 58%,#f7f9fd 100%); }
    .mobile-login-tabs { position:relative; z-index:5; margin:24px 24px 4px; min-height:52px; }
    .mobile-login-tabs a { min-height:52px; font-size:16px; }
    .mobile-login-hero { position:relative; display:block; height:330px; overflow:hidden; }
    .mobile-login-logo { position:absolute; top:22px; left:26px; z-index:2; width:124px; }
    .mobile-login-copy { position:absolute; top:92px; left:26px; z-index:2; }
    .mobile-login-copy h1 { margin:0; color:#12346b; font-size:34px; letter-spacing:1px; }
    .mobile-login-copy p { margin:14px 0 0; color:#6e7d9c; font-size:17px; }
    .mobile-login-city { position:absolute; right:0; bottom:0; left:0; height:88px; opacity:.55; background:linear-gradient(180deg,transparent,#dbe8fd); }
    .mobile-login-city i { position:absolute; bottom:0; width:24px; background:#c9dbf7; }
    .mobile-login-city i:nth-child(1){left:16%;height:45px}.mobile-login-city i:nth-child(2){left:25%;height:68px}.mobile-login-city i:nth-child(3){left:35%;height:38px}.mobile-login-city i:nth-child(4){right:13%;height:58px}.mobile-login-city i:nth-child(5){right:4%;height:78px}
    .mobile-login-art { position:absolute; right:20px; bottom:21px; width:176px; height:190px; z-index:2; }
    .mobile-login-clipboard { position:absolute; right:0; top:2px; width:112px; height:150px; padding:28px 15px 12px; border:4px solid #65a2ff; border-radius:12px; box-sizing:border-box; background:linear-gradient(145deg,#fff,#dfeaff); box-shadow:0 12px 24px rgba(47,111,218,.2); transform:rotate(3deg); }
    .mobile-login-clipboard::before { content:""; position:absolute; top:-12px; left:25px; width:56px; height:23px; border:3px solid #73aaff; border-radius:5px; background:#e8f0ff; }
    .mobile-login-clipboard strong { display:block; color:#4b89ef; font-size:15px; text-align:center; }
    .mobile-login-clipboard span { display:block; width:68px; height:7px; margin-top:13px; border-radius:5px; background:#c9daf7; }
    .mobile-login-clipboard span:nth-of-type(2){width:52px}.mobile-login-clipboard span:nth-of-type(3){width:61px}
    .mobile-login-clipboard b { position:absolute; right:8px; bottom:22px; color:#70a8fa; font-size:22px; }
    .mobile-login-shield { position:absolute; left:0; bottom:14px; width:100px; height:116px; display:flex; align-items:center; justify-content:center; clip-path:polygon(50% 0,94% 18%,86% 77%,50% 100%,14% 77%,6% 18%); background:linear-gradient(145deg,#8bb8ff,#1267ec 65%,#0349c9); filter:drop-shadow(0 12px 10px rgba(20,82,190,.25)); }
    .mobile-login-shield::before { content:""; position:absolute; inset:8px; clip-path:inherit; background:linear-gradient(145deg,#dceaff,#2578f4 58%,#0750d2); }
    .mobile-login-shield span { position:relative; z-index:1; color:#fff; font-size:46px; font-weight:800; text-shadow:0 3px 5px rgba(0,54,153,.28); }
    .mobile-login-platform { position:absolute; left:-10px; right:-2px; bottom:0; height:24px; border-radius:50%; background:linear-gradient(180deg,#fff,#b9d2fb); box-shadow:0 8px 16px rgba(32,92,187,.2); }
    .mobile-login-card { position:relative; z-index:4; margin-top:-22px; padding:30px 24px 25px; border-radius:28px 28px 0 0; background:#fff; box-shadow:0 -8px 28px rgba(35,77,145,.08); }
    .mobile-code-login-form { gap:18px; }
    .mobile-login-field { min-height:66px; border-radius:15px; }
    .mobile-service-login-page .auth-card .mobile-login-field input { min-height:62px; font-size:17px; }
    .mobile-login-field.code-field > button { min-width:106px; min-height:42px; font-size:14px; }
    .mobile-login-submit { min-height:58px; border-radius:16px; font-size:20px; }
    .mobile-login-agreement { font-size:12px; }
    .mobile-login-help { margin-top:2px; font-size:15px; }
}

@media (max-width: 380px) {
    .mobile-login-tabs { margin-right:16px; margin-left:16px; }
    .mobile-login-copy { left:20px; }
    .mobile-login-copy h1 { font-size:30px; }
    .mobile-login-art { right:10px; transform:scale(.9); transform-origin:right bottom; }
    .mobile-login-card { padding-right:18px; padding-left:18px; }
    .mobile-login-field.code-field > button { min-width:94px; padding:0 8px; }
}

/* Worker profile mobile pixel-match v3 */
.worker-profile-page-v2 svg { display:block; width:1em; height:1em; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.worker-profile-mobile-header > a svg { width:100%; height:100%; }
.worker-profile-identity-main em svg { width:15px; height:15px; }
.worker-profile-identity-main > span svg { display:inline-block; width:17px; height:17px; margin-right:8px; vertical-align:-4px; }
.worker-profile-card-arrow svg { width:20px; height:20px; }
.worker-profile-stat-grid > a > i svg { width:24px; height:24px; }
.worker-profile-section-title > a { display:flex; align-items:center; gap:5px; color:#086cf0; text-decoration:none; }
.worker-profile-section-title > a svg { width:18px; height:18px; }
.worker-profile-form-rows > label > svg,
.worker-profile-account-list dt > svg,
.worker-profile-security-list > a > svg,
.worker-profile-security-list summary > svg { width:22px; height:22px; flex:0 0 auto; color:#0870ef; }
.worker-profile-security-list b svg { width:17px; height:17px; }
.worker-profile-security-list > a.logout > svg { color:#ff3b30; }

@media (max-width:760px) {
    .worker-profile-body { background:#f4f8fd; }
    .worker-profile-body .role-worker .page-body {
        min-height:100vh;
        padding:calc(47px + env(safe-area-inset-top)) 17px calc(53px + env(safe-area-inset-bottom));
        box-sizing:border-box;
        background:
            radial-gradient(190px 75px at -15px 82px,rgba(165,207,255,.55) 0 52%,transparent 53%),
            radial-gradient(220px 88px at 430px 126px,rgba(108,177,255,.45) 0 50%,transparent 51%),
            linear-gradient(180deg,#0873f5 0,#1777ed 145px,#e8f3ff 145px,#f4f8fd 270px,#f4f8fd 100%);
    }
    .worker-profile-body .role-worker .page-body > .card { overflow:visible; }
    .worker-profile-mobile-header {
        height:calc(47px + env(safe-area-inset-top));
        border:0;
        background:linear-gradient(122deg,#0876f8,#096de9 62%,#0a70f2);
        box-shadow:none;
    }
    .worker-profile-mobile-header::after { content:""; position:absolute; right:-38px; bottom:-35px; width:185px; height:60px; border-radius:50%; background:rgba(88,158,255,.18); transform:rotate(-9deg); }
    .worker-profile-mobile-header h1 { position:relative; z-index:1; font-size:16px; font-weight:700; letter-spacing:2px; }
    .worker-profile-mobile-header > a { right:17px; bottom:11px; z-index:2; width:23px; height:23px; }
    .worker-profile-page-v2 { max-width:393px; gap:5px; }
    .worker-profile-identity-card,
    .worker-profile-stat-grid,
    .worker-profile-section-card { border:0; box-shadow:0 5px 18px rgba(40,91,154,.075); }
    .worker-profile-identity-card {
        grid-template-columns:68px minmax(0,1fr) 13px;
        gap:12px;
        min-height:101px;
        padding:11px 13px;
        box-sizing:border-box;
        border-radius:14px;
    }
    .worker-profile-identity-card::before { content:""; position:absolute; right:4px; bottom:0; width:118px; height:62px; opacity:.5; background:linear-gradient(90deg,transparent 0 8%,#dcebfb 8% 18%,transparent 18% 22%,#e3effc 22% 34%,transparent 34% 38%,#d7e9fb 38% 50%,transparent 50% 56%,#e4f0fc 56% 69%,transparent 69% 75%,#dbeafb 75% 88%,transparent 88%); clip-path:polygon(0 100%,0 60%,7% 60%,7% 38%,18% 38%,18% 70%,28% 70%,28% 45%,38% 45%,38% 19%,43% 19%,43% 43%,54% 43%,54% 62%,65% 62%,65% 31%,72% 31%,72% 56%,84% 56%,84% 42%,91% 42%,91% 72%,100% 72%,100% 100%); }
    .worker-profile-identity-card::after { right:18px; bottom:25px; width:78px; height:42px; opacity:.3; background:none; border-top:2px solid #b8d3f3; clip-path:none; transform:rotate(-15deg); }
    .worker-profile-avatar { position:relative; z-index:2; width:67px; height:67px; object-fit:cover; border-radius:50%; background:#dcecff; }
    .worker-profile-identity-main { gap:1px; align-self:center; }
    .worker-profile-identity-main > div { gap:10px; min-height:22px; }
    .worker-profile-identity-main h2 { font-size:18px; line-height:1; }
    .worker-profile-identity-main em { display:flex; padding:3px 7px; align-items:center; gap:4px; border-radius:12px; font-size:10px; white-space:nowrap; }
    .worker-profile-identity-main p { margin:2px 0 3px; font-size:11px; line-height:1.2; }
    .worker-profile-identity-main > span { font-size:9.5px; line-height:18px; }
    .worker-profile-identity-main > span svg { width:13px; height:13px; margin-right:6px; vertical-align:-3px; }
    .worker-profile-card-arrow { display:flex; align-self:start; margin-top:10px; color:#9fb2cc; }

    .worker-profile-stat-grid { min-height:79px; padding:10px 7px; box-sizing:border-box; border-radius:14px; }
    .worker-profile-stat-grid > a { grid-template-columns:30px minmax(0,1fr); gap:8px; padding:2px 8px; border-left-color:#e7edf5; }
    .worker-profile-stat-grid > a > i { width:29px; height:29px; box-shadow:0 5px 10px rgba(14,105,233,.21); }
    .worker-profile-stat-grid > a > i svg { width:17px; height:17px; }
    .worker-profile-stat-grid > a > span { font-size:10px; line-height:1.15; }
    .worker-profile-stat-grid strong { margin:3px 0 4px; font-size:18px; line-height:1; }
    .worker-profile-stat-grid small { overflow:hidden; font-size:8px; line-height:1.25; white-space:nowrap; text-overflow:ellipsis; }

    .worker-profile-section-card { padding:10px 11px; border-radius:14px; scroll-margin-top:50px; }
    .worker-profile-section-title { min-height:18px; margin-bottom:6px; }
    .worker-profile-section-title h3 { padding-left:10px; font-size:13px; }
    .worker-profile-section-title h3::before { top:1px; bottom:1px; width:3px; }
    .worker-profile-section-title > a { gap:3px; font-size:10px; }
    .worker-profile-section-title > a svg { width:13px; height:13px; }
    .worker-profile-form-rows,
    .worker-profile-account-list,
    .worker-profile-security-list { border-color:#e2eaf4; border-radius:8px; }
    .worker-profile-form-rows > label { grid-template-columns:19px 88px minmax(0,1fr); gap:5px; height:18px; min-height:18px; max-height:18px; padding:0 9px; box-sizing:border-box; }
    .worker-profile-form-rows > label > svg,
    .worker-profile-account-list dt > svg,
    .worker-profile-security-list > a > svg,
    .worker-profile-security-list summary > svg { width:15px; height:15px; }
    .worker-profile-form-rows > label > span { font-size:10px; }
    .worker-profile-form-rows input { height:16px; min-height:0; padding:0; box-sizing:border-box; font-size:10px; line-height:14px; }
    .worker-profile-body .role-worker .worker-profile-save { min-height:27px; height:27px; margin-top:5px; padding:0; box-sizing:border-box; border-radius:7px; font-size:11px; }

    .worker-profile-account-list > div { min-height:21px; padding:0 9px; gap:8px; }
    .worker-profile-account-list dt { gap:6px; }
    .worker-profile-account-list dt,
    .worker-profile-account-list dd { font-size:9.5px; line-height:20px; }
    .worker-profile-account-list dd { white-space:nowrap; }

    .worker-profile-security-list > a,
    .worker-profile-security-list summary { grid-template-columns:18px minmax(0,1fr) 12px; min-height:21px; padding:0 9px; gap:5px; font-size:10px; }
    .worker-profile-security-list b svg { width:12px; height:12px; }
    .worker-profile-security-list details form { gap:7px; padding:9px; }
    .worker-profile-security-list details form label { font-size:10px; }
    .worker-profile-security-list details form input { min-height:34px; }

    .worker-profile-body .role-worker .app-sidebar { min-height:calc(47px + env(safe-area-inset-bottom)); }
    .worker-profile-body .role-worker .sidebar-nav { padding:2px 6px calc(2px + env(safe-area-inset-bottom)); }
    .worker-profile-body .role-worker .sidebar-link { height:43px; gap:1px; padding:2px; font-size:10px; }
    .worker-profile-body .role-worker .sidebar-link .nav-icon { width:21px; height:21px; transform:scale(.82); }
    .worker-profile-body .role-worker .sidebar-link > span:last-child::after { font-size:10px; }
}

@media (max-width:374px) {
    .worker-profile-body .role-worker .page-body { padding-right:12px; padding-left:12px; }
    .worker-profile-identity-card { grid-template-columns:62px minmax(0,1fr) 12px; gap:9px; }
    .worker-profile-avatar { width:61px; height:61px; }
    .worker-profile-stat-grid > a { gap:5px; padding:2px 5px; }
    .worker-profile-stat-grid small { font-size:7px; }
}

/* Terminal user mobile dashboard */
.user-mobile-dashboard { max-width:620px; margin:0 auto; overflow:hidden; color:#10213f; background:#f4f8fd; }
.user-mobile-dashboard svg { display:block; width:1em; height:1em; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.user-home-hero { position:relative; height:252px; overflow:hidden; color:#fff; background:linear-gradient(135deg,#0873f8 0,#126eea 58%,#2690ff 100%); }
.user-home-hero::before { content:""; position:absolute; right:-14%; bottom:-55px; left:-14%; height:95px; border-radius:50% 50% 0 0; background:#f4f8fd; }
.user-home-title { position:absolute; top:28px; right:0; left:0; z-index:2; text-align:center; font-size:28px; font-weight:800; letter-spacing:2px; }
.user-home-message { position:absolute; top:28px; right:25px; z-index:3; width:34px; height:34px; color:#fff; }
.user-home-message svg { width:100%; height:100%; stroke-width:1.7; }
.user-home-message i { position:absolute; top:-1px; right:0; width:8px; height:8px; border:2px solid #1775ef; border-radius:50%; background:#ff4f45; }
.user-home-account { position:absolute; top:90px; left:28px; z-index:3; display:flex; align-items:center; gap:18px; }
.user-home-avatar { display:flex; width:72px; height:72px; align-items:center; justify-content:center; overflow:hidden; color:#fff; border:1px solid rgba(255,255,255,.9); border-radius:50%; background:linear-gradient(145deg,rgba(255,255,255,.78),rgba(199,224,255,.42)); box-shadow:inset 0 0 18px rgba(255,255,255,.5); }
.user-home-avatar svg { width:54px; height:54px; fill:#fff; stroke:#fff; stroke-width:1.1; }
.user-home-account h1 { margin:0 0 7px; font-size:25px; }
.user-home-account h1 small { font-size:19px; font-weight:400; }
.user-home-account p { margin:0; font-size:17px; }
.user-home-logout { position:absolute; top:98px; right:25px; z-index:3; display:grid; justify-items:center; gap:4px; color:#fff; text-decoration:none; }
.user-home-logout:hover { color:#fff; }
.user-home-logout svg { width:35px; height:35px; }
.user-home-logout span { font-size:15px; }
.user-home-city { position:absolute; right:60px; bottom:51px; width:255px; height:145px; opacity:.21; }
.user-home-city i { position:absolute; bottom:0; width:31px; background:linear-gradient(180deg,rgba(255,255,255,.9),rgba(255,255,255,.24)); }
.user-home-city i:nth-child(1){left:22px;height:55px}.user-home-city i:nth-child(2){left:64px;height:91px}.user-home-city i:nth-child(3){left:106px;height:70px}.user-home-city i:nth-child(4){left:148px;height:112px}.user-home-city i:nth-child(5){left:192px;height:78px}
.user-home-city b { position:absolute; right:30px; bottom:42px; width:104px; height:2px; background:#fff; transform:rotate(-2deg); }
.user-home-city b::before { content:""; position:absolute; right:45px; bottom:-42px; width:2px; height:104px; background:#fff; }
.user-home-city b::after { content:""; position:absolute; right:18px; top:0; width:58px; height:2px; background:#fff; transform:rotate(28deg); transform-origin:right; }
.user-home-content { position:relative; z-index:5; margin-top:-83px; padding:0 20px 76px; }
.user-home-welcome,
.user-home-overview,
.user-home-service-card { border:1px solid rgba(226,235,246,.95); background:rgba(255,255,255,.96); box-shadow:0 8px 24px rgba(49,91,150,.08); }
.user-home-welcome { position:relative; display:flex; min-height:96px; padding:21px 28px; align-items:center; overflow:hidden; box-sizing:border-box; border-radius:18px; }
.user-home-welcome h2 { position:relative; z-index:2; margin:0 0 10px; font-size:20px; }
.user-home-welcome h2 span { margin-right:8px; }
.user-home-welcome p { position:relative; z-index:2; margin:0; color:#40516d; font-size:15px; }
.user-home-welcome-shield { position:absolute; right:8px; bottom:-22px; width:122px!important; height:122px!important; color:#78adf6; opacity:.22; filter:drop-shadow(0 8px 14px rgba(36,105,214,.26)); }
.user-home-overview { margin-top:18px; padding:18px 22px; border-radius:18px; }
.user-home-overview h2 { margin:0 0 16px; font-size:18px; }
.user-home-stat-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
.user-home-stat-grid > a { display:flex; min-width:0; align-items:center; justify-content:center; gap:10px; color:#10213f; border-left:1px solid #e1e8f1; text-decoration:none; }
.user-home-stat-grid > a:first-child { border-left:0; }
.user-home-stat-grid i { display:flex; width:35px; height:35px; flex:0 0 auto; align-items:center; justify-content:center; color:#fff; border-radius:10px; background:linear-gradient(145deg,#57a2ff,#1b67ed); box-shadow:0 5px 12px rgba(31,109,237,.22); }
.user-home-stat-grid i.pending { border-radius:50%; background:linear-gradient(145deg,#ffba4c,#ff861e); }
.user-home-stat-grid i.completed { border-radius:50%; background:linear-gradient(145deg,#67df94,#24b968); }
.user-home-stat-grid i.rated { background:linear-gradient(145deg,#558fff,#2364e7); }
.user-home-stat-grid i svg { width:23px; height:23px; }
.user-home-stat-grid span,
.user-home-stat-grid strong,
.user-home-stat-grid small { display:block; }
.user-home-stat-grid strong { font-size:25px; line-height:1; }
.user-home-stat-grid small { margin-top:7px; color:#5c6b82; font-size:13px; white-space:nowrap; }
.user-home-services { display:grid; gap:12px; margin-top:18px; }
.user-home-service-card { display:grid; grid-template-columns:110px minmax(0,1fr) 42px; min-height:116px; padding:14px 25px 14px 14px; align-items:center; gap:24px; box-sizing:border-box; color:#10213f; border-radius:18px; text-decoration:none; }
.user-home-service-card:hover { color:#10213f; }
.user-home-service-card > i { display:flex; width:100px; height:88px; align-items:center; justify-content:center; color:#246cf1; border-radius:17px; background:linear-gradient(145deg,#edf4ff,#e6efff); font-style:normal; }
.user-home-service-card > i svg { width:54px; height:54px; filter:drop-shadow(0 5px 7px rgba(36,108,241,.18)); }
.user-home-service-card > span strong,
.user-home-service-card > span small,
.user-home-service-card > span em { display:block; }
.user-home-service-card > span strong { font-size:23px; }
.user-home-service-card > span small { margin-top:7px; overflow:hidden; color:#596981; font-size:15px; text-overflow:ellipsis; white-space:nowrap; }
.user-home-service-card > span em { width:max-content; margin-top:8px; padding:4px 18px; color:#0869ec; border-radius:6px; background:#edf4ff; font-size:14px; font-style:normal; }
.user-home-service-card > b { display:flex; width:38px; height:38px; align-items:center; justify-content:center; color:#1670ef; border-radius:50%; background:#edf4ff; }
.user-home-service-card > b svg { width:22px; height:22px; }
.user-home-service-card.service > i { color:#f47b21; background:linear-gradient(145deg,#fff5ec,#fff0e2); }
.user-home-service-card.service > b { color:#f47b21; background:#fff5ec; }
.user-home-service-card.warranty > i { color:#24bd6b; background:linear-gradient(145deg,#eafbf2,#dcf7e9); }
.user-home-service-card.warranty > b { color:#24bd6b; background:#eafbf2; }
.user-home-service-card.profile > i { color:#744fe2; background:linear-gradient(145deg,#f3efff,#ece7ff); }
.user-home-service-card.profile > b { color:#744fe2; background:#f3efff; }
.user-home-bottom-nav { display:none; }

@media (max-width:760px) {
    .user-dashboard-body .app-shell.role-user { display:block; min-height:100vh; background:#f4f8fd; }
    .user-dashboard-body .role-user > .app-sidebar,
    .user-dashboard-body .role-user .app-topbar { display:none; }
    .user-dashboard-body .role-user .page-body { padding:0; }
    .user-dashboard-body .role-user .page-body > .card { padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
    .user-mobile-dashboard { width:100%; max-width:none; min-height:100vh; }
    .user-home-hero { height:196px; }
    .user-home-hero::before { right:-18%; bottom:-32px; left:-18%; height:53px; }
    .user-home-title { top:20px; font-size:22px; }
    .user-home-message { top:23px; right:18px; width:24px; height:24px; }
    .user-home-message i { width:6px; height:6px; border-width:1px; }
    .user-home-account { top:70px; left:18px; gap:13px; }
    .user-home-avatar { width:46px; height:46px; }
    .user-home-avatar svg { width:36px; height:36px; }
    .user-home-account h1 { margin-bottom:4px; font-size:16px; }
    .user-home-account h1 small { font-size:13px; }
    .user-home-account p { font-size:11px; }
    .user-home-logout { top:82px; right:18px; gap:2px; }
    .user-home-logout svg { width:24px; height:24px; }
    .user-home-logout span { font-size:10px; }
    .user-home-city { right:25px; bottom:30px; width:175px; height:105px; }
    .user-home-city i { width:22px; }
    .user-home-city i:nth-child(1){left:18px;height:40px}.user-home-city i:nth-child(2){left:47px;height:66px}.user-home-city i:nth-child(3){left:76px;height:52px}.user-home-city i:nth-child(4){left:106px;height:82px}.user-home-city i:nth-child(5){left:138px;height:58px}
    .user-home-city b { right:18px; bottom:31px; width:76px; }
    .user-home-city b::before { right:32px; bottom:-31px; height:77px; }
    .user-home-city b::after { right:12px; width:43px; }

    .user-home-content { margin-top:-64px; padding:0 15px calc(55px + env(safe-area-inset-bottom)); }
    .user-home-welcome { min-height:76px; height:76px; padding:14px 19px; border-radius:13px; }
    .user-home-welcome h2 { margin-bottom:8px; font-size:14px; }
    .user-home-welcome h2 span { margin-right:5px; }
    .user-home-welcome p { font-size:11px; }
    .user-home-welcome-shield { right:2px; bottom:-18px; width:94px!important; height:94px!important; }

    .user-home-overview { height:88px; margin-top:13px; padding:11px 14px; box-sizing:border-box; border-radius:13px; }
    .user-home-overview h2 { margin-bottom:12px; font-size:13px; }
    .user-home-stat-grid > a { gap:7px; }
    .user-home-stat-grid i { width:24px; height:24px; border-radius:7px; }
    .user-home-stat-grid i svg { width:16px; height:16px; }
    .user-home-stat-grid strong { font-size:18px; }
    .user-home-stat-grid small { margin-top:5px; font-size:9px; }

    .user-home-services { gap:5px; margin-top:12px; }
    .user-home-service-card { grid-template-columns:69px minmax(0,1fr) 25px; min-height:72px; padding:9px 17px 9px 11px; gap:18px; border-radius:13px; }
    .user-home-service-card:first-child { min-height:86px; }
    .user-home-service-card > i { width:69px; height:52px; border-radius:12px; }
    .user-home-service-card:first-child > i { height:64px; }
    .user-home-service-card > i svg { width:37px; height:37px; }
    .user-home-service-card > span strong { font-size:18px; }
    .user-home-service-card > span small { margin-top:5px; font-size:11px; }
    .user-home-service-card > span em { margin-top:6px; padding:3px 13px; font-size:11px; }
    .user-home-service-card > b { width:25px; height:25px; }
    .user-home-service-card > b svg { width:15px; height:15px; }

    .user-home-bottom-nav { position:fixed; right:0; bottom:0; left:0; z-index:100; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); height:calc(50px + env(safe-area-inset-bottom)); padding-bottom:env(safe-area-inset-bottom); box-sizing:border-box; border-top:1px solid #e5ebf3; background:rgba(255,255,255,.97); box-shadow:0 -6px 20px rgba(44,74,120,.08); backdrop-filter:blur(10px); }
    .user-home-bottom-nav a { display:flex; min-width:0; align-items:center; justify-content:center; flex-direction:column; gap:2px; color:#66758c; text-decoration:none; }
    .user-home-bottom-nav a.active { color:#096cf0; }
    .user-home-bottom-nav svg { width:23px; height:23px; }
    .user-home-bottom-nav a.active svg { fill:#096cf0; stroke:#096cf0; }
    .user-home-bottom-nav span { font-size:10px; }
}

@media (max-width:374px) {
    .user-home-content { padding-right:11px; padding-left:11px; }
    .user-home-service-card { grid-template-columns:62px minmax(0,1fr) 23px; gap:12px; padding-right:12px; }
    .user-home-service-card > i { width:62px; }
    .user-home-service-card > span strong { font-size:16px; }
    .user-home-service-card > span small { font-size:10px; }
}

/* Terminal user product archive */
.user-products-page { max-width:760px; min-height:100vh; margin:0 auto; color:#10213f; background:#f3f7fc; }
.user-products-page svg { display:block; width:1em; height:1em; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.user-products-header { position:relative; display:flex; min-height:118px; padding:26px 30px; align-items:center; justify-content:center; box-sizing:border-box; color:#fff; background:linear-gradient(125deg,#0876f7,#126be8 68%,#358ef8); }
.user-products-header::after { content:""; position:absolute; right:-65px; bottom:-52px; width:250px; height:105px; border-radius:50%; background:rgba(255,255,255,.09); transform:rotate(-8deg); }
.user-products-header > a { position:absolute; left:25px; display:flex; width:36px; height:36px; align-items:center; justify-content:center; color:#fff; text-decoration:none; transform:rotate(180deg); }
.user-products-header > a svg { width:27px; height:27px; }
.user-products-header > div { position:relative; z-index:1; text-align:center; }
.user-products-header h1 { margin:0; font-size:28px; letter-spacing:2px; }
.user-products-header p { margin:8px 0 0; color:rgba(255,255,255,.8); font-size:13px; }
.user-products-header > span { position:absolute; right:28px; z-index:1; display:flex; min-width:34px; height:34px; padding:0 8px; align-items:center; justify-content:center; box-sizing:border-box; border:1px solid rgba(255,255,255,.5); border-radius:18px; background:rgba(255,255,255,.16); font-weight:700; }
.user-products-content { display:grid; gap:14px; padding:18px 20px 86px; }
.user-products-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding:16px; border:1px solid #e2eaf4; border-radius:15px; background:#fff; box-shadow:0 7px 20px rgba(36,75,132,.07); }
.user-products-summary > div { text-align:center; border-left:1px solid #e7edf5; }
.user-products-summary > div:first-child { border-left:0; }
.user-products-summary span,
.user-products-summary strong { display:block; }
.user-products-summary span { color:#68778e; font-size:12px; }
.user-products-summary strong { margin-top:6px; color:#0869e9; font-size:24px; }
.user-products-search { display:flex; min-height:48px; padding:5px 6px 5px 15px; align-items:center; gap:9px; box-sizing:border-box; border:1px solid #dfe8f3; border-radius:12px; background:#fff; box-shadow:0 6px 17px rgba(42,78,132,.05); }
.user-products-search > svg { width:21px; height:21px; flex:0 0 auto; color:#8594aa; }
.user-products-search input { min-width:0; min-height:36px; padding:0; flex:1; border:0; background:transparent; box-shadow:none; }
.user-products-search input:focus { box-shadow:none; }
.user-products-search button,
.user-products-search a { display:flex; min-height:36px; padding:0 16px; align-items:center; justify-content:center; color:#fff; border:0; border-radius:8px; background:#0a6fec; font-size:13px; text-decoration:none; }
.user-products-search a { color:#66758b; background:#eef3f9; }
.user-product-list { display:grid; gap:12px; }
.user-product-card { overflow:hidden; border:1px solid #e1e9f3; border-radius:15px; background:#fff; box-shadow:0 8px 22px rgba(36,75,132,.07); }
.user-product-card-main { display:grid; grid-template-columns:92px minmax(0,1fr); gap:15px; padding:16px; }
.user-product-image { display:flex; width:92px; height:92px; align-items:center; justify-content:center; overflow:hidden; border-radius:12px; background:linear-gradient(145deg,#f4f8fd,#e8f1fc); }
.user-product-image img { width:100%; height:100%; object-fit:cover; }
.user-product-image svg { width:45px; height:45px; color:#4d8ff1; }
.user-product-copy { align-self:center; min-width:0; }
.user-product-copy > div { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.user-product-copy h2 { min-width:0; margin:0; overflow:hidden; font-size:18px; text-overflow:ellipsis; white-space:nowrap; }
.user-product-copy em { flex:0 0 auto; padding:4px 8px; color:#2467d8; border-radius:11px; background:#edf4ff; font-size:11px; font-style:normal; }
.user-product-copy em.active { color:#159653; background:#e9faef; }
.user-product-copy em.expired { color:#8a94a5; background:#f0f2f5; }
.user-product-copy em.waiting { color:#d97706; background:#fff6e7; }
.user-product-copy p { margin:8px 0 0; color:#68768d; font-size:13px; }
.user-product-copy small { display:block; margin-top:8px; color:#40506a; }
.user-product-meta { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); margin:0 16px 14px; overflow:hidden; border:1px solid #e6ecf4; border-radius:9px; }
.user-product-meta > div { display:flex; min-width:0; min-height:42px; padding:0 12px; align-items:center; justify-content:space-between; gap:12px; border-top:1px solid #edf1f6; }
.user-product-meta > div:nth-child(-n+2) { border-top:0; }
.user-product-meta > div:nth-child(even) { border-left:1px solid #edf1f6; }
.user-product-meta dt { color:#77859a; font-size:12px; }
.user-product-meta dd { min-width:0; margin:0; overflow:hidden; color:#263753; font-size:12px; text-align:right; text-overflow:ellipsis; white-space:nowrap; }
.user-product-card footer { display:flex; min-height:42px; padding:0 16px; align-items:center; justify-content:space-between; gap:12px; color:#68778e; border-top:1px solid #edf1f6; background:#f9fbfe; font-size:12px; }
.user-product-card footer em { color:#1768dd; font-style:normal; }
.user-product-empty { padding:55px 20px; color:#718096; border:1px solid #e1e9f3; border-radius:15px; background:#fff; text-align:center; }
.user-product-empty svg { width:64px; height:64px; margin:0 auto 15px; color:#9bb8dc; }
.user-product-empty h2 { margin:0; color:#32445f; font-size:18px; }
.user-product-empty p { margin:9px 0 0; font-size:13px; }

@media (max-width:760px) {
    .user-products-body .app-shell.role-user { display:block; min-height:100vh; background:#f3f7fc; }
    .user-products-body .role-user > .app-sidebar,
    .user-products-body .role-user .app-topbar { display:none; }
    .user-products-body .role-user .page-body { padding:0; }
    .user-products-body .role-user .page-body > .card { padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
    .user-products-page { width:100%; max-width:none; }
    .user-products-header { min-height:82px; padding:14px 18px; }
    .user-products-header > a { left:11px; width:30px; height:30px; }
    .user-products-header > a svg { width:22px; height:22px; }
    .user-products-header h1 { font-size:20px; }
    .user-products-header p { margin-top:5px; font-size:10px; }
    .user-products-header > span { right:15px; min-width:28px; height:28px; font-size:12px; }
    .user-products-content { gap:10px; padding:12px 12px calc(62px + env(safe-area-inset-bottom)); }
    .user-products-summary { padding:11px 8px; border-radius:12px; }
    .user-products-summary span { font-size:10px; }
    .user-products-summary strong { margin-top:4px; font-size:19px; }
    .user-products-search { min-height:43px; padding-left:12px; border-radius:10px; }
    .user-products-search > svg { width:18px; height:18px; }
    .user-products-search input { min-height:32px; font-size:12px; }
    .user-products-search button,
    .user-products-search a { min-height:32px; padding:0 11px; font-size:11px; }
    .user-product-list { gap:9px; }
    .user-product-card { border-radius:12px; }
    .user-product-card-main { grid-template-columns:72px minmax(0,1fr); gap:11px; padding:12px; }
    .user-product-image { width:72px; height:72px; border-radius:10px; }
    .user-product-image svg { width:37px; height:37px; }
    .user-product-copy h2 { font-size:15px; }
    .user-product-copy em { padding:3px 7px; font-size:9px; }
    .user-product-copy p { margin-top:6px; font-size:11px; }
    .user-product-copy small { margin-top:6px; font-size:10px; }
    .user-product-meta { margin:0 12px 10px; }
    .user-product-meta > div { min-height:34px; padding:0 9px; gap:7px; }
    .user-product-meta dt,
    .user-product-meta dd { font-size:10px; }
    .user-product-card footer { min-height:36px; padding:0 12px; font-size:10px; }
    .user-product-empty { padding:42px 15px; }
}

@media (max-width:374px) {
    .user-product-meta { grid-template-columns:1fr; }
    .user-product-meta > div:nth-child(2) { border-top:1px solid #edf1f6; }
    .user-product-meta > div:nth-child(even) { border-left:0; }
}

/* Terminal user public product catalog */
.user-catalog-content { gap:12px; }
.user-catalog-layout { display:grid; grid-template-columns:116px minmax(0,1fr); gap:14px; align-items:start; }
.user-catalog-categories { position:sticky; top:12px; display:grid; overflow:hidden; border:1px solid #e1e9f3; border-radius:13px; background:#fff; box-shadow:0 7px 20px rgba(36,75,132,.06); }
.user-catalog-categories a { display:grid; min-height:52px; padding:7px 8px; place-content:center; color:#53637b; border-top:1px solid #edf1f6; text-align:center; text-decoration:none; }
.user-catalog-categories a:first-child { border-top:0; }
.user-catalog-categories a.active { position:relative; color:#096bed; background:#edf5ff; font-weight:700; }
.user-catalog-categories a.active::before { content:""; position:absolute; top:8px; bottom:8px; left:0; width:3px; border-radius:0 3px 3px 0; background:#096bed; }
.user-catalog-categories span,
.user-catalog-categories small { display:block; }
.user-catalog-categories span { font-size:13px; }
.user-catalog-categories small { margin-top:3px; color:#9aa7b8; font-size:10px; font-weight:400; }
.user-catalog-products { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.user-catalog-product-card { min-width:0; overflow:hidden; color:#152643; border:1px solid #e1e9f3; border-radius:13px; background:#fff; box-shadow:0 7px 20px rgba(36,75,132,.07); text-decoration:none; }
.user-catalog-product-card:hover { color:#152643; }
.user-catalog-product-image { position:relative; display:flex; width:100%; aspect-ratio:1.18/1; align-items:center; justify-content:center; overflow:hidden; background:linear-gradient(145deg,#f8fbff,#edf4fc); }
.user-catalog-product-image img { width:100%; height:100%; object-fit:cover; }
.user-catalog-product-image > svg { width:52px; height:52px; color:#75a2dc; }
.user-catalog-product-image em { position:absolute; right:7px; bottom:7px; padding:3px 7px; color:#087c45; border-radius:10px; background:rgba(233,250,240,.94); font-size:9px; font-style:normal; }
.user-catalog-product-copy { min-width:0; padding:11px; }
.user-catalog-product-copy > small { display:block; overflow:hidden; color:#708097; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.user-catalog-product-copy h2 { margin:5px 0 0; overflow:hidden; color:#152643; font-size:15px; text-overflow:ellipsis; white-space:nowrap; }
.user-catalog-product-copy p { margin:5px 0 0; overflow:hidden; color:#65748b; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.user-catalog-product-copy footer { display:flex; margin-top:8px; align-items:center; justify-content:space-between; gap:5px; color:#7a879a; font-size:10px; }
.user-catalog-product-copy code { min-width:0; overflow:hidden; color:#1962b8; font-size:9px; text-overflow:ellipsis; white-space:nowrap; }
.user-catalog-product-copy footer span { flex:0 0 auto; }
.user-catalog-empty { grid-column:1/-1; display:grid; min-height:220px; padding:25px; place-items:center; align-content:center; color:#7e8da2; border:1px solid #e1e9f3; border-radius:13px; background:#fff; text-align:center; }
.user-catalog-empty svg { width:55px; height:55px; margin-bottom:10px; color:#a0badb; }
.user-catalog-empty strong,
.user-catalog-empty span { display:block; }
.user-catalog-empty span { margin-top:7px; font-size:11px; }

@media (max-width:760px) {
    .user-catalog-header { min-height:74px; }
    .user-catalog-content { gap:9px; padding:10px 10px calc(61px + env(safe-area-inset-bottom)); }
    .user-catalog-search { margin:0; }
    .user-catalog-layout { grid-template-columns:76px minmax(0,1fr); gap:9px; }
    .user-catalog-categories { top:9px; max-height:calc(100vh - 144px - env(safe-area-inset-bottom)); overflow-y:auto; border-radius:10px; box-shadow:none; scrollbar-width:none; }
    .user-catalog-categories::-webkit-scrollbar { display:none; }
    .user-catalog-categories a { min-height:43px; padding:5px 4px; }
    .user-catalog-categories span { font-size:11px; line-height:1.25; }
    .user-catalog-categories small { font-size:8px; }
    .user-catalog-products { gap:8px; }
    .user-catalog-product-card { border-radius:10px; }
    .user-catalog-product-image { aspect-ratio:1/1; }
    .user-catalog-product-image > svg { width:38px; height:38px; }
    .user-catalog-product-image em { right:4px; bottom:4px; padding:2px 5px; font-size:7px; }
    .user-catalog-product-copy { padding:7px; }
    .user-catalog-product-copy > small { font-size:8px; }
    .user-catalog-product-copy h2 { margin-top:3px; font-size:12px; }
    .user-catalog-product-copy p { margin-top:3px; font-size:9px; }
    .user-catalog-product-copy footer { margin-top:5px; font-size:8px; }
    .user-catalog-product-copy code { font-size:8px; }
    .user-home-bottom-nav { width:100%; max-width:100vw; }
}

@media (max-width:360px) {
    .user-catalog-content { padding-right:7px; padding-left:7px; }
    .user-catalog-layout { grid-template-columns:69px minmax(0,1fr); gap:6px; }
    .user-catalog-products { gap:6px; }
    .user-catalog-product-copy { padding:6px; }
}

/* Terminal category page - reference UI */
.user-category-page { background:#f8fafc; }
.user-category-topbar { position:relative; display:flex; height:82px; padding:0 28px; align-items:center; justify-content:center; box-sizing:border-box; background:#fff; }
.user-category-topbar > a { position:absolute; left:24px; display:flex; width:35px; height:35px; align-items:center; justify-content:center; color:#111827; transform:rotate(180deg); }
.user-category-topbar > a svg { width:28px; height:28px; }
.user-category-topbar h1 { margin:0; color:#111827; font-size:26px; letter-spacing:2px; }
.user-category-view-actions { position:absolute; right:22px; display:grid; width:82px; height:42px; grid-template-columns:1fr 1fr; align-items:center; border:1px solid #e3e8ef; border-radius:22px; background:#fff; box-shadow:0 3px 12px rgba(27,47,78,.04); }
.user-category-view-actions::after { content:""; position:absolute; top:10px; bottom:10px; left:50%; width:1px; background:#e4e8ee; }
.user-category-view-actions i,
.user-category-view-actions b { position:relative; display:block; width:22px; height:22px; margin:auto; }
.user-category-view-actions i::before { content:""; position:absolute; top:3px; left:2px; width:15px; height:2px; border-radius:2px; background:#111827; box-shadow:0 7px #111827,0 14px #111827; }
.user-category-view-actions i::after { content:""; position:absolute; top:3px; right:1px; width:3px; height:2px; border-radius:2px; background:#111827; box-shadow:0 7px #111827,0 14px #111827; }
.user-category-view-actions b::before { content:""; position:absolute; inset:2px; border:2px dashed #111827; border-radius:5px; }
.user-category-content { padding-top:0; background:linear-gradient(180deg,#fff 0,#f8fafc 220px); }
.user-category-search { border-radius:22px; box-shadow:none; }
.user-category-tabs { display:flex; align-items:center; gap:10px; }
.user-category-tabs a { display:flex; min-width:78px; min-height:38px; padding:0 16px; align-items:center; justify-content:center; box-sizing:border-box; color:#566277; border-radius:20px; background:#f2f4f7; text-decoration:none; }
.user-category-tabs a.active { color:#fff; background:linear-gradient(135deg,#126ff1,#0a58df); box-shadow:0 5px 12px rgba(17,99,231,.18); }
.user-category-layout { grid-template-columns:150px minmax(0,1fr); gap:16px; }
.user-category-sidebar { top:12px; border:0; border-radius:0; background:linear-gradient(180deg,#f2f5fa,#f8fafc); box-shadow:none; }
.user-category-sidebar a { min-height:68px; border:0; background:transparent; }
.user-category-sidebar a.active { color:#0868e8; border-radius:0; background:#fff; box-shadow:0 5px 16px rgba(36,76,137,.06); }
.user-category-main { display:grid; min-width:0; gap:14px; }
.user-category-banner { position:relative; display:grid; min-height:176px; grid-template-columns:minmax(0,1.1fr) minmax(170px,.9fr); overflow:hidden; border-radius:17px; background:linear-gradient(125deg,#eaf4ff,#cde2ff 72%,#f3f8ff); }
.user-category-banner > div { position:relative; z-index:2; align-self:center; padding:24px 0 24px 28px; }
.user-category-banner span { color:#0b4a9f; font-size:24px; font-weight:800; }
.user-category-banner h2 { margin:8px 0 0; color:#0d3978; font-size:21px; }
.user-category-banner p { margin:13px 0 0; color:#3472c8; font-size:13px; }
.user-category-banner i { display:block; width:8px; height:8px; margin-top:20px; border-radius:50%; background:#176de9; box-shadow:16px 0 #b6d2f7,32px 0 #c9dcf5; }
.user-category-banner figure { position:relative; z-index:1; display:flex; min-width:0; margin:0; align-items:center; justify-content:center; }
.user-category-banner figure::before { content:""; position:absolute; width:165px; height:165px; border-radius:50%; background:rgba(255,255,255,.45); filter:blur(2px); }
.user-category-banner img { position:relative; z-index:1; width:90%; height:90%; object-fit:contain; filter:drop-shadow(0 12px 15px rgba(35,83,148,.18)); }
.user-category-banner figure > svg { position:relative; z-index:1; width:90px; height:90px; color:#3f83df; }
.user-category-section-title { display:flex; align-items:center; justify-content:space-between; }
.user-category-section-title h2 { margin:0; color:#14233d; font-size:18px; }
.user-category-section-title h2::before { content:""; display:inline-block; width:6px; height:17px; margin-right:8px; border-radius:4px; background:#126dea; vertical-align:-3px; }
.user-category-section-title span { color:#8a96a8; font-size:12px; }
.user-category-product-card { border-color:#edf1f6; box-shadow:0 6px 18px rgba(34,71,126,.05); }
.user-category-product-card .user-catalog-product-image { background:linear-gradient(145deg,#f8fafc,#f2f5f9); }
.user-category-product-card .user-catalog-product-image img { padding:7px; box-sizing:border-box; object-fit:contain; }

@media (max-width:760px) {
    .user-category-page { min-height:100vh; }
    .user-category-topbar { height:60px; padding:0 14px; }
    .user-category-topbar > a { left:6px; width:32px; height:32px; }
    .user-category-topbar > a svg { width:23px; height:23px; }
    .user-category-topbar h1 { font-size:20px; }
    .user-category-view-actions { right:10px; width:67px; height:36px; border-radius:19px; }
    .user-category-view-actions i,
    .user-category-view-actions b { transform:scale(.8); }
    .user-category-content { gap:9px; padding:5px 10px calc(61px + env(safe-area-inset-bottom)); }
    .user-category-search { min-height:42px; padding-right:12px; border-radius:22px; background:#fff; }
    .user-category-search input { font-size:12px; }
    .user-category-search button { display:none; }
    .user-category-tabs { gap:7px; padding:1px 0 3px; }
    .user-category-tabs a { min-width:0; min-height:31px; padding:0 17px; border-radius:17px; font-size:12px; }
    .user-category-layout { grid-template-columns:86px minmax(0,1fr); gap:8px; margin:0 -10px; }
    .user-category-sidebar { top:5px; max-height:calc(100vh - 157px - env(safe-area-inset-bottom)); padding:5px 0; border-radius:0; }
    .user-category-sidebar a { min-height:52px; padding:6px 5px; }
    .user-category-sidebar a.active { border-radius:0; }
    .user-category-sidebar span { font-size:11px; }
    .user-category-main { gap:9px; padding-right:10px; }
    .user-category-banner { min-height:102px; grid-template-columns:minmax(0,1.15fr) minmax(82px,.85fr); border-radius:12px; }
    .user-category-banner > div { padding:13px 0 12px 14px; }
    .user-category-banner span { font-size:15px; }
    .user-category-banner h2 { margin-top:5px; font-size:12px; }
    .user-category-banner p { margin-top:7px; font-size:8px; }
    .user-category-banner i { width:5px; height:5px; margin-top:9px; box-shadow:10px 0 #b6d2f7,20px 0 #c9dcf5; }
    .user-category-banner figure::before { width:85px; height:85px; }
    .user-category-banner figure > svg { width:48px; height:48px; }
    .user-category-section-title h2 { font-size:13px; }
    .user-category-section-title h2::before { width:4px; height:13px; margin-right:5px; }
    .user-category-section-title span { font-size:9px; }
    .user-category-products { grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
    .user-category-product-card .user-catalog-product-image { aspect-ratio:1.06/1; }
    .user-category-product-card .user-catalog-product-copy h2 { font-size:11px; }
    .user-category-product-card .user-catalog-product-copy p { font-size:8px; }
    .user-products-body .user-home-bottom-nav { position:fixed; right:0; bottom:0; left:0; width:100%; max-width:100vw; }
}

@media (max-width:360px) {
    .user-category-layout { grid-template-columns:78px minmax(0,1fr); }
    .user-category-tabs a { padding:0 13px; }
    .user-category-banner > div { padding-left:10px; }
    .user-category-banner span { font-size:13px; }
}

/* Worker and terminal user portals are mobile-only surfaces. */
html.mobile-only-desktop-host,
html.mobile-only-desktop-host body { width:100%; height:100%; margin:0; overflow:hidden; }
html.mobile-only-desktop-host body { display:flex; align-items:stretch; justify-content:center; background:linear-gradient(135deg,#eaf2fc,#f7f9fd 48%,#e6eef9); }
html.mobile-only-desktop-host body > *:not(.mobile-only-portal-frame) { display:none!important; }
.mobile-only-portal-frame { display:block; width:min(430px,100vw); height:100vh; height:100dvh; margin:0 auto; border:0; background:#fff; box-shadow:0 0 45px rgba(35,65,110,.18); }

/* Terminal user shared mobile modules */
.user-mobile-module { max-width:620px; min-height:100vh; margin:0 auto; color:#10213f; background:#f3f7fc; }
.user-mobile-module svg { display:block; width:1em; height:1em; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.user-module-header { position:relative; display:flex; min-height:112px; padding:22px 28px; align-items:center; justify-content:center; box-sizing:border-box; color:#fff; background:linear-gradient(125deg,#0875f5,#126be8 68%,#3b91f8); }
.user-module-header::after { content:""; position:absolute; right:-60px; bottom:-45px; width:220px; height:90px; border-radius:50%; background:rgba(255,255,255,.08); transform:rotate(-9deg); }
.user-module-header > a { position:absolute; left:20px; z-index:2; display:flex; width:34px; height:34px; align-items:center; justify-content:center; color:#fff; transform:rotate(180deg); }
.user-module-header > a svg { width:26px; height:26px; }
.user-module-header > div { position:relative; z-index:1; text-align:center; }
.user-module-header h1 { margin:0; font-size:27px; letter-spacing:1px; }
.user-module-header p { margin:7px 0 0; color:rgba(255,255,255,.8); font-size:13px; }
.user-module-header > span { position:absolute; right:24px; z-index:2; display:flex; min-width:34px; height:34px; padding:0 9px; align-items:center; justify-content:center; box-sizing:border-box; border:1px solid rgba(255,255,255,.5); border-radius:18px; background:rgba(255,255,255,.14); }
.user-module-header > span svg { width:20px; height:20px; }
.user-module-content { display:grid; gap:14px; padding:16px 18px 82px; }
.user-module-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding:14px 8px; border:1px solid #e1e9f3; border-radius:14px; background:#fff; box-shadow:0 7px 20px rgba(36,75,132,.07); }
.user-module-summary > div { text-align:center; border-left:1px solid #e7edf5; }
.user-module-summary > div:first-child { border-left:0; }
.user-module-summary strong,
.user-module-summary span { display:block; }
.user-module-summary strong { color:#0969e9; font-size:24px; }
.user-module-summary span { margin-top:5px; color:#6e7c91; font-size:11px; }
.user-service-order-list { display:grid; gap:12px; }
.user-service-order-card { overflow:hidden; border:1px solid #e1e9f3; border-radius:14px; background:#fff; box-shadow:0 7px 20px rgba(36,75,132,.07); }
.user-service-order-card > header { display:flex; min-height:58px; padding:10px 14px; align-items:center; justify-content:space-between; gap:12px; box-sizing:border-box; border-bottom:1px solid #edf1f6; }
.user-service-order-card > header small { color:#8491a4; font-size:10px; }
.user-service-order-card > header h2 { margin:3px 0 0; font-size:15px; }
.user-service-order-card > header em { padding:4px 8px; color:#1768dd; border-radius:11px; background:#edf4ff; font-size:10px; font-style:normal; }
.user-service-order-products { display:grid; grid-template-columns:42px minmax(0,1fr); gap:10px; padding:13px 14px; align-items:center; }
.user-service-order-products > svg { width:36px; height:36px; color:#337de8; }
.user-service-order-products strong,
.user-service-order-products span { display:block; }
.user-service-order-products strong { font-size:14px; }
.user-service-order-products span { margin-top:4px; color:#748197; font-size:10px; }
.user-service-order-card dl { display:grid; gap:0; margin:0 14px 12px; overflow:hidden; border:1px solid #e7edf5; border-radius:8px; }
.user-service-order-card dl > div { display:flex; min-height:32px; padding:0 9px; align-items:center; justify-content:space-between; gap:12px; border-top:1px solid #edf1f6; }
.user-service-order-card dl > div:first-child { border-top:0; }
.user-service-order-card dt { color:#7b899d; font-size:10px; }
.user-service-order-card dd { min-width:0; margin:0; overflow:hidden; font-size:10px; text-align:right; text-overflow:ellipsis; white-space:nowrap; }
.user-service-order-card > form { padding:0 14px 13px; }
.user-service-order-card > form button { width:100%; min-height:38px; color:#fff; border:0; border-radius:8px; background:#0b6fec; font-weight:700; }
.user-module-empty { display:grid; min-height:240px; padding:25px; place-items:center; align-content:center; color:#8090a5; border-radius:14px; background:#fff; text-align:center; }
.user-module-empty svg { width:60px; height:60px; margin-bottom:12px; color:#9cb9dc; }
.user-module-empty strong,
.user-module-empty span { display:block; }
.user-module-empty span { margin-top:7px; font-size:11px; }
.user-profile-identity { display:flex; padding:18px; align-items:center; gap:16px; border-radius:14px; color:#fff; background:linear-gradient(125deg,#0c70ee,#368df6); box-shadow:0 10px 24px rgba(23,103,224,.18); }
.user-profile-identity > i { display:flex; width:70px; height:70px; flex:0 0 auto; align-items:center; justify-content:center; border-radius:50%; background:rgba(255,255,255,.2); font-style:normal; }
.user-profile-identity > i svg { width:48px; height:48px; }
.user-profile-identity h2 { margin:0; font-size:21px; }
.user-profile-identity p { margin:6px 0 0; color:rgba(255,255,255,.82); font-size:12px; }
.user-profile-identity em { display:inline-block; margin-top:8px; padding:3px 9px; border-radius:10px; background:rgba(255,255,255,.18); font-size:10px; font-style:normal; }
.user-profile-panel { padding:14px; border:1px solid #e1e9f3; border-radius:14px; background:#fff; box-shadow:0 7px 20px rgba(36,75,132,.06); }
.user-profile-panel h2 { margin:0 0 10px; font-size:16px; }
.user-profile-panel dl { margin:0; overflow:hidden; border:1px solid #e6edf5; border-radius:9px; }
.user-profile-panel dl > div { display:flex; min-height:40px; padding:0 11px; align-items:center; justify-content:space-between; gap:12px; border-top:1px solid #edf1f6; }
.user-profile-panel dl > div:first-child { border-top:0; }
.user-profile-panel dt { color:#77869a; font-size:11px; }
.user-profile-panel dd { margin:0; font-size:11px; text-align:right; }
.user-profile-actions { overflow:hidden; border:1px solid #e1e9f3; border-radius:14px; background:#fff; }
.user-profile-actions a { display:grid; grid-template-columns:25px minmax(0,1fr) 14px; min-height:48px; padding:0 13px; align-items:center; gap:8px; color:#263752; border-top:1px solid #edf1f6; text-decoration:none; }
.user-profile-actions a:first-child { border-top:0; }
.user-profile-actions svg { width:21px; height:21px; color:#126bea; }
.user-profile-actions b { color:#9ba9bb; font-size:20px; font-weight:400; }
.user-profile-actions a.logout { color:#ee3e35; }
.user-profile-actions a.logout svg { color:#ee3e35; }

@media (max-width:760px) {
    .user-mobile-module-body .app-shell.role-user { display:block; min-height:100vh; background:#f3f7fc; }
    .user-mobile-module-body .role-user > .app-sidebar,
    .user-mobile-module-body .role-user .app-topbar { display:none; }
    .user-mobile-module-body .role-user .page-body { padding:0; }
    .user-mobile-module-body .role-user .page-body > .card { padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
    .user-mobile-module { width:100%; max-width:none; }
    .user-module-header { min-height:78px; padding:13px 15px; }
    .user-module-header > a { left:5px; width:31px; height:31px; }
    .user-module-header > a svg { width:22px; height:22px; }
    .user-module-header h1 { font-size:20px; }
    .user-module-header p { margin-top:4px; font-size:10px; }
    .user-module-header > span { right:13px; min-width:28px; height:28px; padding:0 7px; font-size:11px; }
    .user-module-header > span svg { width:17px; height:17px; }
    .user-module-content { gap:10px; padding:11px 11px calc(61px + env(safe-area-inset-bottom)); }
    .user-module-summary { padding:11px 6px; border-radius:11px; }
    .user-module-summary strong { font-size:20px; }
    .user-service-order-list { gap:9px; }
    .user-service-order-card { border-radius:11px; }
    .user-profile-identity { padding:15px; border-radius:12px; }
    .user-profile-identity > i { width:60px; height:60px; }
    .user-profile-identity > i svg { width:41px; height:41px; }
    .user-profile-identity h2 { font-size:18px; }
    .user-profile-panel,
    .user-profile-actions { border-radius:11px; }
    .user-services-page { padding-top:calc(78px + env(safe-area-inset-top)); box-sizing:border-box; }
    .user-services-page > .user-module-header { position:fixed; top:0; right:0; left:0; z-index:110; width:100%; min-height:calc(78px + env(safe-area-inset-top)); padding-top:calc(13px + env(safe-area-inset-top)); }
    .user-services-page > .user-home-bottom-nav { position:fixed; right:0; bottom:0; left:0; z-index:110; width:100%; max-width:100vw; }
}

/* Terminal user product detail */
.user-product-detail-page { background:#f4f7fb; }
.user-product-detail-header { position:relative; display:flex; min-height:76px; padding:0 20px; align-items:center; justify-content:center; box-sizing:border-box; border-bottom:1px solid #e7edf5; background:#fff; }
.user-product-detail-header > a { position:absolute; left:13px; display:flex; width:36px; height:36px; align-items:center; justify-content:center; color:#17263e; transform:rotate(180deg); }
.user-product-detail-header > a svg { width:25px; height:25px; }
.user-product-detail-header h1 { margin:0; font-size:21px; }
.user-product-detail-header > span { position:absolute; right:18px; display:flex; width:33px; height:33px; align-items:center; justify-content:center; color:#176ce7; border-radius:50%; background:#edf4ff; }
.user-product-detail-header > span svg { width:19px; height:19px; }
.user-product-detail-content { display:grid; gap:13px; padding:14px 16px 82px; }
.user-product-detail-gallery,
.user-product-detail-info,
.user-product-warranty-panel,
.user-product-detail-description { border:1px solid #e1e9f3; border-radius:14px; background:#fff; box-shadow:0 7px 20px rgba(36,75,132,.06); }
.user-product-detail-gallery { overflow:hidden; }
.user-product-detail-gallery > figure { display:flex; min-height:330px; margin:0; align-items:center; justify-content:center; background:linear-gradient(145deg,#fbfdff,#eef4fb); }
.user-product-detail-gallery > figure img { width:100%; height:330px; padding:18px; box-sizing:border-box; object-fit:contain; }
.user-product-detail-gallery > figure svg { width:90px; height:90px; color:#83a9d7; }
.user-product-detail-info { overflow:hidden; }
.user-product-detail-title { padding:17px; }
.user-product-detail-title h2 { margin:0; color:#13233e; font-size:22px; }
.user-product-detail-info dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); margin:0; border-top:1px solid #e8eef5; }
.user-product-detail-info dl > div { display:flex; min-height:43px; padding:0 13px; align-items:center; justify-content:space-between; gap:8px; border-top:1px solid #edf1f6; }
.user-product-detail-info dl > div:nth-child(-n+2) { border-top:0; }
.user-product-detail-info dl > div:nth-child(even) { border-left:1px solid #edf1f6; }
.user-product-detail-info dt { color:#7c899c; font-size:11px; }
.user-product-detail-info dd { min-width:0; margin:0; overflow:hidden; font-size:11px; text-align:right; text-overflow:ellipsis; white-space:nowrap; }
.user-product-warranty-panel { display:grid; grid-template-columns:48px minmax(0,1fr); gap:12px; padding:16px; align-items:center; color:#1555a8; background:linear-gradient(135deg,#eef6ff,#fff); }
.user-product-warranty-panel > svg { width:43px; height:43px; color:#176de8; }
.user-product-warranty-panel h2 { margin:0; font-size:16px; }
.user-product-warranty-panel p { margin:6px 0 0; color:#64758d; font-size:11px; line-height:1.55; }
.user-product-detail-description { padding:16px; }
.user-product-detail-description > h2 { position:relative; margin:0 0 13px; padding-left:11px; font-size:17px; }
.user-product-detail-description > h2::before { content:""; position:absolute; top:2px; bottom:2px; left:0; width:4px; border-radius:3px; background:#126bea; }
.user-product-detail-description > .user-product-detail-richtext,
.user-product-detail-description > p { margin:0; color:#526179; font-size:12px; line-height:1.8; }
.user-product-detail-richtext img { display:block; max-width:100%; height:auto; margin:10px auto; border-radius:8px; }
.user-product-detail-richtext:empty { display:none; }
.user-product-detail-richtext p { margin:0 0 8px; }
.user-product-detail-richtext p:last-child { margin-bottom:0; }
.user-product-detail-description ul,
.user-product-detail-description ol { padding-left:20px; }
.user-product-detail-images { display:grid; gap:0; margin:0; }
.user-product-detail-richtext + .user-product-detail-images { padding-top:0; border-top:0; }
.user-product-detail-images figure { overflow:hidden; margin:0; border-radius:0; background:#f5f8fc; }
.user-product-detail-images img { display:block; width:100%; height:auto; object-fit:contain; }
.user-product-detail-content .user-module-empty a { display:flex; min-height:38px; margin-top:16px; padding:0 18px; align-items:center; justify-content:center; color:#fff; border-radius:8px; background:#0a6fec; text-decoration:none; }

@media (max-width:760px) {
    .user-product-detail-body .app-shell.role-user { display:block; min-height:100vh; background:#f4f7fb; }
    .user-product-detail-body .role-user > .app-sidebar,
    .user-product-detail-body .role-user .app-topbar { display:none; }
    .user-product-detail-body .role-user .page-body { padding:0; }
    .user-product-detail-body .role-user .page-body > .card { padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
    .user-product-detail-page { width:100%; max-width:none; }
    .user-product-detail-header { min-height:58px; }
    .user-product-detail-header h1 { font-size:18px; }
    .user-product-detail-content { gap:9px; padding:10px 10px calc(61px + env(safe-area-inset-bottom)); }
    .user-product-detail-gallery,
    .user-product-detail-info,
    .user-product-warranty-panel,
    .user-product-detail-description { border-radius:11px; }
    .user-product-detail-gallery > figure { min-height:255px; }
    .user-product-detail-gallery > figure img { height:255px; padding:13px; }
    .user-product-detail-title { padding:14px; }
    .user-product-detail-title h2 { font-size:19px; }
    .user-product-detail-info dl > div { min-height:38px; padding:0 10px; }
    .user-product-detail-info dt,
    .user-product-detail-info dd { font-size:10px; }
    .user-product-detail-description { padding:14px; }
}

/* Terminal service orders v2 and timeline */
.user-service-order-card-v2 > header { min-height:55px; }
.user-service-order-card-v2 .user-service-order-products { grid-template-columns:58px minmax(0,1fr); padding:12px 14px; }
.user-service-order-products > span { display:flex; width:54px; height:54px; align-items:center; justify-content:center; overflow:hidden; border-radius:9px; background:#f1f6fc; }
.user-service-order-products > span img { width:100%; height:100%; object-fit:cover; }
.user-service-order-products > span svg { width:32px; height:32px; color:#337de8; }
.user-service-order-products small { display:block; margin-top:4px; color:#738096; font-size:10px; }
.user-service-order-products p { margin:5px 0 0; overflow:hidden; color:#52627a; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.user-service-mini-timeline { position:relative; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin:0 14px 11px; padding-top:3px; }
.user-service-mini-timeline::before { content:""; position:absolute; top:13px; right:16.66%; left:16.66%; height:2px; background:#dfe7f1; }
.user-service-mini-timeline > div { position:relative; z-index:1; display:grid; justify-items:center; gap:4px; color:#94a0b1; font-size:9px; }
.user-service-mini-timeline i { display:flex; width:22px; height:22px; align-items:center; justify-content:center; box-sizing:border-box; color:#8796aa; border:2px solid #d8e2ee; border-radius:50%; background:#fff; font-size:9px; font-style:normal; }
.user-service-mini-timeline .done i { color:#fff; border-color:#25b96a; background:#25b96a; }
.user-service-mini-timeline .done { color:#238b56; }
.user-service-mini-timeline .current i { color:#fff; border-color:#126dea; background:#126dea; box-shadow:0 0 0 4px #e8f1ff; }
.user-service-order-card-v2 > footer { display:flex; min-height:39px; padding:0 14px; align-items:center; justify-content:space-between; gap:10px; color:#8290a4; border-top:1px solid #edf1f6; background:#f9fbfe; font-size:9px; }
.user-service-order-card-v2 > footer a { display:flex; align-items:center; gap:4px; color:#0969e8; font-size:11px; font-weight:700; text-decoration:none; }
.user-service-order-card-v2 > footer b { font-size:17px; font-weight:400; }
.user-service-view-page { background:#f3f7fc; }
.user-service-current { display:flex; padding:16px; align-items:center; justify-content:space-between; gap:12px; color:#fff; border-radius:13px; background:linear-gradient(125deg,#0874f3,#3b91f7); box-shadow:0 9px 23px rgba(20,102,224,.18); }
.user-service-current span { color:rgba(255,255,255,.78); font-size:10px; }
.user-service-current h2 { margin:4px 0 0; font-size:20px; }
.user-service-current p { margin:5px 0 0; color:rgba(255,255,255,.75); font-size:9px; }
.user-service-current em { padding:5px 9px; border-radius:13px; background:rgba(255,255,255,.18); font-size:10px; font-style:normal; }
.user-service-timeline-card,
.user-service-detail-panel { padding:15px; border:1px solid #e1e9f3; border-radius:13px; background:#fff; box-shadow:0 7px 20px rgba(36,75,132,.06); }
.user-service-timeline-card > h2,
.user-service-detail-panel > h2 { position:relative; margin:0 0 14px; padding-left:10px; font-size:15px; }
.user-service-timeline-card > h2::before,
.user-service-detail-panel > h2::before { content:""; position:absolute; top:1px; bottom:1px; left:0; width:4px; border-radius:3px; background:#126bea; }
.user-service-timeline { display:grid; gap:0; padding-left:4px; }
.user-service-timeline > div { position:relative; display:grid; min-height:66px; grid-template-columns:28px minmax(0,1fr); gap:10px; color:#8795a8; }
.user-service-timeline > div:not(:last-child)::after { content:""; position:absolute; top:27px; bottom:0; left:12px; width:2px; background:#dfe7f1; }
.user-service-timeline i { position:relative; z-index:1; display:flex; width:26px; height:26px; align-items:center; justify-content:center; box-sizing:border-box; border:2px solid #d7e1ed; border-radius:50%; background:#fff; font-size:10px; font-style:normal; }
.user-service-timeline strong,
.user-service-timeline small { display:block; }
.user-service-timeline strong { color:#34445d; font-size:13px; }
.user-service-timeline small { margin-top:5px; color:#8491a4; font-size:10px; }
.user-service-timeline .done i { color:#fff; border-color:#24b969; background:#24b969; }
.user-service-timeline .done:not(:last-child)::after { background:#7bd5a4; }
.user-service-timeline .current i { box-shadow:0 0 0 4px #e8f1ff; }
.user-service-detail-product { display:grid; grid-template-columns:58px minmax(0,1fr); gap:10px; padding:10px 0; align-items:center; border-top:1px solid #edf1f6; }
.user-service-detail-panel > h2 + .user-service-detail-product { border-top:0; }
.user-service-detail-product > span { display:flex; width:54px; height:54px; align-items:center; justify-content:center; overflow:hidden; border-radius:8px; background:#f0f5fb; }
.user-service-detail-product img { width:100%; height:100%; object-fit:cover; }
.user-service-detail-product svg { width:31px; height:31px; color:#337de8; }
.user-service-detail-product strong,
.user-service-detail-product small { display:block; }
.user-service-detail-product strong { font-size:13px; }
.user-service-detail-product small { margin-top:4px; color:#728097; font-size:9px; }
.user-service-detail-product p { margin:5px 0 0; color:#526179; font-size:9px; }
.user-service-detail-panel dl { margin:0; overflow:hidden; border:1px solid #e7edf5; border-radius:8px; }
.user-service-detail-panel dl > div { display:flex; min-height:37px; padding:0 10px; align-items:center; justify-content:space-between; gap:12px; border-top:1px solid #edf1f6; }
.user-service-detail-panel dl > div:first-child { border-top:0; }
.user-service-detail-panel dt { flex:0 0 auto; color:#7d8a9e; font-size:10px; }
.user-service-detail-panel dd { min-width:0; margin:0; overflow:hidden; font-size:10px; text-align:right; text-overflow:ellipsis; white-space:nowrap; }
.user-service-confirm-form button { width:100%; min-height:44px; color:#fff; border:0; border-radius:9px; background:#0b6fec; font-weight:700; }
.user-construction-evidence { padding:15px; overflow:hidden; border:1px solid #e1e9f3; border-radius:13px; background:#fff; box-shadow:0 7px 20px rgba(36,75,132,.06); }
.user-construction-evidence-title { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.user-construction-evidence-title h2 { position:relative; margin:0; padding-left:10px; font-size:15px; }
.user-construction-evidence-title h2::before { content:""; position:absolute; top:1px; bottom:1px; left:0; width:4px; border-radius:3px; background:#126bea; }
.user-construction-evidence-title p { margin:6px 0 0 10px; color:#7d8a9e; font-size:9px; }
.user-construction-evidence-title > span { flex:0 0 auto; padding:4px 8px; color:#1768dd; border-radius:11px; background:#edf4ff; font-size:9px; }
.user-evidence-phase-flow { display:grid; grid-template-columns:repeat(6,76px); gap:0; margin:15px -3px 0; padding:0 3px 8px; overflow-x:auto; overscroll-behavior-x:contain; scrollbar-width:none; }
.user-evidence-phase-flow::-webkit-scrollbar { display:none; }
.user-evidence-phase-flow > div { position:relative; display:grid; justify-items:center; align-content:start; gap:4px; color:#8b98aa; text-align:center; }
.user-evidence-phase-flow > div:not(:last-child)::after { content:""; position:absolute; top:11px; left:50%; width:100%; height:2px; background:#dfe7f1; }
.user-evidence-phase-flow i { position:relative; z-index:1; display:flex; width:24px; height:24px; align-items:center; justify-content:center; box-sizing:border-box; border:2px solid #d7e1ed; border-radius:50%; background:#fff; font-size:9px; font-style:normal; }
.user-evidence-phase-flow span { position:relative; z-index:1; max-width:72px; font-size:9px; line-height:1.35; }
.user-evidence-phase-flow small { position:relative; z-index:1; color:#a0aabd; font-size:8px; }
.user-evidence-phase-flow .done { color:#228e56; }
.user-evidence-phase-flow .done i { color:#fff; border-color:#25b96a; background:#25b96a; }
.user-evidence-phase-flow .done:not(:last-child)::after { background:#78d4a2; }
.user-evidence-phase-section { margin-top:13px; padding-top:13px; border-top:1px solid #edf1f6; }
.user-evidence-phase-section > header { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.user-evidence-phase-section > header h3 { margin:0; color:#263750; font-size:13px; }
.user-evidence-phase-section > header p { margin:4px 0 0; color:#8491a4; font-size:9px; }
.user-evidence-phase-section > header > span { flex:0 0 auto; color:#1768dd; font-size:9px; }
.user-evidence-photo-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:10px; }
.user-evidence-photo-grid figure { min-width:0; margin:0; overflow:hidden; border:1px solid #e2e9f2; border-radius:9px; background:#f8fafd; }
.user-evidence-photo-grid figure > a { display:block; aspect-ratio:4/3; overflow:hidden; background:#eef3f9; }
.user-evidence-photo-grid img { display:block; width:100%; height:100%; object-fit:cover; }
.user-evidence-photo-grid figcaption { display:grid; gap:3px; padding:8px; }
.user-evidence-photo-grid strong { overflow:hidden; color:#273751; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.user-evidence-photo-grid span { overflow:hidden; color:#66758b; font-size:9px; text-overflow:ellipsis; white-space:nowrap; }
.user-evidence-photo-grid small { overflow:hidden; color:#8b97a9; font-size:8px; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; }
.user-evidence-empty { display:grid; min-height:145px; margin-top:13px; place-items:center; align-content:center; color:#8a98aa; border:1px dashed #d7e2ef; border-radius:10px; background:#f9fbfe; text-align:center; }
.user-evidence-empty svg { width:38px; height:38px; margin-bottom:8px; color:#9ab8dc; }
.user-evidence-empty strong { font-size:12px; }
.user-evidence-empty span { margin-top:5px; font-size:9px; }

@media (max-width:760px) {
    .user-service-view-page { width:100%; max-width:none; padding-top:calc(78px + env(safe-area-inset-top)); box-sizing:border-box; }
    .user-service-view-page > .user-module-header { position:fixed; top:0; right:0; left:0; z-index:110; width:100%; min-height:calc(78px + env(safe-area-inset-top)); padding-top:calc(13px + env(safe-area-inset-top)); }
    .user-service-view-page > .user-home-bottom-nav { position:fixed; right:0; bottom:0; left:0; z-index:110; width:100%; max-width:100vw; }
    .user-service-view-content { gap:9px; }
    .user-service-timeline-card,
    .user-service-detail-panel,
    .user-construction-evidence { border-radius:11px; }
}

/* Guided 360-degree construction panorama */
.worker-panorama-entry-card { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-top:12px; padding:13px 15px; border:1px solid #cfe2ff; border-radius:10px; background:linear-gradient(135deg,#f4f9ff,#edf5ff); }
.worker-panorama-entry-card > div { display:flex; min-width:0; align-items:center; gap:11px; }
.worker-panorama-entry-card > div:first-child { flex:1; }
.worker-panorama-entry-card i { display:flex; width:47px; height:47px; flex:0 0 47px; align-items:center; justify-content:center; color:#fff; border-radius:50%; background:linear-gradient(135deg,#1281f4,#0758dd); box-shadow:0 7px 16px rgba(18,105,227,.22); font-size:13px; font-style:normal; font-weight:800; }
.worker-panorama-entry-card strong,.worker-panorama-entry-card small { display:block; }
.worker-panorama-entry-card strong { color:#132b4f; font-size:15px; }
.worker-panorama-entry-card small { margin-top:4px; color:#68778d; font-size:11px; line-height:1.45; }
.worker-panorama-entry-card > div:last-child { justify-content:flex-end; }
.worker-panorama-entry-card em { padding:4px 8px; color:#805b13; border-radius:12px; background:#fff3cf; font-size:11px; font-style:normal; white-space:nowrap; }
.worker-panorama-entry-card.status-ready em { color:#087548; background:#ddf8eb; }
.worker-panorama-entry-card.status-failed em { color:#b83c35; background:#ffe7e5; }
.worker-panorama-entry-card a { padding:7px 11px; color:#fff; border-radius:7px; background:#0b6ee8; font-size:12px; text-decoration:none; white-space:nowrap; }
.worker-panorama-entry-card a.secondary { color:#0b6ee8; border:1px solid #bad4f8; background:#fff; }

.worker-vr-test-card { position:relative; display:grid; grid-template-columns:62px minmax(0,1fr) auto; padding:16px; overflow:hidden; align-items:center; gap:13px; border:1px solid #b9d5ff; border-radius:14px; background:linear-gradient(135deg,#f7fbff 0%,#eaf4ff 62%,#dcecff 100%); box-shadow:0 8px 24px rgba(18,93,190,.1); }
.worker-vr-test-card::after { content:""; pointer-events:none; position:absolute; top:-55px; right:-45px; width:150px; height:150px; border:25px solid rgba(54,139,255,.09); border-radius:50%; }
.worker-vr-test-icon { position:relative; display:flex; width:60px; height:60px; align-items:center; justify-content:center; color:#fff; border-radius:50%; background:linear-gradient(145deg,#1885f7,#0757d7); box-shadow:0 8px 18px rgba(7,92,218,.25); }
.worker-vr-test-icon i { font-size:14px; font-style:normal; font-weight:800; }.worker-vr-test-icon span { position:absolute; right:-3px; bottom:-2px; padding:2px 5px; border:2px solid #eaf4ff; border-radius:8px; background:#13a276; font-size:8px; font-weight:800; }
.worker-vr-test-card > div:nth-child(2) { min-width:0; }.worker-vr-test-card em { display:inline-flex; padding:3px 7px; color:#0967d4; border-radius:9px; background:#dcecff; font-size:9px; font-style:normal; }.worker-vr-test-card h3 { margin:5px 0 3px; color:#102d55; font-size:17px; }.worker-vr-test-card p { margin:0; color:#4f6683; font-size:11px; line-height:1.5; }.worker-vr-test-card small { display:block; margin-top:4px; color:#7d8ea4; font-size:9px; line-height:1.45; }
.worker-vr-test-card > a,.worker-vr-test-card > span.disabled { position:relative; z-index:1; display:flex; min-height:38px; padding:0 12px; align-items:center; gap:6px; color:#fff; border-radius:9px; background:#0b6ee8; font-size:11px; font-weight:700; text-decoration:none; white-space:nowrap; }.worker-vr-test-card > a b { font-size:18px; font-weight:400; }.worker-vr-test-card > span.disabled { color:#7b899c; background:#e1e8f1; }

.worker-panorama-capture-body .page-body { padding:0; background:#edf3fb; }
.worker-panorama-capture-body .page-body > .card { padding:0; border:0; border-radius:0; background:#edf3fb; box-shadow:none; }
.worker-panorama-page { display:grid; max-width:720px; min-height:100vh; margin:0 auto; padding:0 14px 92px; gap:12px; color:#10213d; background:#edf3fb; box-sizing:border-box; }
.worker-panorama-header { position:sticky; top:0; z-index:20; display:grid; grid-template-columns:38px minmax(0,1fr) auto; min-height:76px; margin:0 -14px; padding:calc(10px + env(safe-area-inset-top)) 14px 10px; align-items:center; gap:9px; color:#fff; background:linear-gradient(125deg,#0878f4,#0753d5); box-shadow:0 4px 14px rgba(14,82,173,.18); }
.worker-panorama-header > a { display:flex; width:34px; height:34px; align-items:center; justify-content:center; color:#fff; font-size:34px; line-height:1; text-decoration:none; }
.worker-panorama-header span,.worker-panorama-header h1,.worker-panorama-header p { display:block; margin:0; }
.worker-panorama-header span { opacity:.8; font-size:10px; }
.worker-panorama-header h1 { margin-top:2px; font-size:18px; }
.worker-panorama-header p { margin-top:2px; opacity:.9; font-size:11px; }
.worker-panorama-header > em { padding:5px 8px; border:1px solid rgba(255,255,255,.45); border-radius:14px; background:rgba(255,255,255,.12); font-size:11px; font-style:normal; }
.worker-panorama-guide { padding:14px; border-radius:12px; background:#fff; box-shadow:0 5px 16px rgba(38,76,130,.06); }
.worker-panorama-guide strong { font-size:15px; }
.worker-panorama-guide p { margin:6px 0 10px; color:#64748b; font-size:11px; line-height:1.6; }
.worker-panorama-guide ol { display:grid; grid-template-columns:repeat(2,1fr); gap:6px; margin:0; padding:0; list-style:none; }
.worker-panorama-guide li { padding:6px 5px; color:#1766c8; border-radius:6px; background:#eff6ff; font-size:10px; text-align:center; }
.worker-panorama-disabled { padding:10px 12px; color:#9a6212; border:1px solid #f3d99c; border-radius:9px; background:#fff9eb; font-size:11px; }
.worker-panorama-camera-card { overflow:hidden; border-radius:14px; background:#fff; box-shadow:0 6px 20px rgba(35,78,140,.08); }
.worker-panorama-camera { position:relative; overflow:hidden; aspect-ratio:4/3; color:#fff; background:#101a2c; }
.worker-panorama-camera video { display:none; width:100%; height:100%; object-fit:cover; }
.worker-panorama-camera video.active { display:block; }
.worker-panorama-camera > canvas { display:none; width:100%; height:100%; object-fit:contain; background:#101a2c; }
.worker-panorama-camera > canvas.active { display:block; }
.worker-panorama-camera.capturing::after { content:""; pointer-events:none; position:absolute; inset:0; z-index:12; background:#fff; animation:worker-panorama-flash .25s ease-out forwards; }
@keyframes worker-panorama-flash { from { opacity:.82; } to { opacity:0; } }
.worker-panorama-overlap-ghost { pointer-events:none; position:absolute; top:0; bottom:0; left:0; z-index:3; width:50%; overflow:hidden; border-right:2px dashed rgba(255,255,255,.9); background:rgba(14,108,235,.12); }
.worker-panorama-overlap-ghost[hidden] { display:none; }
.worker-panorama-overlap-ghost img { position:absolute; top:0; bottom:0; left:-100%; width:200%; height:100%; opacity:.38; object-fit:cover; filter:saturate(.65) contrast(1.08); }
.worker-panorama-overlap-ghost span { position:absolute; right:5px; bottom:42px; left:5px; padding:4px; color:#fff; border-radius:5px; background:rgba(4,43,91,.68); font-size:8px; text-align:center; }
.worker-panorama-camera-placeholder { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:7px; background:radial-gradient(circle at 50% 45%,#263b5d,#101a2c 70%); text-align:center; }
.worker-panorama-camera-placeholder[hidden] { display:none; }
.worker-panorama-camera-placeholder > i { position:relative; width:58px; height:43px; border:2px solid #77b5ff; border-radius:9px; }
.worker-panorama-camera-placeholder > i::before { content:""; position:absolute; top:9px; left:19px; width:17px; height:17px; border:2px solid #77b5ff; border-radius:50%; }
.worker-panorama-camera-placeholder > i::after { content:""; position:absolute; top:-8px; left:16px; width:24px; height:8px; border-radius:5px 5px 0 0; background:#77b5ff; }
.worker-panorama-camera-placeholder strong { font-size:16px; }
.worker-panorama-camera-placeholder small { color:#9eb0ca; font-size:11px; }
.worker-panorama-camera-overlay { --level-roll:0deg; pointer-events:none; position:absolute; inset:0; z-index:5; display:flex; align-items:center; justify-content:center; }
.worker-panorama-camera-overlay > i { width:68%; height:45%; border:1px dashed rgba(255,255,255,.7); border-radius:50%; box-shadow:0 0 0 999px rgba(4,14,30,.14); }
.worker-panorama-camera-overlay > i::before { display:none; }
.worker-panorama-camera-overlay > b { position:absolute; top:50%; left:9%; width:82%; height:2px; border-radius:2px; background:#ffb44b; box-shadow:0 0 9px rgba(255,151,35,.9); transform:rotate(var(--level-roll)); transform-origin:center; transition:background .15s,transform .08s linear; }
.worker-panorama-camera-overlay.level-ok > b { background:#39e5a1; box-shadow:0 0 9px rgba(31,229,147,.9); }
.worker-panorama-camera-overlay > span { position:absolute; bottom:12px; left:50%; padding:5px 10px; border-radius:12px; background:rgba(0,0,0,.48); font-size:10px; transform:translateX(-50%); white-space:nowrap; }
.worker-panorama-camera-overlay > span strong { color:#ffd18b; }.worker-panorama-camera-overlay.level-ok > span strong { color:#6dffc1; }
.worker-panorama-angle { position:absolute; top:10px; left:10px; z-index:7; display:grid; padding:6px 8px; border-radius:7px; background:rgba(3,14,35,.72); }
.worker-panorama-angle[hidden] { display:none; }
.worker-panorama-angle span { font-size:13px; font-weight:700; }
.worker-panorama-angle small { margin-top:2px; color:#d5e2f5; font-size:9px; }
.worker-panorama-angle.aligned { background:rgba(4,121,79,.78); }
.worker-panorama-auto-guide { position:absolute; top:9px; right:9px; z-index:7; display:grid; max-width:53%; padding:7px 9px; gap:2px; border:1px solid rgba(255,255,255,.22); border-radius:8px; background:rgba(3,18,42,.76); backdrop-filter:blur(5px); }
.worker-panorama-auto-guide[hidden] { display:none; }
.worker-panorama-auto-guide strong { padding-right:38px; font-size:11px; }.worker-panorama-auto-guide span { overflow:hidden; color:#d4e5fb; font-size:8px; line-height:1.4; text-overflow:ellipsis; white-space:nowrap; }
.worker-panorama-auto-guide em { position:absolute; top:7px; right:7px; min-width:31px; padding:3px 4px; color:#fff; border-radius:10px; background:#0878ee; font-size:8px; font-style:normal; text-align:center; }
.worker-panorama-camera-actions { display:grid; grid-template-columns:1fr 1.25fr 1fr; gap:7px; padding:11px; }
.worker-panorama-camera-actions button,.worker-panorama-file-fallback { display:flex; min-height:40px; margin:0; padding:0 8px; align-items:center; justify-content:center; color:#1767ca; border:1px solid #bed3ef; border-radius:8px; background:#fff; box-sizing:border-box; font-size:11px; cursor:pointer; }
.worker-panorama-camera-actions button.primary { color:#fff; border-color:#096aeb; background:linear-gradient(120deg,#0b7bf5,#0758dc); font-weight:700; }
.worker-panorama-camera-actions button:disabled,.worker-panorama-file-fallback.disabled { cursor:not-allowed; opacity:.45; }
.worker-panorama-file-fallback input { display:none; }
.worker-panorama-auto-bar { display:grid; grid-template-columns:auto minmax(0,1fr); padding:0 11px 10px; align-items:center; gap:8px; }
.worker-panorama-auto-bar[hidden] { display:none; }
.worker-panorama-auto-bar button { min-height:30px; padding:0 9px; color:#7a5d19; border:1px solid #e7ca84; border-radius:7px; background:#fff9e8; font-size:9px; }
.worker-panorama-auto-bar button.active { color:#08764b; border-color:#92dbba; background:#ecfff6; }
.worker-panorama-auto-bar p { margin:0; color:#748297; font-size:8px; line-height:1.45; }
.worker-panorama-file-review { display:grid; grid-template-columns:minmax(0,1fr) auto; padding:11px 12px; align-items:center; gap:10px; border-top:1px solid #e8eef6; background:#f8fbff; }
.worker-panorama-file-review[hidden] { display:none; }
.worker-panorama-file-review strong,.worker-panorama-file-review small,.worker-panorama-file-review p { display:block; margin:0; }
.worker-panorama-file-review strong { color:#16345f; font-size:12px; }
.worker-panorama-file-review small { margin-top:3px; color:#1670d7; font-size:9px; }
.worker-panorama-file-review p { margin-top:4px; color:#77879c; font-size:9px; line-height:1.45; }
.worker-panorama-file-review > div:last-child { display:flex; gap:6px; }
.worker-panorama-file-review button { min-height:34px; padding:0 9px; color:#49627f; border:1px solid #cedbea; border-radius:7px; background:#fff; font-size:10px; }
.worker-panorama-file-review button.primary { color:#fff; border-color:#0b6fe9; background:#0b6fe9; }
.worker-panorama-file-review button:disabled { opacity:.5; }
.worker-panorama-camera-state { margin:0; padding:0 12px 12px; color:#68778d; font-size:10px; text-align:center; }
.worker-panorama-camera-state.success { color:#087748; }.worker-panorama-camera-state.warning { color:#a05f09; }.worker-panorama-camera-state.error { color:#c33a36; }.worker-panorama-camera-state.loading { color:#0968d8; }
.worker-panorama-directions { padding:14px; border-radius:14px; background:#fff; box-shadow:0 6px 20px rgba(35,78,140,.07); }
.worker-panorama-directions > header { display:flex; align-items:center; justify-content:space-between; }
.worker-panorama-directions h2,.worker-panorama-directions p { margin:0; }
.worker-panorama-directions h2 { font-size:16px; }.worker-panorama-directions p { margin-top:3px; color:#748197; font-size:10px; }
.worker-panorama-directions > header > strong { color:#0b6eeb; font-size:18px; }
.worker-panorama-direction-ring { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin-top:12px; }
.worker-panorama-direction-ring button { min-width:0; padding:6px 4px 8px; color:#526179; border:1px solid #e1e8f2; border-radius:9px; background:#f9fbfe; cursor:pointer; }
.worker-panorama-direction-ring button.active { color:#0967db; border-color:#2383f3; box-shadow:0 0 0 2px rgba(20,124,238,.12); }
.worker-panorama-direction-ring button.captured { color:#087548; border-color:#a9dec6; background:#f3fff8; }
.worker-panorama-direction-ring button > span { display:flex; width:100%; aspect-ratio:1.35; overflow:hidden; align-items:center; justify-content:center; border-radius:6px; background:#eaf2fd; }
.worker-panorama-direction-ring img { width:100%; height:100%; object-fit:cover; }
.worker-panorama-direction-ring i { display:flex; width:25px; height:25px; align-items:center; justify-content:center; color:#337bd4; border-radius:50%; background:#fff; font-style:normal; font-weight:700; }
.worker-panorama-direction-ring strong,.worker-panorama-direction-ring small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.worker-panorama-direction-ring strong { margin-top:6px; font-size:10px; }.worker-panorama-direction-ring small { margin-top:2px; color:#8693a7; font-size:8px; }
.worker-panorama-result { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:14px; border:1px solid #dbe6f3; border-radius:14px; background:#fff; box-shadow:0 6px 20px rgba(35,78,140,.07); }
.worker-panorama-result > div:first-child { min-width:0; flex:1; }
.worker-panorama-result span { display:inline-flex; padding:3px 7px; color:#7a5d1b; border-radius:10px; background:#fff1c8; font-size:9px; }
.worker-panorama-result h2 { margin:6px 0 3px; font-size:15px; }.worker-panorama-result p { margin:0; color:#6c788c; font-size:10px; line-height:1.45; }
.worker-panorama-result.ready { border-color:#a7dec2; background:#f8fffb; }.worker-panorama-result.ready span { color:#08764a; background:#dcf8e9; }
.worker-panorama-result.failed { border-color:#f0b3ae; background:#fff9f8; }.worker-panorama-result.failed span { color:#bc3b34; background:#ffe4e1; }
.worker-panorama-result-actions { display:grid; flex:0 0 auto; gap:6px; }
.worker-panorama-result-actions a,.worker-panorama-result-actions button { min-width:88px; padding:8px 9px; color:#fff; border:0; border-radius:7px; background:#0b6ee7; font-size:10px; text-align:center; text-decoration:none; }
.worker-panorama-result-actions button { color:#617088; border:1px solid #d7e0eb; background:#fff; cursor:pointer; }
.worker-panorama-result-actions button.primary { color:#fff; border-color:#0b6ee7; background:#0b6ee7; }

.panorama-view-body .page-body { padding:0; background:#07101f; }
.panorama-view-body .page-body > .card { padding:0; overflow:hidden; border:0; border-radius:0; background:#07101f; box-shadow:none; }
.panorama-view-page { display:grid; max-width:1000px; min-height:100vh; margin:0 auto; color:#fff; background:#07101f; }
.panorama-view-header { display:grid; grid-template-columns:38px minmax(0,1fr) auto; min-height:70px; padding:calc(8px + env(safe-area-inset-top)) 14px 8px; align-items:center; gap:8px; background:#081529; }
.panorama-view-header > a { color:#fff; font-size:34px; text-decoration:none; }.panorama-view-header span { color:#8fa4c4; font-size:10px; }.panorama-view-header h1 { margin:3px 0 0; font-size:17px; }.panorama-view-header em { padding:5px 8px; color:#72b7ff; border:1px solid #285b91; border-radius:13px; font-size:11px; font-style:normal; }
.panorama-view-quality-warning { padding:9px 13px; color:#ffdca8; border-top:1px solid #65491f; border-bottom:1px solid #65491f; background:#31230f; font-size:11px; line-height:1.55; }
.panorama-view-stage { position:relative; min-height:calc(100vh - 170px); background:#040a12; }
#construction-panorama { width:100%; height:calc(100vh - 170px); min-height:420px; }
.panorama-view-loading { position:absolute; inset:0; z-index:5; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; background:#07101f; }
.panorama-view-loading[hidden] { display:none; }.panorama-view-loading i { width:34px; height:34px; border:3px solid #24436a; border-top-color:#2c91ff; border-radius:50%; animation:panorama-spin .8s linear infinite; }.panorama-view-loading strong { font-size:15px; }.panorama-view-loading span { color:#8294af; font-size:10px; }.panorama-view-loading.error i { border-color:#df534d; animation:none; }
@keyframes panorama-spin { to { transform:rotate(360deg); } }
.panorama-view-watermark { pointer-events:none; position:absolute; right:12px; bottom:12px; left:12px; z-index:4; display:grid; gap:2px; padding:9px 11px; border:1px solid rgba(255,255,255,.18); border-radius:8px; background:rgba(3,11,25,.68); backdrop-filter:blur(8px); }
.panorama-view-watermark strong { font-size:11px; }.panorama-view-watermark span,.panorama-view-watermark small { overflow:hidden; color:#b6c4d9; font-size:9px; text-overflow:ellipsis; white-space:nowrap; }
.panorama-view-info { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:#1a293e; }.panorama-view-info > div { display:grid; gap:3px; padding:12px; background:#0c192b; }.panorama-view-info span { color:#8296b3; font-size:9px; }.panorama-view-info strong { overflow:hidden; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }

.dealer-panorama-archive,.user-panorama-archive { padding:16px; border:1px solid #e0e7f0; border-radius:10px; background:#fff; }
.panorama-archive-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:12px; }
.panorama-archive-grid > a { overflow:hidden; color:inherit; border:1px solid #e0e8f2; border-radius:9px; background:#fff; text-decoration:none; }
.panorama-archive-grid > a > span,.user-panorama-list > a > span { position:relative; display:block; overflow:hidden; aspect-ratio:2.2; background:#e9f0f8; }
.panorama-archive-grid img,.user-panorama-list img { width:100%; height:100%; object-fit:cover; }
.panorama-archive-grid i,.user-panorama-list i { position:absolute; top:8px; right:8px; padding:4px 7px; color:#fff; border-radius:11px; background:rgba(4,91,214,.88); font-size:9px; font-style:normal; }
.panorama-archive-grid > a > div { display:grid; gap:3px; padding:9px; }.panorama-archive-grid small { color:#7c899b; font-size:10px; }.panorama-archive-grid em { color:#0b6de4; font-size:10px; font-style:normal; }
.user-panorama-archive { margin-top:12px; }
.user-panorama-list { display:grid; gap:8px; margin-top:10px; }.user-panorama-list > a { display:grid; grid-template-columns:112px minmax(0,1fr) 16px; align-items:center; gap:10px; overflow:hidden; color:inherit; border:1px solid #e1e8f1; border-radius:9px; text-decoration:none; }.user-panorama-list > a > span { aspect-ratio:1.6; }.user-panorama-list > a > div { min-width:0; }.user-panorama-list strong,.user-panorama-list small,.user-panorama-list p { display:block; margin:0; }.user-panorama-list strong { font-size:11px; }.user-panorama-list small,.user-panorama-list p { margin-top:3px; color:#77849a; font-size:8px; }.user-panorama-list > a > em { color:#0b6de5; font-size:20px; font-style:normal; }

@media (max-width:760px) {
    .worker-panorama-entry-card { display:grid; }
    .worker-panorama-entry-card > div:last-child { justify-content:flex-start; flex-wrap:wrap; padding-left:58px; }
    .worker-vr-test-card { grid-template-columns:54px minmax(0,1fr); padding:14px; }
    .worker-vr-test-icon { width:52px; height:52px; }
    .worker-vr-test-card > a,.worker-vr-test-card > span.disabled { grid-column:1/-1; justify-content:center; }
    .worker-panorama-page { max-width:400px; }
    .worker-panorama-camera-actions { grid-template-columns:1fr 1.2fr 1fr; }
    .panorama-view-page { max-width:400px; }
    .panorama-view-stage,#construction-panorama { min-height:calc(100vh - 176px); height:calc(100vh - 176px); }
    .panorama-archive-grid { grid-template-columns:1fr; }
}
.distributor-management-page { min-height:calc(100vh - 92px); display:flex; flex-direction:column; gap:13px; }
.distributor-report-head p { margin:5px 0 0; color:#8491a6; font-size:13px; }
.distributor-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:13px; }
.distributor-stats article { min-height:105px; padding:20px; position:relative; overflow:hidden; border:1px solid #e5ebf4; border-radius:14px; background:#fff; }
.distributor-stats article::after { content:""; width:120px; height:120px; position:absolute; right:-34px; bottom:-52px; border-radius:50%; background:#e9f1ff; }
.distributor-stats article:nth-child(2)::after { background:#def7ed; }
.distributor-stats article:nth-child(3)::after { background:#fff0d3; }
.distributor-stats article:nth-child(4)::after { background:#eee9ff; }
.distributor-stats span,.distributor-stats small { display:block; color:#77869c; font-size:12px; }
.distributor-stats strong { display:block; margin:5px 0; color:#16233b; font-size:24px; }
.distributor-filter { margin:0; padding:12px 14px; display:grid; grid-template-columns:1.3fr repeat(4,1fr) auto; gap:12px; align-items:end; border:1px solid #e5ebf4; border-radius:14px; background:#fff; }
.distributor-filter>div { min-width:0; }
.distributor-filter label { display:block; margin-bottom:6px; color:#48576e; font-size:12.5px; font-weight:600; }
.distributor-filter input,.distributor-filter select { width:100%; height:38px; padding:0 10px; border:1px solid #dbe4f0; border-radius:8px; color:#31405a; background:#fff; }
.distributor-filter .filter-actions { display:flex; gap:7px; }
.distributor-table-wrap { flex:1; min-height:340px; padding:0; overflow:hidden; display:flex; flex-direction:column; border:1px solid #e5ebf4; border-radius:14px; background:#fff; }
.distributor-table-scroll { flex:1; padding:11px; overflow:auto; }
.distributor-business-table { width:100%; min-width:1480px; table-layout:fixed; border:1px solid #e5ebf4; }
.distributor-business-table th { height:46px; padding:0 10px; color:#64748b; background:#f5f8fc; font-size:12.5px; text-align:center; }
.distributor-business-table td { height:70px; padding:9px 10px; color:#2d3b51; border-bottom:1px solid #edf1f6; font-size:12.5px; text-align:center; }
.distributor-business-table th:nth-child(1),.distributor-business-table td:nth-child(1) { width:92px; }
.distributor-business-table th:nth-child(2),.distributor-business-table td:nth-child(2) { width:150px; }
.distributor-business-table th:nth-child(4),.distributor-business-table td:nth-child(4) { width:125px; }
.distributor-business-table th:nth-child(5),.distributor-business-table td:nth-child(5) { width:150px; }
.distributor-business-table th:nth-child(6),.distributor-business-table td:nth-child(6) { width:190px; }
.distributor-business-table th:nth-child(10),.distributor-business-table td:nth-child(10) { width:175px; }
.distributor-business-table th:nth-child(11),.distributor-business-table td:nth-child(11) { width:180px; }
.distributor-tag-text { color:#5d6c84; line-height:1.7; }
.distributor-upgrade-link { color:#df780b !important; }
.distributor-modal-dialog { width:min(760px,calc(100vw - 40px)); }
.distributor-tag-picker { grid-column:1/-1; }
.distributor-tag-picker>div { display:flex; flex-wrap:wrap; gap:8px; }
.distributor-tag-picker>div label { margin:0; padding:8px 12px; border:1px solid #dbe4f0; border-radius:18px; color:#4c5c73; background:#f9fbfe; font-weight:500; cursor:pointer; }
.distributor-tag-picker input { width:auto; height:auto; margin:0 4px 0 0; accent-color:#3474f3; }
.form-row-full { grid-column:1/-1; }
.distributor-upgrade-notice { margin-bottom:16px; padding:14px 16px; border:1px solid #cfe0ff; border-radius:10px; background:#f2f7ff; }
.distributor-upgrade-notice strong { color:#1d4f9b; font-size:16px; }
.distributor-upgrade-notice p { margin:5px 0 0; color:#657894; font-size:12.5px; }
.distributor-upgrade-rules { margin-top:15px; padding:12px 15px; display:flex; flex-direction:column; gap:7px; border-radius:9px; color:#6d7787; background:#f7f9fc; font-size:12px; }
.distributor-upgrade-rules span::before { content:"✓"; margin-right:7px; color:#1ba979; font-weight:700; }
@media (max-width:1200px) { .distributor-stats { grid-template-columns:repeat(2,1fr); } .distributor-filter { grid-template-columns:repeat(3,1fr); } }
.region-management-page { min-height:calc(100vh - 92px); display:flex; flex-direction:column; gap:13px; }
.region-report-stats { flex:0 0 auto; }
.region-workspace { min-height:520px; flex:1; display:grid; grid-template-columns:255px minmax(0,1fr); gap:13px; }
.region-province-panel,.region-content-panel { min-width:0; border:1px solid #e5ebf4; border-radius:14px; background:#fff; overflow:hidden; }
.region-province-panel { display:flex; flex-direction:column; }
.region-panel-title { padding:16px; border-bottom:1px solid #e8edf5; }
.region-panel-title>div { margin-bottom:12px; display:flex; align-items:center; justify-content:space-between; }
.region-panel-title strong { color:#18263d; font-size:15px; }
.region-panel-title span { color:#8a97aa; font-size:11.5px; }
.region-panel-title input { width:100%; height:36px; padding:0 11px; border:1px solid #dbe4f0; border-radius:8px; color:#34445d; background:#f9fbfd; }
#region-province-list { min-height:0; padding:8px; overflow:auto; }
#region-province-list a { min-height:39px; padding:0 10px; display:flex; align-items:center; justify-content:space-between; border-radius:8px; color:#44536a; font-size:12.5px; }
#region-province-list a:hover { background:#f4f7fb; }
#region-province-list a.active { color:#1768d0; background:#eaf3ff; font-weight:700; }
#region-province-list small { color:#9aa6b7; font-size:10.5px; font-variant-numeric:tabular-nums; }
.region-content-panel { padding:0 13px 13px; display:flex; flex-direction:column; }
.region-content-head { min-height:92px; padding:15px 3px; display:flex; align-items:center; justify-content:space-between; gap:16px; border-bottom:1px solid #edf1f6; }
.region-content-head span { color:#8a97aa; font-size:11.5px; }
.region-content-head h2 { margin:3px 0; color:#17243b; font-size:20px; }
.region-content-head p { margin:0; color:#8390a4; font-size:12px; }
.region-filter { margin:12px 0; padding:11px 12px; display:grid; grid-template-columns:1.4fr 1fr 1fr auto; gap:12px; align-items:end; border:1px solid #e5ebf4; border-radius:11px; background:#f9fbfd; }
.region-filter>div { min-width:0; }
.region-filter label { display:block; margin-bottom:5px; color:#536177; font-size:12px; font-weight:600; }
.region-filter input,.region-filter select { width:100%; height:37px; padding:0 10px; border:1px solid #dbe4f0; border-radius:8px; color:#34445d; background:#fff; }
.region-filter .filter-actions { display:flex; gap:7px; }
.region-table-wrap { min-height:330px; flex:1; padding:0; overflow:auto; border:1px solid #e5ebf4; border-radius:11px; }
.region-business-table { width:100%; min-width:1000px; table-layout:fixed; }
.region-business-table th { height:44px; color:#64748b; background:#f5f8fc; font-size:12px; text-align:center; }
.region-business-table td { height:58px; padding:8px 10px; color:#344259; border-bottom:1px solid #edf1f6; font-size:12px; text-align:center; }
.region-business-table th:nth-child(1),.region-business-table td:nth-child(1) { width:190px; text-align:left; }
.region-business-table th:nth-child(2),.region-business-table td:nth-child(2) { width:105px; }
.region-business-table th:nth-child(3),.region-business-table td:nth-child(3) { width:115px; }
.region-business-table th:nth-child(4),.region-business-table td:nth-child(4) { width:310px; text-align:left; }
.region-business-table th:nth-child(5),.region-business-table td:nth-child(5) { width:75px; }
.region-business-table th:nth-child(6),.region-business-table td:nth-child(6) { width:75px; }
.region-business-table th:nth-child(7),.region-business-table td:nth-child(7) { width:180px; }
.region-name-cell>span { padding-left:calc(var(--region-depth) * 24px); display:flex; align-items:center; gap:9px; }
.region-level-dot { width:10px; height:10px; flex:0 0 10px; border:2px solid #3474f3; border-radius:3px; background:#eaf2ff; }
.region-level-dot.level-3 { border-color:#20aa77; background:#e2f8ef; }
.region-level-dot.level-4 { border-color:#e89a20; background:#fff2dc; border-radius:50%; }
.region-level-dot.level-5 { border-color:#8b6bea; background:#f0ebff; border-radius:50%; }
.region-path-cell { color:#718098 !important; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.region-modal-dialog { width:min(700px,calc(100vw - 40px)); }
.region-parent-tip { margin-bottom:16px; padding:13px 15px; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:12px; border:1px solid #d7e5fb; border-radius:10px; background:#f4f8ff; }
.region-parent-tip span,.region-parent-tip em { color:#71829a; font-size:12px; font-style:normal; }
.region-parent-tip strong { color:#255b9f; font-size:13px; }
@media (max-width:1100px) { .region-workspace { grid-template-columns:210px minmax(0,1fr); } .region-filter { grid-template-columns:repeat(2,1fr); } }
.region-tree-toolbar { min-height:45px; padding:7px 10px; display:flex; align-items:center; justify-content:space-between; gap:12px; border:1px solid #e5ebf4; border-bottom:0; border-radius:11px 11px 0 0; background:#fff; }
.region-tree-toolbar>div { display:flex; align-items:center; gap:10px; }
.region-tree-toolbar strong { color:#344259; font-size:12.5px; }
.region-tree-toolbar span { color:#8a97aa; font-size:11.5px; }
.region-tree-toolbar button { height:29px; padding:0 10px; border:1px solid #d9e3f0; border-radius:6px; color:#41658f; background:#f8fbff; font-size:11.5px; cursor:pointer; }
.region-tree-toolbar button:hover { color:#1768d0; border-color:#b9d3f8; background:#edf5ff; }
.region-tree-toolbar + .region-table-wrap { border-radius:0 0 11px 11px; }
.region-tree-toggle,.region-tree-spacer { width:18px; height:18px; flex:0 0 18px; }
.region-tree-toggle { position:relative; padding:0; border:1px solid #cad7e8; border-radius:5px; color:#4c6f9e; background:#fff; cursor:pointer; }
.region-tree-toggle::before { content:""; width:6px; height:6px; position:absolute; top:4px; left:4px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(-45deg); transition:transform .16s ease; }
.region-tree-toggle[aria-expanded="true"]::before { top:3px; transform:rotate(45deg); }
.region-name-cell small { margin-left:auto; color:#91a0b4; font-size:10.5px; font-weight:400; white-space:nowrap; }
.region-business-table tr[hidden] { display:none; }
.advertisement-management-page { min-height:calc(100vh - 92px); display:flex; flex-direction:column; gap:13px; }
.advertisement-filter { margin:0; padding:12px 14px; display:grid; grid-template-columns:1.4fr 1fr 1fr auto; gap:14px; align-items:end; border:1px solid #e5ebf4; border-radius:14px; background:#fff; }
.advertisement-filter>div { min-width:0; }
.advertisement-filter label { display:block; margin-bottom:6px; color:#4e5d73; font-size:12.5px; font-weight:600; }
.advertisement-filter input,.advertisement-filter select { width:100%; height:38px; padding:0 10px; border:1px solid #dbe4f0; border-radius:8px; color:#34445d; background:#fff; }
.advertisement-filter .filter-actions { display:flex; gap:7px; }
.advertisement-table-wrap { min-height:350px; flex:1; padding:0; overflow:hidden; display:flex; flex-direction:column; border:1px solid #e5ebf4; border-radius:14px; background:#fff; }
.advertisement-table-scroll { min-height:0; flex:1; padding:11px; overflow:auto; }
.advertisement-business-table { width:100%; min-width:1250px; table-layout:fixed; border:1px solid #e5ebf4; }
.advertisement-business-table th { height:46px; color:#64748b; background:#f5f8fc; font-size:12.5px; text-align:center; }
.advertisement-business-table td { height:82px; padding:9px 11px; color:#344259; border-bottom:1px solid #edf1f6; font-size:12.5px; text-align:center; }
.advertisement-business-table th:nth-child(1),.advertisement-business-table td:nth-child(1) { width:150px; }
.advertisement-business-table th:nth-child(2),.advertisement-business-table td:nth-child(2) { width:180px; text-align:left; }
.advertisement-business-table th:nth-child(3),.advertisement-business-table td:nth-child(3) { width:180px; }
.advertisement-business-table th:nth-child(5),.advertisement-business-table td:nth-child(5) { width:220px; }
.advertisement-business-table th:nth-child(8),.advertisement-business-table td:nth-child(8) { width:150px; }
.advertisement-thumb { width:118px; height:58px; margin:auto; overflow:hidden; border:1px solid #e2e8f1; border-radius:8px; background:#f4f7fb; }
.advertisement-thumb img,.advertisement-thumb video { width:100%; height:100%; display:block; object-fit:cover; }
.advertisement-title-cell strong,.advertisement-title-cell small { display:block; }
.advertisement-title-cell strong { color:#213047; font-size:13px; }
.advertisement-title-cell small { margin-top:5px; color:#8996a8; font-size:11px; }
.advertisement-time-cell span,.advertisement-time-cell em { display:block; font-style:normal; font-size:11.5px; }
.advertisement-time-cell em { margin:2px 0; color:#a0aaba; }
.advertisement-modal-dialog { width:min(940px,calc(100vw - 40px)); }
.advertisement-form-layout { display:grid; grid-template-columns:300px minmax(0,1fr); gap:22px; }
.advertisement-upload-column>p { margin:9px 0 0; color:#8b98aa; font-size:11.5px; line-height:1.6; text-align:center; }
.advertisement-upload-box { height:210px; position:relative; overflow:hidden; display:grid; place-items:center; border:1px dashed #a9c1df; border-radius:12px; background-color:#f6f9fd; background-image:linear-gradient(45deg,#eef3f9 25%,transparent 25%),linear-gradient(-45deg,#eef3f9 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#eef3f9 75%),linear-gradient(-45deg,transparent 75%,#eef3f9 75%); background-size:20px 20px; background-position:0 0,0 10px,10px -10px,-10px 0; cursor:pointer; transition:border-color .18s,box-shadow .18s; }
.advertisement-upload-box:hover { border-color:#4b86df; box-shadow:0 0 0 3px rgba(52,116,243,.08); }
.advertisement-upload-box input { position:absolute; width:1px; height:1px; opacity:0; }
.advertisement-upload-box>span { display:flex; flex-direction:column; align-items:center; gap:7px; color:#3474f3; font-size:30px; }
.advertisement-upload-box>span strong { color:#37506e; font-size:14px; }
.advertisement-upload-box>span small { color:#8a99ad; font-size:11px; }
.advertisement-upload-box img,.advertisement-upload-box video { width:100%; height:100%; padding:12px; display:block; object-fit:contain; box-sizing:border-box; background:rgba(255,255,255,.86); }
.advertisement-upload-box.has-preview::after { content:"点击更换素材"; height:30px; padding:0 12px; position:absolute; right:10px; bottom:10px; display:flex; align-items:center; border-radius:7px; color:#fff; background:rgba(20,39,68,.76); font-size:11px; opacity:0; transform:translateY(5px); transition:.18s; pointer-events:none; }
.advertisement-upload-box.has-preview:hover::after { opacity:1; transform:translateY(0); }
.advertisement-upload-meta { margin-top:10px; padding:9px 11px; border:1px solid #e2e9f3; border-radius:8px; background:#fafcff; }
.advertisement-upload-meta strong,.advertisement-upload-meta span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.advertisement-upload-meta strong { color:#40516a; font-size:11.5px; }.advertisement-upload-meta strong.error { color:#d94a4a; }.advertisement-upload-meta span { margin-top:3px; color:#8b98aa; font-size:10.5px; }
.advertisement-upload-gallery { width:100%; margin-top:10px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.advertisement-upload-gallery:empty { display:none; }
.advertisement-upload-gallery-item { position:relative; height:78px; overflow:hidden; border:1px solid #dce6f3; border-radius:9px; background:#f4f7fb; }
.advertisement-upload-gallery-item img { width:100%; height:100%; display:block; object-fit:cover; }
.advertisement-upload-gallery-item span { position:absolute; top:5px; left:5px; width:20px; height:20px; display:grid; place-items:center; border-radius:50%; color:#fff; background:#176fe5; font-size:11px; font-weight:700; }
.advertisement-upload-box.has-multiple-preview>img { display:none; }
.advertisement-status-form { display:inline; margin:0; }
.advertisement-status-form button { padding:0; border:0; color:#176fe5; background:transparent; font:inherit; cursor:pointer; }
.advertisement-filter { grid-template-columns:2fr 1fr auto; }
.advertisement-time-cell { white-space:nowrap; }
.advertisement-form-fields { align-content:start; }
.advertisement-preview-dialog { width:min(560px,calc(100vw - 40px)); }
.advertisement-phone-preview { width:330px; min-height:360px; margin:0 auto 18px; padding:12px; overflow:hidden; border:8px solid #172133; border-radius:28px; background:#f4f7fb; box-shadow:0 16px 35px rgba(28,45,72,.2); }
.advertisement-phone-head { margin:-12px -12px 12px; padding:19px 12px 11px; color:#1d2b42; background:#fff; font-size:13px; font-weight:700; text-align:center; }
.advertisement-phone-preview img,.advertisement-phone-preview video { width:100%; height:176px; display:block; object-fit:cover; border-radius:10px; background:#101827; }
.advertisement-phone-preview strong,.advertisement-phone-preview span { display:block; }
.advertisement-phone-preview strong { margin:13px 3px 5px; color:#1d2b42; font-size:16px; }
.advertisement-phone-preview span { margin:0 3px; color:#7c899c; font-size:12px; }
@media (max-width:1100px) { .advertisement-filter { grid-template-columns:repeat(2,1fr); } .advertisement-form-layout { grid-template-columns:1fr; } .advertisement-upload-box { max-width:440px; } }
.operations-overview-page { min-height:calc(100vh - 92px); display:flex; flex-direction:column; gap:13px; }
.operations-hero { min-height:180px; padding:28px 34px; position:relative; overflow:hidden; display:flex; align-items:center; justify-content:space-between; border-radius:16px; color:#fff; background:linear-gradient(120deg,#176ce2,#2b86f6 58%,#69a9ff); box-shadow:0 10px 24px rgba(31,111,225,.18); }
.operations-hero::after { content:""; width:360px; height:360px; position:absolute; right:-90px; top:-145px; border:1px solid rgba(255,255,255,.18); border-radius:50%; box-shadow:0 0 0 52px rgba(255,255,255,.05),0 0 0 105px rgba(255,255,255,.04); }
.operations-hero>div:first-child { position:relative; z-index:2; }
.operations-hero span { color:rgba(255,255,255,.76); font-size:12px; }
.operations-hero h2 { margin:7px 0; color:#fff; font-size:25px; }
.operations-hero p { margin:0 0 17px; color:rgba(255,255,255,.82); font-size:13px; }
.operations-hero a { display:inline-flex; height:34px; padding:0 14px; align-items:center; border:1px solid rgba(255,255,255,.44); border-radius:8px; color:#fff; background:rgba(255,255,255,.12); font-size:12px; }
.operations-hero-visual { width:330px; height:130px; position:relative; z-index:1; }
.operations-hero-visual i { position:absolute; overflow:hidden; border:1px solid rgba(255,255,255,.3); border-radius:12px; background:linear-gradient(145deg,rgba(255,255,255,.3),rgba(255,255,255,.08)); box-shadow:0 12px 28px rgba(18,66,140,.2); }
.operations-hero-visual i:nth-child(1) { width:210px; height:108px; right:40px; top:10px; }
.operations-hero-visual i:nth-child(2) { width:110px; height:70px; right:0; top:34px; transform:rotate(5deg); }
.operations-hero-visual i:nth-child(3) { width:90px; height:58px; right:220px; top:40px; transform:rotate(-6deg); }
.operations-content-grid { min-height:310px; flex:1; display:grid; grid-template-columns:minmax(360px,.9fr) minmax(480px,1.35fr); gap:13px; }
.operations-position-panel,.operations-recent-panel { padding:18px; border:1px solid #e5ebf4; border-radius:14px; background:#fff; }
.operations-position-panel header,.operations-recent-panel header { margin-bottom:12px; display:flex; align-items:center; justify-content:space-between; }
.operations-position-panel header span,.operations-recent-panel header span { color:#8a97aa; font-size:11px; }
.operations-position-panel h3,.operations-recent-panel h3 { margin:3px 0 0; color:#1d2b42; font-size:16px; }
.operations-recent-panel header>a { color:#3976cf; font-size:12px; }
.operations-position-list { display:flex; flex-direction:column; gap:9px; }
.operations-position-list>a { min-height:68px; padding:10px 13px; display:grid; grid-template-columns:42px 1fr auto; align-items:center; gap:12px; border:1px solid #e8edf5; border-radius:10px; color:#344259; }
.operations-position-list>a:hover { border-color:#cfe0f7; background:#f8fbff; }
.operations-position-list i { width:38px; height:38px; display:grid; place-items:center; border-radius:10px; color:#3474f3; background:#e7f0ff; font-size:12px; font-style:normal; font-weight:700; }
.operations-position-list i.green { color:#17966a; background:#def7ed; }.operations-position-list i.violet { color:#7958df; background:#eee9ff; }
.operations-position-list strong,.operations-position-list span { display:block; }.operations-position-list strong { font-size:13px; }.operations-position-list span { margin-top:4px; color:#8b98aa; font-size:11px; }.operations-position-list em { color:#6480a4; font-size:11px; font-style:normal; }
.operations-empty { min-height:220px; display:flex; flex-direction:column; align-items:center; justify-content:center; color:#8996a8; }.operations-empty strong { color:#425169; font-size:14px; }.operations-empty span { margin:5px 0 14px; font-size:11.5px; }
.operations-recent-list { display:flex; flex-direction:column; }.operations-recent-list>a { min-height:60px; padding:8px 4px; display:grid; grid-template-columns:82px 1fr auto; align-items:center; gap:11px; border-bottom:1px solid #edf1f6; color:#344259; }.operations-recent-list img,.operations-recent-list video { width:82px; height:45px; object-fit:cover; border-radius:7px; background:#eef2f7; }.operations-recent-list strong,.operations-recent-list span { display:block; }.operations-recent-list strong { font-size:12.5px; }.operations-recent-list span { margin-top:3px; color:#8a97aa; font-size:10.5px; }.operations-recent-list em { font-size:11px; font-style:normal; }.operations-recent-list em.active { color:#16845e; }.operations-recent-list em.draft { color:#d38312; }.operations-recent-list em.inactive { color:#8a94a3; }
@media (max-width:1100px) { .operations-content-grid { grid-template-columns:1fr; } .operations-hero-visual { display:none; } }
