/* === TSP technical support system custom styles === */

/* Login shell: keep language tabs and legal copy inside narrow WeCom phones. */
.login-page-card,
.login-page-card .card-body,
.login-page-card .tab-content,
.login-page-card form {
    min-width: 0;
}

.timeliness-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
}
.timeliness-summary-grid .card { min-height: 7rem; }
.timeliness-table-wrap { max-width: 100%; }
.timeliness-table { min-width: 1500px; }
.timeliness-table th { white-space: nowrap; }
.timeliness-title { max-width: 14rem; }
@media (max-width: 1199.98px) {
    .timeliness-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575.98px) {
    .timeliness-summary-grid { grid-template-columns: 1fr 1fr; gap: .5rem; }
    .timeliness-summary-grid .card { min-height: 6.5rem; }
}
.login-page-card .form-check-label {
    overflow-wrap: anywhere;
}
@media (max-width: 575.98px) {
    .login-page-row {
        margin-left: 0;
        margin-right: 0;
    }
    .login-page-row > [class*="col-"] {
        padding-left: 0;
        padding-right: 0;
    }
    .login-page-card .card-body {
        padding: .8rem !important;
    }
    .login-page-card .nav-pills {
        gap: .35rem;
    }
    .login-page-card .nav-pills .nav-item,
    .login-page-card .nav-pills .nav-link {
        min-width: 0;
    }
    .login-page-card .nav-pills .nav-link {
        padding-left: .55rem;
        padding-right: .55rem;
        white-space: nowrap;
    }
    .login-page-card .border.rounded {
        padding: .65rem !important;
    }
}

/* 全局 */
body {
    background: #f5f6fa;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans SC", sans-serif;
}

html,
body {
    max-width: 100%;
    overflow-x: hidden;
}

main,
main > * {
    min-width: 0;
}

/* Keep wide work tables inside their own scroll area on smaller desktops. */
.table-responsive,
.dashboard-table-scroll,
.dashboard-pending-table-scroll {
    max-width: 100%;
    min-width: 0;
}
.table-responsive > table,
.dashboard-table-scroll > table,
.dashboard-pending-table-scroll > table {
    margin-bottom: 0;
}

/* Keep wide business tables readable inside their own WeCom scroller. */
@media (max-width: 1199.98px) {
    .table-responsive {
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        scrollbar-gutter: stable;
    }
    .table-responsive > table {
        width: max-content;
        min-width: 100%;
    }
    .table-responsive > table > thead > tr > th {
        white-space: nowrap !important;
        word-break: keep-all !important;
        overflow-wrap: normal !important;
    }
    .table-responsive > table > tbody > tr > td {
        word-break: normal;
        overflow-wrap: normal;
    }
    .claims-table-scroll > table,
    .hv-table-wrap > table,
    .dispatch-table-wrap > table,
    .dashboard-pending-table-scroll > table {
        min-width: 760px;
    }
}

/* Keep dense admin editors usable inside their own horizontal scroller. */
.admin-account-table .admin-account-actions {
    min-width: 720px;
}
.admin-dealer-table .admin-dealer-actions {
    min-width: 480px;
}
.admin-scroll-panel .btn {
    white-space: nowrap;
    word-break: keep-all;
}

/* Secondary business tables stay readable on WeCom laptops and phones. */
.claims-table-scroll,
.hv-table-wrap,
.dispatch-table-wrap,
.dashboard-pending-table-scroll {
    max-width: 100%;
    min-width: 0;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
}
.claims-table-scroll > table,
.hv-table-wrap > table,
.dispatch-table-wrap > table,
.dashboard-pending-table-scroll > table {
    width: max-content;
    min-width: 100%;
}
.claims-table-scroll th,
.hv-table-wrap th,
.dispatch-table-wrap th,
.dashboard-pending-table-scroll th {
    white-space: nowrap;
    word-break: keep-all;
}
.claims-table-scroll td,
.hv-table-wrap td,
.dispatch-table-wrap td,
.dashboard-pending-table-scroll td {
    word-break: normal;
    overflow-wrap: anywhere;
}

/* Technical-ticket console on 13-inch WeCom laptops. */
@media (min-width: 992px) and (max-width: 1399.98px) {
    .support-ticket-table {
        width: 100% !important;
        min-width: 0 !important;
        table-layout: fixed;
    }
    .support-ticket-table th,
    .support-ticket-table td {
        padding: .58rem .42rem;
        font-size: .78rem;
        line-height: 1.35;
        vertical-align: middle;
        overflow: hidden;
    }
    .support-ticket-table th {
        white-space: nowrap !important;
    }
    html[lang="en"] .support-ticket-table th:nth-child(10) {
        white-space: normal !important;
        word-break: normal !important;
        overflow-wrap: normal !important;
        overflow: visible;
        line-height: 1.15;
    }
    .support-ticket-table th:nth-child(8),
    .support-ticket-table td:nth-child(8) {
        display: none;
    }
    .support-ticket-table th:nth-child(1), .support-ticket-table td:nth-child(1) { width: 13%; }
    .support-ticket-table th:nth-child(2), .support-ticket-table td:nth-child(2) { width: 19%; }
    .support-ticket-table th:nth-child(3), .support-ticket-table td:nth-child(3) { width: 14%; }
    .support-ticket-table th:nth-child(4), .support-ticket-table td:nth-child(4) { width: 7%; }
    .support-ticket-table th:nth-child(5), .support-ticket-table td:nth-child(5) { width: 8%; }
    .support-ticket-table th:nth-child(6), .support-ticket-table td:nth-child(6) { width: 7%; }
    .support-ticket-table th:nth-child(7), .support-ticket-table td:nth-child(7) { width: 7%; }
    .support-ticket-table th:nth-child(9), .support-ticket-table td:nth-child(9) { width: 8%; }
    .support-ticket-table th:nth-child(10), .support-ticket-table td:nth-child(10) { width: 7%; }
    .support-ticket-table th:nth-child(11), .support-ticket-table td:nth-child(11) { width: 10%; }
    .support-ticket-table td:nth-child(1),
    .support-ticket-table td:nth-child(4),
    .support-ticket-table td:nth-child(5),
    .support-ticket-table td:nth-child(6),
    .support-ticket-table td:nth-child(7),
    .support-ticket-table td:nth-child(9) {
        white-space: nowrap;
    }
    .support-ticket-table td:nth-child(2) span {
        display: block !important;
        max-width: 100% !important;
    }
    .support-ticket-table td:nth-child(3) {
        word-break: normal;
        overflow-wrap: normal;
    }
    .support-ticket-table td:nth-child(10),
    .support-ticket-table td:nth-child(11) {
        word-break: keep-all;
        overflow-wrap: normal;
    }
    .support-ticket-table td:nth-child(10) {
        white-space: nowrap;
        text-overflow: ellipsis;
    }
    .support-ticket-table td:nth-child(11) {
        white-space: normal;
    }
    .support-ticket-table td:nth-child(11) > div {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
}

@media (min-width: 992px) and (max-width: 1199.98px) {
    .support-filter-form > .col-md-2,
    .support-filter-form > .col-md-3 {
        flex: 0 0 20%;
        width: 20%;
        max-width: 20%;
    }
    .support-filter-form > .col-md-1 {
        flex: 0 0 10%;
        width: 10%;
        max-width: 10%;
    }
}

.market-badge {
    display: inline-flex;
    align-items: center;
    min-height: 1.45rem;
    padding: 0.12rem 0.42rem;
    border: 1px solid rgba(255, 255, 255, 0.72);
    border-radius: 4px;
    color: #fff;
    background: rgba(0, 0, 0, 0.16);
    font-size: 0.7rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0;
    white-space: nowrap;
}

.market-badge-light {
    border-color: #c9ced5;
    color: #343a40;
    background: #fff;
    font-size: 0.78rem;
}

/* KPI数字 */
.kpi-number {
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.2;
}
.kpi-label {
    font-size: 0.875rem;
    color: #6c757d;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.kpi-card {
    transition: transform 0.15s ease;
}
.kpi-card:hover {
    transform: translateY(-2px);
}

/* 状态色强化 */
.badge-status-open { background: #ffc107; color: #212529; }
.badge-status-processing { background: #0d6efd; }
.badge-status-replied { background: #6f42c1; }
.badge-status-resolved { background: #198754; }
.badge-status-closed { background: #6c757d; }

/* 消息时间线 */
.timeline {
    position: relative;
    padding-left: 40px;
}
.timeline::before {
    content: '';
    position: absolute;
    left: 18px;
    top: 0;
    bottom: 0;
    width: 2px;
    background: #dee2e6;
}
.timeline-item {
    position: relative;
    margin-bottom: 1.5rem;
}
.timeline-avatar {
    position: absolute;
    left: -40px;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 0.875rem;
    z-index: 1;
}
.timeline-avatar.dealer { background: #0d6efd; color: white; }
.timeline-avatar.support { background: #198754; color: white; }
.timeline-avatar.system { background: #6c757d; color: white; }

/* 内部备注 */
.internal-note {
    background: #fff9c4;
    border-left: 4px solid #ffc107;
}

/* 文件预览网格 */
.file-preview-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    gap: 0.5rem;
    margin-top: 0.5rem;
}
.file-preview-item {
    position: relative;
    border: 1px solid #dee2e6;
    border-radius: 0.5rem;
    overflow: hidden;
    background: #f8f9fa;
}
.file-preview-item img {
    width: 100%;
    height: 100px;
    object-fit: cover;
}
.file-preview-item .file-icon {
    width: 100%;
    height: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    color: #6c757d;
}
.file-preview-item .file-name {
    padding: 0.25rem 0.5rem;
    font-size: 0.75rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.file-preview-item .remove-btn {
    position: absolute;
    top: 2px;
    right: 2px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: rgba(220, 53, 69, 0.9);
    color: white;
    border: none;
    font-size: 0.75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    padding: 0;
    line-height: 1;
}

/* 表格行悬停 */
.table-hover tbody tr {
    cursor: pointer;
}
.table-hover tbody tr:hover {
    background-color: rgba(13, 110, 253, 0.05) !important;
}

/* 移动端表格替代 */
.ticket-mobile-card {
    border: 1px solid #dee2e6;
    border-radius: 0.5rem;
    padding: 0.75rem;
    margin-bottom: 0.5rem;
    background: white;
    transition: box-shadow 0.15s ease;
}
.ticket-mobile-card:hover {
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
.ticket-mobile-card a {
    text-decoration: none;
    color: inherit;
}

/* 上传区 */
.upload-zone {
    border: 2px dashed #0d6efd;
    border-radius: 0.75rem;
    padding: 2rem;
    text-align: center;
    background: #f0f7ff;
    cursor: pointer;
    transition: all 0.2s ease;
}
.upload-zone:hover, .upload-zone.drag-over {
    border-color: #0a58ca;
    background: #d9eeff;
}
.upload-zone i {
    font-size: 2.5rem;
    color: #0d6efd;
}
.preview-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 0.75rem;
    margin-top: 1rem;
}
.preview-item {
    position: relative;
    border: 1px solid #dee2e6;
    border-radius: 0.5rem;
    overflow: hidden;
    background: #fff;
}
.preview-item img {
    width: 100%;
    height: 100px;
    object-fit: cover;
    display: block;
}
.preview-item .file-icon {
    width: 100%;
    height: 100px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f8f9fa;
    font-size: 2rem;
    color: #6c757d;
}
.preview-item .file-info {
    padding: 0.4rem 0.5rem;
    font-size: 0.75rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.preview-item .btn-remove {
    position: absolute;
    top: 4px;
    right: 4px;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: rgba(220, 53, 69, 0.9);
    color: #fff;
    border: none;
    font-size: 14px;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
}
.upload-progress {
    margin-top: 0.75rem;
}

/* 后台长表滚动区 */
.admin-scroll-panel {
    max-height: 420px;
    overflow-y: auto;
    overscroll-behavior: contain;
}
.admin-scroll-panel thead th {
    position: sticky;
    top: 0;
    z-index: 1;
}

/* 响应式表格 */
@media (max-width: 767px) {
    .kpi-number {
        font-size: 1.5rem;
    }
    .card-body {
        padding: 0.75rem;
    }
    .nav-tabs {
        flex-wrap: wrap;
        gap: 0.35rem;
    }
    .nav-tabs .nav-item {
        width: 100%;
    }
    .nav-tabs .nav-link,
    .nav-pills .nav-link {
        width: 100%;
        justify-content: center;
    }
    .mobile-stack {
        width: 100%;
    }
    .mobile-stack > * {
        width: 100%;
    }
    .mobile-stack .btn,
    .mobile-stack .form-control,
    .mobile-stack .form-select {
        width: 100%;
    }
    .urgency-radio {
        display: grid;
        grid-template-columns: 1fr;
        gap: 0.5rem;
    }
    .urgency-radio .form-check {
        min-height: 2.75rem;
        padding: 0.75rem 0.85rem;
        margin: 0;
    }
    .urgency-radio .form-check span {
        display: inline-flex;
        align-items: center;
        gap: 0.35rem;
        width: 100%;
    }
    .btn-toolbar,
    .d-flex.flex-wrap.gap-2,
    .d-flex.gap-2.flex-wrap {
        row-gap: 0.5rem;
    }
    main > .d-flex.flex-wrap.justify-content-between > .btn,
    main > .d-flex.flex-wrap.justify-content-between > a.btn {
        width: 100%;
    }
    form > .d-flex.justify-content-between.align-items-center {
        flex-direction: column;
        align-items: stretch !important;
        gap: 0.75rem;
    }
    form > .d-flex.justify-content-between.align-items-center > .d-flex {
        width: 100%;
        flex-direction: column;
    }
    form > .d-flex.justify-content-between.align-items-center .btn {
        width: 100%;
    }
    .table-responsive-stack td {
        display: block;
        border: none;
    }
    .upload-zone {
        padding: 1.25rem;
    }
    .preview-grid {
        grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
    }
    .timeline-line::before {
        display: none;
    }
    .message-item {
        gap: 0.75rem !important;
    }
}

@media (max-width: 1399.98px) {
    .boss-dashboard-page .card-header {
        align-items: flex-start !important;
    }
    .boss-dashboard-page .dashboard-card-header h5 {
        flex: 1 1 14rem;
    }
    .boss-dashboard-page .dashboard-card-header .btn {
        margin-left: auto;
    }
}

@media (max-width: 575.98px) {
    .boss-dashboard-page .boss-page-header > span {
        width: 100%;
    }
    .boss-dashboard-page .dashboard-card-header .btn {
        margin-left: 0;
    }
}

/* 打印样式 */
@media print {
    .navbar, .btn, .alert, footer { display: none !important; }
    body { background: white; }
    .card { box-shadow: none !important; border: 1px solid #dee2e6; }
}
/* Developer permission and managed-file workspaces */
.developer-tool-strip{display:flex;align-items:center;gap:.45rem;overflow-x:auto;scrollbar-width:thin}
.developer-tool-strip a{display:inline-flex;align-items:center;gap:.35rem;flex:0 0 auto;color:#fff;text-decoration:none;padding:.38rem .62rem;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.06)}
.developer-tool-strip a:hover{background:#fff;color:#151515}
.developer-role-directory .dropdown-menu,.tsp-data-menu .dropdown-menu{min-width:16rem;border:0;border-top:3px solid #c8102e;padding:.4rem}.developer-role-directory .dropdown-item,.tsp-data-menu .dropdown-item{display:grid;grid-template-columns:1.35rem 1fr;align-items:center;gap:.45rem;padding:.55rem .65rem}.developer-role-directory .dropdown-item small{grid-column:2;color:#6c757d;font-size:.68rem}.developer-role-directory .dropdown-item.active small{color:rgba(255,255,255,.8)}
.takeover-waiting-icon{display:grid;place-items:center;width:4rem;height:4rem;margin:0 auto 1rem;background:#f7e7ea;color:#c8102e;font-size:2rem}.takeover-waiting{min-height:19rem}.modal-content{border-radius:6px}
.permission-console,.file-tool-band{background:#fff;border:1px solid #d9dde2;padding:1.15rem}
.permission-console{border-top:4px solid #c8102e;box-shadow:0 .6rem 1.5rem rgba(24,30,36,.07)}
.permission-eyebrow{font-size:.68rem;font-weight:800;color:#c8102e}
.permission-role-tabs{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.5rem;margin-bottom:1rem}
.permission-role-tab{display:flex;justify-content:space-between;align-items:center;gap:.5rem;color:#343a40;text-decoration:none;border:1px solid #d8dde3;padding:.7rem .8rem;background:#f8f9fa;font-weight:700}
.permission-role-tab b{display:grid;place-items:center;min-width:1.6rem;height:1.6rem;background:#e9ecef;font-size:.76rem}
.permission-role-tab:hover,.permission-role-tab.active{color:#fff;background:#c8102e;border-color:#c8102e}
.permission-role-tab.active b,.permission-role-tab:hover b{background:#fff;color:#c8102e}
.permission-account-picker{background:#f3f4f6;border:1px solid #e0e3e7;padding:.8rem;margin-bottom:.8rem}
.permission-account-picker>label{display:block;font-size:.75rem;font-weight:800;margin-bottom:.4rem}
.permission-picker-controls{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(260px,1.3fr);gap:.65rem}
.permission-account-summary{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 0;border-bottom:1px solid #e1e4e8;margin-bottom:1rem}
.permission-account-summary>div:first-child{display:flex;align-items:center;gap:.65rem;min-width:0}
.permission-account-summary strong,.permission-account-summary small{display:block}
.permission-account-summary small{color:#6c757d;overflow-wrap:anywhere}
.permission-avatar{display:grid;place-items:center;flex:0 0 2.5rem;height:2.5rem;background:#20252b;color:#fff;font-size:1.05rem;font-weight:800}
.permission-summary-badges{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.35rem}
.permission-summary-badges span{padding:.3rem .5rem;background:#e9ecef;color:#495057;font-size:.74rem;font-weight:700}
.permission-summary-badges .is-enabled{background:#d7f0e2;color:#126536}
.permission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.permission-grid fieldset{border:1px solid #dce0e4;padding:.75rem;min-width:0;background:#fcfcfd}
.permission-grid legend{float:none;width:auto;padding:0 .35rem;font-size:.9rem;font-weight:800;color:#292f35}
.permission-check{display:flex;align-items:flex-start;gap:.55rem;padding:.55rem .35rem;cursor:pointer;border-bottom:1px solid #eceff2}
.permission-check:last-child{border-bottom:0}
.permission-check>span{line-height:1.25;min-width:0}
.permission-check strong,.permission-check small,.permission-check code{display:block}
.permission-check strong{font-size:.84rem}
.permission-check small{color:#687078;font-size:.72rem;margin-top:.2rem}
.permission-check code{color:#a3172e;font-size:.64rem;margin-top:.25rem;overflow-wrap:anywhere}
.permission-save-bar{position:sticky;bottom:.5rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;background:#20252b;color:#fff;padding:.7rem .8rem;margin-top:1rem;box-shadow:0 .5rem 1.2rem rgba(0,0,0,.2);z-index:5}
.permission-developer-lock{display:flex;align-items:center;gap:.75rem;background:#f5f7f8;border-left:4px solid #c8102e;padding:1rem;margin-top:1rem}
.permission-developer-lock>i{font-size:1.8rem;color:#c8102e}.permission-developer-lock strong,.permission-developer-lock span{display:block}.permission-developer-lock span{color:#687078;font-size:.82rem;margin-top:.2rem}
.permission-bulk-panel{border:1px solid #d9dde2;background:#f8f9fa}.permission-bulk-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1rem;background:#f3f4f6;border-bottom:1px solid #d9dde2}.permission-bulk-heading>div{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:.55rem}.permission-bulk-heading i{grid-row:1/3;color:#c8102e;font-size:1.35rem}.permission-bulk-heading strong,.permission-bulk-heading small{display:block}.permission-bulk-heading small{color:#687078;font-size:.75rem;margin-top:.15rem}.permission-bulk-heading>span{display:grid;place-items:center;min-width:2rem;height:2rem;background:#20252b;color:#fff;font-weight:800}.permission-bulk-panel>form{padding:1rem;background:#fff}.permission-bulk-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;align-items:center;gap:.75rem;margin-bottom:.7rem}.permission-bulk-select-all{display:flex;align-items:center;gap:.45rem;font-weight:800;white-space:nowrap}.permission-bulk-users{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem;max-height:16rem;overflow:auto;padding:.25rem}.permission-bulk-users>label{display:flex;align-items:flex-start;gap:.45rem;border:1px solid #e0e3e7;background:#fff;padding:.55rem;min-width:0}.permission-bulk-users strong,.permission-bulk-users small{display:block}.permission-bulk-users small{color:#6c757d;font-size:.7rem;overflow-wrap:anywhere}.permission-single-heading{display:flex;align-items:baseline;gap:.65rem;border-bottom:2px solid #20252b;padding-bottom:.45rem;margin-bottom:.8rem}.permission-single-heading span{font-weight:800}.permission-single-heading small{color:#687078}
.permission-stat-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.55rem;margin-bottom:.55rem}.permission-stat-strip>div{display:flex;align-items:center;justify-content:space-between;gap:.6rem;border:1px solid #dce0e4;background:#f7f8f9;padding:.7rem .8rem;min-width:0}.permission-stat-strip span{font-size:.76rem;color:#5f6871;font-weight:700;overflow-wrap:anywhere}.permission-stat-strip strong{font-size:1.18rem;color:#20252b}.permission-stat-strip [data-permission-stat="assignable"]{border-top:3px solid #c8102e;background:#fff}.permission-stat-note{border-left:3px solid #c8102e;background:#f7f8f9;color:#5f6871;padding:.55rem .7rem;margin-bottom:.45rem;font-size:.78rem}.permission-stat-note.is-secondary{border-left-color:#69727b;margin-bottom:1rem}
.permission-guide-shell{max-width:1120px;margin:0 auto}.permission-guide-intro{background:#f3f4f6;border-left:4px solid #c8102e;padding:1rem}.permission-guide-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.6rem}.permission-guide-grid>div{display:flex;flex-direction:column;gap:.35rem;border:1px solid #dce0e4;padding:.85rem;background:#fff}.permission-guide-grid i{color:#c8102e;font-size:1.25rem}.permission-guide-grid span{color:#687078;font-size:.78rem}.permission-manual-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.permission-manual-list article{border:1px solid #dce0e4;padding:.8rem;background:#fff}.permission-manual-list article>div{display:flex;justify-content:space-between;gap:.5rem}.permission-manual-list code{font-size:.68rem;color:#a3172e}.permission-manual-list p{margin:.45rem 0 0;color:#687078;font-size:.82rem}
.file-category-strip{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.25rem;scrollbar-width:thin}
.file-category-strip .btn{flex:0 0 auto}
.file-name-cell{max-width:320px;overflow-wrap:anywhere}
.file-role-note{display:flex;align-items:center;gap:.8rem;background:#f4f5f6;border-left:4px solid #c8102e;padding:.85rem 1rem}.file-role-note>i{font-size:1.5rem;color:#c8102e}.file-role-note strong,.file-role-note span{display:block}.file-role-note span{color:#687078;font-size:.82rem;margin-top:.15rem}
.ticket-export-workspace{border:1px solid #d9dde2;border-top:4px solid #c8102e;background:#fff;padding:1rem;box-shadow:0 .5rem 1.2rem rgba(24,30,36,.06)}.ticket-export-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.ticket-export-rule{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.85rem}.ticket-export-rule span{display:inline-flex;align-items:center;gap:.35rem;background:#f0f2f4;padding:.38rem .55rem;font-size:.75rem;color:#394047}.ticket-export-rule i{color:#c8102e}
@media (max-width: 991.98px){.permission-grid{grid-template-columns:1fr 1fr}.permission-role-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.permission-guide-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.permission-manual-list{grid-template-columns:1fr}.permission-bulk-users{grid-template-columns:repeat(2,minmax(0,1fr))}.permission-stat-strip{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width: 575.98px){.permission-grid,.permission-picker-controls,.permission-bulk-toolbar,.permission-bulk-users{grid-template-columns:1fr}.permission-role-tabs{display:flex;overflow-x:auto}.permission-role-tab{flex:0 0 8rem}.permission-account-summary,.permission-save-bar,.ticket-export-heading{align-items:stretch;flex-direction:column}.permission-summary-badges{justify-content:flex-start}.permission-save-bar .btn{width:100%}.permission-guide-grid{grid-template-columns:1fr}.managed-file-table table{min-width:900px}.file-tool-band,.ticket-export-workspace{padding:.75rem}.permission-console{padding:.75rem}.permission-stat-strip{grid-template-columns:1fr 1fr}}
.dropdown { position: relative; }
.dropdown-menu { display: none; position: absolute; z-index: 1000; min-width: 10rem; margin: 0; padding: .5rem 0; background: #fff; border: 1px solid rgba(0,0,0,.15); border-radius: .375rem; }
.dropdown-menu.show { display: block; }
.dropdown-menu-end { right: 0; left: auto; }
.dropdown-item { display: block; width: 100%; padding: .25rem 1rem; clear: both; color: #212529; text-align: inherit; text-decoration: none; white-space: nowrap; background-color: transparent; border: 0; }
.dropdown-item:hover, .dropdown-item:focus { color: #1e2125; background-color: #e9ecef; }
.navbar-collapse.show { display: flex !important; }
@media (max-width: 1399.98px) {
    .navbar-collapse.show { display: block !important; }
}

/* Assigned-ticket message center */
.notification-bell{position:relative;display:inline-grid;place-items:center;width:2.15rem;height:2.15rem;padding:0}
.notification-bell .badge{position:absolute;top:-.35rem;right:-.45rem;min-width:1.25rem}
.notification-toast-container{position:fixed;top:5.3rem;right:1rem;z-index:1080;width:min(390px,calc(100vw - 2rem));display:grid;gap:.65rem;pointer-events:none}
.tsp-notification-toast{pointer-events:auto;background:#fff;border:1px solid #d8dde3;border-left:4px solid #c8102e;box-shadow:0 .8rem 2rem rgba(23,29,36,.2);padding:.9rem}
.tsp-notification-toast .notification-toast-content{color:#343a40;line-height:1.45}
.tsp-notification-toast .notification-toast-meta{display:grid;gap:.2rem;color:#6c757d;font-size:.75rem;margin-top:.55rem}
.tsp-notification-toast .notification-toast-fault{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.notification-list{border-radius:4px;overflow:hidden}
.notification-list-item{padding:1rem;border-bottom:1px solid #e5e8eb;background:#fff;transition:background-color .12s ease}
.notification-list-item:last-child{border-bottom:0}
.notification-list-item:hover,.notification-list-item:focus{background:#fff7f8}
.notification-list-item.is-unread{background:#fffafb;border-left:4px solid #c8102e;padding-left:calc(1rem - 4px)}
.notification-unread-dot{display:inline-block;width:.55rem;height:.55rem;border-radius:50%;background:#c8102e;flex:0 0 auto}
.notification-meta{display:grid;gap:.3rem;color:#606870;font-size:.82rem}
.notification-meta span{overflow-wrap:anywhere}
.min-w-0{min-width:0}

/* Dealer notification dispatch workspace */
.dispatch-workspace{display:grid;grid-template-columns:224px minmax(0,1fr);gap:1.25rem;min-height:calc(100vh - 8rem);color:#172231}
.dispatch-sidebar{background:#071b2f;color:#dce8f4;border-radius:8px;display:flex;flex-direction:column;overflow:hidden;align-self:start;position:sticky;top:1rem}
.dispatch-sidebar-brand{display:flex;align-items:center;gap:.7rem;padding:1.25rem 1rem;border-bottom:1px solid rgba(255,255,255,.1);font-size:1.02rem}
.dispatch-sidebar-brand>div{display:grid;gap:.1rem}.dispatch-sidebar-brand span:last-child{font-size:.78rem;color:#9eb0c4}
.dispatch-brand-icon{width:2.35rem;height:2.35rem;display:grid;place-items:center;background:#2f78df;color:#fff;border-radius:7px;font-size:1.25rem}
.dispatch-sidebar-nav{padding:.7rem 0;display:grid;gap:.15rem}.dispatch-sidebar-nav a{display:flex;align-items:center;gap:.65rem;padding:.72rem 1rem;color:#c5d3e0;text-decoration:none;font-size:.9rem;border-left:3px solid transparent}.dispatch-sidebar-nav a:hover{background:rgba(255,255,255,.07);color:#fff}.dispatch-sidebar-nav a.is-active{background:#103b68;color:#fff;border-left-color:#4d9af5}.dispatch-sidebar-nav a i{width:1.15rem;text-align:center}.dispatch-sidebar-nav a span{min-width:0;flex:1}.dispatch-sidebar-nav b{font-size:.68rem;line-height:1.25;min-width:1.2rem;padding:.15rem .35rem;text-align:center;border-radius:10px;background:#d7e4f1;color:#14304a}.dispatch-sidebar-nav b.is-alert{background:#ef5b65;color:#fff}.dispatch-sidebar-note{display:flex;gap:.5rem;margin:auto .85rem .9rem;padding:.7rem .65rem;border-top:1px solid rgba(255,255,255,.1);font-size:.72rem;line-height:1.45;color:#9eb0c4}
.dispatch-workspace-main{min-width:0}.dispatch-page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin:.2rem 0 1rem}.dispatch-eyebrow{font-size:.74rem;letter-spacing:.05em;text-transform:uppercase;color:#4c78a8;font-weight:700}.dispatch-page-header h1{font-size:1.55rem;margin:.2rem 0 .25rem;font-weight:750}.dispatch-page-header p{margin:0;color:#6b7785;font-size:.88rem}.dispatch-header-actions{display:flex;align-items:center;gap:.65rem;white-space:nowrap}.dispatch-market-chip{padding:.32rem .6rem;border:1px solid #c8d9e9;background:#f4f8fc;color:#31618f;font-weight:700;border-radius:5px;font-size:.75rem}
.dispatch-stepper{display:flex;align-items:center;gap:.5rem;overflow:auto;padding:.8rem 1rem;background:#fff;border:1px solid #dce5ee;border-radius:8px;margin-bottom:1rem;box-shadow:0 4px 16px rgba(25,50,75,.06)}.dispatch-step{border:0;background:transparent;display:flex;align-items:center;gap:.45rem;color:#778493;white-space:nowrap;font-size:.85rem;padding:.2rem}.dispatch-step span{width:1.65rem;height:1.65rem;display:grid;place-items:center;border:2px solid #d8e0e8;border-radius:50%;font-weight:700}.dispatch-step.is-current{color:#172231}.dispatch-step.is-current span{background:#2f78df;border-color:#2f78df;color:#fff}.dispatch-step-arrow{color:#b9c5d1;font-size:.8rem}
.dispatch-panel{display:none;background:#fff;border:1px solid #dce5ee;border-radius:8px;padding:1.25rem;box-shadow:0 4px 16px rgba(25,50,75,.05)}.dispatch-panel.is-visible{display:block}.dispatch-panel-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.1rem}.dispatch-panel-heading>div{display:flex;align-items:center;gap:.55rem}.dispatch-panel-heading h2{font-size:1.04rem;margin:0}.dispatch-panel-heading p{margin:.15rem 0 0;color:#6e7b89;font-size:.8rem;text-align:right}.dispatch-number{width:1.8rem;height:1.8rem;border-radius:50%;background:#2f78df;color:#fff;display:grid;place-items:center;font-weight:700}
.dispatch-role-tabs{display:flex;gap:.4rem;overflow:auto;padding-bottom:.5rem;border-bottom:1px solid #edf1f5}.dispatch-role-tab{border:1px solid #d4e0eb;background:#fff;color:#596978;border-radius:20px;padding:.5rem .75rem;white-space:nowrap;font-size:.82rem}.dispatch-role-tab i{margin-right:.35rem}.dispatch-role-tab.is-selected{border-color:#2f78df;background:#edf5ff;color:#1f64ad}.dispatch-role-tab.is-disabled{opacity:.45;cursor:not-allowed}.dispatch-permission-note,.dispatch-warning,.dispatch-recipient-preview{display:flex;align-items:flex-start;gap:.5rem;color:#657585;font-size:.8rem;line-height:1.45;padding:.75rem .85rem;background:#f7fafc;border:1px solid #e4ebf2;border-radius:5px;margin-top:.9rem}.dispatch-permission-note i,.dispatch-warning i,.dispatch-recipient-preview i{color:#2f78df;margin-top:.15rem}.dispatch-type-group{display:none;margin-top:1rem}.dispatch-type-group.is-visible{display:block}.dispatch-type-group-heading{display:flex;align-items:center;gap:.45rem;color:#34465b;margin-bottom:.55rem}.dispatch-type-group-heading i{color:#2f78df}.dispatch-type-group-heading span{font-size:.72rem;color:#8995a2;margin-left:auto}.dispatch-type-grid{display:grid;grid-template-columns:repeat(6,minmax(110px,1fr));gap:.65rem}.dispatch-type-card{position:relative;min-height:116px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:.3rem;border:1px solid #dce5ee;border-radius:7px;padding:.65rem .4rem;cursor:pointer;transition:border-color .15s,background .15s}.dispatch-type-card:hover{border-color:#6fa9e8;background:#f7fbff}.dispatch-type-card:has(input:checked){border-color:#2f78df;background:#edf5ff;box-shadow:0 0 0 2px rgba(47,120,223,.12)}.dispatch-type-card input{position:absolute;opacity:0}.dispatch-type-card strong{font-size:.78rem;line-height:1.3}.dispatch-type-card small,.dispatch-type-card em{font-size:.68rem;color:#8090a0;font-style:normal}.dispatch-type-card em{position:absolute;right:.35rem;top:.3rem;color:#e29a9e}.dispatch-type-card.is-disabled{opacity:.42;cursor:not-allowed;background:#fbfcfd}.dispatch-type-icon{width:2rem;height:2rem;display:grid;place-items:center;color:#2f78df;font-size:1.35rem}
.dispatch-selected-type{padding:.65rem .8rem;background:#edf5ff;color:#2866a7;border-left:3px solid #2f78df;border-radius:4px;margin-bottom:1rem;font-size:.85rem;font-weight:650}.dispatch-form .form-label{font-size:.82rem;font-weight:650;color:#455667}.dispatch-form-actions{display:flex;justify-content:space-between;align-items:center;margin-top:1rem}.dispatch-form-actions .btn{border-radius:5px}.dispatch-form-actions [data-step-next],.dispatch-form-actions [data-step-submit]{min-width:8.5rem}
.dispatch-dealer-preview{margin-top:1.25rem;padding-top:1.1rem;border-top:1px solid #edf1f4}.dispatch-dealer-preview-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.75rem}.dispatch-dealer-preview-heading>div{display:flex;align-items:flex-start;gap:.6rem}.dispatch-preview-icon{width:2rem;height:2rem;display:grid;place-items:center;background:#fff1f3;color:#c8102e;border-radius:5px;flex:0 0 auto}.dispatch-dealer-preview h3{font-size:.95rem;margin:0}.dispatch-dealer-preview-heading p{margin:.2rem 0 0;color:#778493;font-size:.76rem}.dispatch-preview-live{color:#267c50;font-size:.72rem;font-weight:700;white-space:nowrap}.dispatch-preview-live i{font-size:.45rem;margin-right:.3rem;vertical-align:middle}.dispatch-preview-device{max-width:860px;margin:0 auto;padding:1rem;background:#fff;border:1px solid #d9dde2;border-radius:6px;box-shadow:0 4px 14px rgba(24,30,36,.06)}.dispatch-preview-meta{display:flex;gap:.45rem;flex-wrap:wrap}.dispatch-preview-title{padding:.8rem 0;border-bottom:1px solid #edf1f4}.dispatch-preview-title h4{font-size:1.12rem;margin:0;overflow-wrap:anywhere}.dispatch-preview-title p{color:#778493;font-size:.72rem;margin:.35rem 0 0;overflow-wrap:anywhere}.dispatch-preview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem;padding:.85rem 0}.dispatch-preview-grid>div{display:grid;gap:.2rem;min-width:0}.dispatch-preview-grid span{color:#778493;font-size:.68rem}.dispatch-preview-grid strong{font-size:.76rem;overflow-wrap:anywhere}.dispatch-preview-content{white-space:pre-wrap;line-height:1.6;border-top:1px solid #edf1f4;padding:.85rem 0;font-size:.82rem;overflow-wrap:anywhere}.dispatch-preview-files{border:1px solid #e2e9ef;border-radius:5px}.dispatch-preview-files header{display:flex;justify-content:space-between;align-items:center;padding:.6rem .75rem;border-bottom:1px solid #edf1f4}.dispatch-preview-files h5{font-size:.8rem;margin:0}.dispatch-preview-files header>span{font-size:.7rem;color:#778493}.dispatch-preview-files>div{padding:.2rem .75rem}.dispatch-preview-file{display:flex;justify-content:space-between;gap:.75rem;padding:.55rem 0;border-bottom:1px solid #edf1f4}.dispatch-preview-file:last-child{border-bottom:0}.dispatch-preview-file strong{font-size:.76rem;overflow-wrap:anywhere}.dispatch-preview-file small{color:#778493;font-size:.7rem;white-space:nowrap}
.dispatch-scope-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.dispatch-scope-option{display:block;cursor:pointer}.dispatch-scope-option>input{position:absolute;opacity:0}.dispatch-scope-option>span{display:flex;flex-direction:column;gap:.28rem;height:100%;border:1px solid #dce5ee;border-radius:7px;padding:1rem}.dispatch-scope-option>input:checked+span{border-color:#2f78df;background:#edf5ff;box-shadow:0 0 0 2px rgba(47,120,223,.12)}.dispatch-scope-option i{font-size:1.2rem;color:#2f78df}.dispatch-scope-option strong{font-size:.85rem}.dispatch-scope-option small{font-size:.74rem;color:#758392;line-height:1.35}.dispatch-scope-detail{display:none;margin-top:1rem}.dispatch-scope-detail:has(select[name="dealer_user_ids"]){display:none}.dispatch-scope-options:has(input[value="selected_dealers"]:checked)~[data-audience-detail="selected_dealers"],.dispatch-scope-options:has(input[value="vehicle_model"]:checked)~[data-audience-detail="vehicle_model"]{display:block}
.dispatch-settings-list{display:grid;gap:.65rem}.dispatch-setting-row{display:flex;align-items:center;gap:.75rem;padding:.85rem .9rem;border:1px solid #dce5ee;border-radius:6px}.dispatch-setting-row>div{flex:1;display:grid;gap:.2rem}.dispatch-setting-row strong{font-size:.85rem}.dispatch-setting-row small{color:#788694;font-size:.75rem}.dispatch-setting-icon{width:2rem;height:2rem;display:grid;place-items:center;color:#2f78df;background:#edf5ff;border-radius:5px}.dispatch-fixed-status{font-size:.75rem;color:#267c50;font-weight:700}.dispatch-setting-toggle{cursor:pointer}.dispatch-setting-toggle input{width:1.1rem;height:1.1rem;accent-color:#2f78df}
.dispatch-review-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.dispatch-review-grid>div{display:grid;gap:.2rem;padding:.75rem;background:#f7fafc;border:1px solid #e4ebf2;border-radius:5px;min-width:0}.dispatch-review-grid span{font-size:.72rem;color:#778493}.dispatch-review-grid strong{font-size:.84rem;overflow-wrap:anywhere}.dispatch-final-confirm{margin-top:1rem;padding:1rem;background:#eef8f2;border:1px solid #cbe8d4;color:#267044;border-radius:5px;font-size:.84rem}.dispatch-final-confirm i{margin-right:.4rem}
.dispatch-filter-bar{display:grid;grid-template-columns:minmax(220px,1fr) 240px 170px auto;gap:.6rem;margin-bottom:1rem}.dispatch-filter-bar .form-control,.dispatch-filter-bar .form-select{min-width:0}.dispatch-summary-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-bottom:1rem}.dispatch-summary-strip>div{background:#fff;border:1px solid #dce5ee;border-radius:7px;padding:.75rem 1rem;display:flex;justify-content:space-between;align-items:center;gap:.6rem}.dispatch-summary-strip span{font-size:.76rem;color:#72808e}.dispatch-summary-strip strong{font-size:1.2rem;color:#1f64ad}.dispatch-table-wrap{overflow:auto;background:#fff;border:1px solid #dce5ee;border-radius:7px}.dispatch-table{min-width:980px}.dispatch-table thead th{background:#f4f7fa;color:#5d6b79;font-size:.74rem;font-weight:700;white-space:nowrap}.dispatch-table td{font-size:.8rem;border-color:#edf1f4}.dispatch-table td>small,.dispatch-table td>strong+small{display:block;color:#7c8996;font-size:.7rem;margin-top:.22rem}.dispatch-type-pill{display:inline-block;background:#edf5ff;color:#2b67a5;border-radius:4px;padding:.22rem .4rem;font-size:.7rem}.dispatch-status{display:inline-block;border-radius:4px;padding:.22rem .4rem;font-size:.7rem;font-weight:700}.dispatch-status.is-published,.dispatch-status.is-read{background:#eaf7ef;color:#287649}.dispatch-status.is-warning{background:#fff4df;color:#9a650d}.dispatch-status.is-archived,.dispatch-status.is-disabled{background:#eef1f4;color:#66727d}
.dispatch-permission-summary{display:flex;align-items:center;gap:.8rem;background:#fff;border:1px solid #dce5ee;border-radius:7px;padding:1rem;margin-bottom:1rem}.dispatch-permission-summary>i{font-size:1.7rem;color:#2f78df}.dispatch-permission-summary div{display:grid;gap:.2rem}.dispatch-permission-summary div:nth-of-type(2){margin-left:auto;text-align:right}.dispatch-permission-summary span{color:#778493;font-size:.75rem}.dispatch-permission-summary strong{font-size:.92rem}.dispatch-guide-list{display:grid;gap:.75rem}.dispatch-guide-section{background:#fff;border:1px solid #dce5ee;border-radius:7px;overflow:hidden}.dispatch-guide-section.is-locked{opacity:.58}.dispatch-guide-section header{display:flex;align-items:center;gap:.75rem;padding:.85rem 1rem;border-bottom:1px solid #edf1f4}.dispatch-guide-section header>span{width:2rem;height:2rem;border-radius:5px;display:grid;place-items:center;background:#edf5ff;color:#2f78df}.dispatch-guide-section header div{flex:1}.dispatch-guide-section h2{font-size:.9rem;margin:0}.dispatch-guide-section p{font-size:.72rem;color:#778493;margin:.2rem 0 0}.dispatch-guide-section header>b{color:#2f78df}.dispatch-guide-types{display:flex;flex-wrap:wrap;gap:.45rem;padding:.85rem 1rem}.dispatch-guide-types span{display:inline-flex;align-items:center;gap:.35rem;border:1px solid #e4ebf2;border-radius:4px;padding:.35rem .5rem;font-size:.74rem;color:#506273}.dispatch-guide-types i{color:#2f78df}
.dispatch-detail{background:#fff;border:1px solid #dce5ee;border-radius:7px;padding:1.25rem}.dispatch-detail-meta{display:flex;gap:.5rem;flex-wrap:wrap}.dispatch-detail-title{padding:.9rem 0;border-bottom:1px solid #edf1f4}.dispatch-detail-title h2{font-size:1.35rem;margin:0}.dispatch-detail-title p{color:#778493;font-size:.76rem;margin:.4rem 0 0}.dispatch-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem;padding:1rem 0}.dispatch-detail-grid>div{display:grid;gap:.2rem}.dispatch-detail-grid span{font-size:.72rem;color:#778493}.dispatch-detail-grid strong{font-size:.8rem;overflow-wrap:anywhere}.dispatch-detail-content{white-space:pre-wrap;line-height:1.6;border-top:1px solid #edf1f4;padding:1rem 0}.dispatch-detail-files{border:1px solid #e2e9ef;border-radius:6px}.dispatch-detail-files header{display:flex;justify-content:space-between;align-items:center;padding:.7rem .85rem;border-bottom:1px solid #e5ebf0}.dispatch-detail-files h3{font-size:.9rem;margin:0}.dispatch-detail-files header>span{font-size:.75rem;color:#778493}.dispatch-file-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.7rem .85rem;border-bottom:1px solid #edf1f4}.dispatch-file-row:last-child{border-bottom:0}.dispatch-file-row>div{min-width:0}.dispatch-file-row strong,.dispatch-file-row small{display:block;overflow-wrap:anywhere}.dispatch-file-row strong{font-size:.8rem}.dispatch-file-row small{color:#778493;font-size:.7rem;margin-top:.2rem}.dispatch-detail-stats{display:flex;gap:1rem;flex-wrap:wrap;padding:1rem 0;color:#66727d;font-size:.8rem}.dispatch-detail-stats strong{color:#1f64ad}.dispatch-detail-actions{display:flex;gap:.6rem;flex-wrap:wrap}.dispatch-ack-box{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1rem;padding:1rem;background:#edf5ff;border:1px solid #c9def4;border-radius:6px}.dispatch-ack-box>i{color:#2d9b61;font-size:1.2rem}.dispatch-ack-box>div{display:grid;gap:.2rem;flex:1}.dispatch-ack-box>div span{font-size:.76rem;color:#66727d}.notification-detail-page{max-width:960px;margin:0 auto}
@media (max-width: 1199.98px){.dispatch-workspace{grid-template-columns:190px minmax(0,1fr)}.dispatch-type-grid{grid-template-columns:repeat(4,minmax(110px,1fr))}.dispatch-review-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width: 767.98px){.dispatch-workspace{display:block;min-height:0}.dispatch-sidebar{position:static;margin:-.5rem -.75rem 1rem;border-radius:0}.dispatch-sidebar-brand{padding:.8rem 1rem}.dispatch-sidebar-nav{display:flex;overflow-x:auto;padding:.45rem .5rem;gap:.25rem}.dispatch-sidebar-nav a{flex:0 0 auto;min-width:108px;justify-content:center;flex-direction:column;gap:.25rem;padding:.55rem .45rem;border-left:0;border-bottom:3px solid transparent;font-size:.69rem}.dispatch-sidebar-nav a.is-active{border-left:0;border-bottom-color:#4d9af5}.dispatch-sidebar-nav a b{position:absolute;margin-left:4.1rem;margin-top:-1.8rem}.dispatch-sidebar-note{display:none}.dispatch-page-header{display:block}.dispatch-header-actions{margin-top:.7rem;justify-content:space-between}.dispatch-page-header h1{font-size:1.25rem}.dispatch-panel{padding:.9rem}.dispatch-panel-heading{display:block}.dispatch-panel-heading p{text-align:left;margin-top:.5rem}.dispatch-type-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.dispatch-type-card{min-height:105px}.dispatch-stepper{padding:.65rem .7rem}.dispatch-step strong{font-size:.7rem}.dispatch-step-arrow{font-size:.65rem}.dispatch-scope-options{grid-template-columns:1fr}.dispatch-filter-bar{grid-template-columns:1fr}.dispatch-summary-strip{grid-template-columns:1fr}.dispatch-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dispatch-file-row{align-items:flex-start;flex-direction:column}.dispatch-review-grid{grid-template-columns:1fr}.dispatch-form-actions{position:sticky;bottom:.5rem;background:#fff;padding:.65rem;border:1px solid #dce5ee;border-radius:6px;z-index:3}.dispatch-permission-summary{align-items:flex-start}.dispatch-permission-summary div:nth-of-type(2){margin-left:0;text-align:left}.dispatch-permission-summary{flex-wrap:wrap}.dispatch-dealer-preview-heading{display:block}.dispatch-preview-live{display:inline-block;margin-top:.45rem}.dispatch-preview-device{padding:.75rem}.dispatch-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dispatch-preview-file{align-items:flex-start;flex-direction:column}.dispatch-preview-file small{white-space:normal}}

/* Three-electric-system warranty repair records */
.hv-page{max-width:1480px;margin:0 auto;padding:.2rem 0 2rem}.hv-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin:.3rem 0 1.15rem}.hv-page-header h1{font-size:1.55rem;font-weight:750;margin:.25rem 0}.hv-page-header p{margin:0;color:#68747f;font-size:.9rem}.hv-back-link{display:inline-flex;align-items:center;gap:.35rem;color:#5b6670;font-size:.84rem;text-decoration:none}.hv-back-link:hover{color:#c8102e}.hv-header-actions{display:flex;gap:.55rem;flex-wrap:wrap}.hv-record-chip{background:#f7e8eb;color:#9e1730;border:1px solid #e8b9c2;border-radius:5px;padding:.36rem .6rem;font-size:.78rem;font-weight:700;white-space:nowrap}.hv-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid #dfe4e9;border-radius:7px;background:#fff;margin-bottom:1rem}.hv-summary>div{display:flex;justify-content:space-between;align-items:center;padding:.8rem 1rem;border-right:1px solid #e5e8ec}.hv-summary>div:last-child{border-right:0}.hv-summary span{color:#6d7883;font-size:.8rem}.hv-summary strong{font-size:1.15rem;color:#293845}.hv-summary small{font-size:.68rem;color:#6d7883}.hv-filters{display:grid;grid-template-columns:minmax(220px,1.4fr) repeat(4,minmax(130px,1fr)) auto auto;gap:.55rem;margin:1rem 0}.hv-table-wrap{overflow:auto;border:1px solid #dfe4e9;border-radius:7px;background:#fff}.hv-table-wrap table{min-width:1030px}.hv-table-wrap th{background:#f4f6f8;color:#596671;font-size:.75rem;white-space:nowrap}.hv-table-wrap td{font-size:.84rem}.hv-table-wrap td small{display:block;color:#7a8590;font-size:.72rem;margin-top:.16rem}.hv-click-row{cursor:pointer}.hv-click-row:hover td{background:#fff5f6}.hv-status{display:inline-block;padding:.2rem .42rem;border-radius:4px;background:#edf2f7;color:#4b5d6d;font-size:.75rem}.hv-empty{min-height:180px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.6rem;color:#7a8590}.hv-empty i{font-size:2rem}.hv-form-section,.hv-detail-section{background:#fff;border:1px solid #dfe4e9;border-radius:7px;padding:1rem;margin-bottom:1rem}.hv-form-section h2,.hv-detail-section h2{display:flex;align-items:center;gap:.5rem;font-size:1.02rem;font-weight:700;margin:0 0 1rem}.hv-form-section h2 span{display:inline-flex;align-items:center;justify-content:center;width:1.45rem;height:1.45rem;border-radius:50%;background:#c8102e;color:#fff;font-size:.73rem}.hv-form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem}.hv-field{min-width:0}.hv-field-wide{grid-column:span 2}.hv-field label{font-size:.8rem;font-weight:650;color:#48545f;margin-bottom:.28rem}.hv-field label b{color:#c8102e}.hv-field small{display:block;margin-top:.2rem;color:#7a8590;font-size:.72rem}.hv-section-note{font-size:.82rem;color:#67727c;margin:-.45rem 0 .8rem}.hv-upload-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.hv-existing-file,.hv-file-row{display:flex;justify-content:space-between;align-items:center;gap:.6rem;padding:.5rem 0;border-bottom:1px solid #edf0f2;font-size:.82rem}.hv-existing-file:last-child,.hv-file-row:last-child{border-bottom:0}.hv-existing-file span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hv-form-actions{position:sticky;bottom:.5rem;z-index:3;display:flex;justify-content:flex-end;gap:.6rem;padding:.75rem;background:#fff;border:1px solid #dfe4e9;border-radius:7px}.hv-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.9rem;margin:0}.hv-detail-grid>div{min-width:0}.hv-detail-grid dt{font-size:.75rem;color:#71808c;font-weight:600;margin-bottom:.2rem}.hv-detail-grid dd{font-size:.88rem;color:#273642;white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.hv-detail-wide{grid-column:span 2}.hv-attachment-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}.hv-attachment-columns h3{font-size:.85rem;font-weight:700;margin:0 0 .4rem;color:#4b5863}.hv-file-row span:first-child{min-width:0;overflow-wrap:anywhere}.hv-file-row small{display:block;color:#7a8590;font-size:.7rem;margin-top:.14rem}.hv-audit-line{color:#78838d;font-size:.77rem;padding:.2rem 0}
@media (max-width:991.98px){.hv-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.hv-form-grid,.hv-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:767.98px){.hv-page{padding-bottom:1rem}.hv-page-header{display:block}.hv-header-actions{margin-top:.75rem}.hv-header-actions .btn{flex:1}.hv-summary{grid-template-columns:1fr}.hv-summary>div{border-right:0;border-bottom:1px solid #e5e8ec}.hv-summary>div:last-child{border-bottom:0}.hv-filters{grid-template-columns:1fr}.hv-filters input:first-child{min-height:2.6rem}.hv-form-section,.hv-detail-section{padding:.85rem;margin-left:-.25rem;margin-right:-.25rem}.hv-form-grid,.hv-detail-grid,.hv-upload-grid,.hv-attachment-columns{grid-template-columns:1fr}.hv-field-wide,.hv-detail-wide{grid-column:span 1}.hv-form-actions{bottom:.25rem}.hv-file-row{align-items:flex-start;flex-direction:column}.hv-file-row span:last-child{display:flex;gap:.35rem}.hv-page-header h1{font-size:1.28rem}}

@media (max-width: 1399.98px){.notification-toast-container{top:4.5rem}}
@media (max-width: 767.98px){.notification-toast-container{top:4.15rem;left:.6rem;right:.6rem;width:auto}.notification-toast-container .tsp-notification-toast:nth-child(n+3){display:none}.notification-list-item>.d-flex{display:block!important}.notification-list-item .text-end{text-align:left!important;margin-top:.75rem}.notification-list-item .btn{width:auto!important}}

/* Keep notification dispatch visually inside the TSP product. */
.dispatch-workspace{color:#252525}
.dispatch-sidebar{background:#fff;color:#343a40;border:1px solid #d9dde2;border-top:4px solid #c8102e;border-radius:4px;box-shadow:0 .35rem 1rem rgba(24,30,36,.06)}
.dispatch-sidebar-brand{padding:1rem;border-bottom-color:#e8eaed}
.dispatch-sidebar-brand span:last-child{color:#6c757d}
.dispatch-brand-icon{background:#c8102e;border-radius:4px}
.dispatch-sidebar-nav a{position:relative;color:#495057}
.dispatch-sidebar-nav a:hover{background:#fff5f6;color:#a40d26}
.dispatch-sidebar-nav a.is-active{background:#fbecef;color:#a40d26;border-left-color:#c8102e}
.dispatch-sidebar-nav a i{color:#c8102e}
.dispatch-sidebar-nav b{background:#f0f1f2;color:#495057}
.dispatch-sidebar-nav b.is-alert{background:#c8102e;color:#fff}
.dispatch-sidebar-note{border-top-color:#e8eaed;color:#6c757d}
.dispatch-eyebrow{letter-spacing:0;text-transform:none;color:#c8102e}
.dispatch-market-chip{border-color:#d9a4ae;background:#fff5f6;color:#a40d26;border-radius:4px}
.dispatch-workspace .btn-primary{--bs-btn-bg:#c8102e;--bs-btn-border-color:#c8102e;--bs-btn-hover-bg:#a40d26;--bs-btn-hover-border-color:#a40d26;--bs-btn-active-bg:#8f0b20;--bs-btn-active-border-color:#8f0b20}
.dispatch-stepper,.dispatch-panel{border-color:#d9dde2;border-radius:4px;box-shadow:0 3px 10px rgba(24,30,36,.05)}
.dispatch-step.is-current span,.dispatch-number{background:#c8102e;border-color:#c8102e}
.dispatch-role-tab.is-selected,.dispatch-type-card:has(input:checked),.dispatch-scope-option>input:checked+span{border-color:#c8102e;background:#fff1f3;color:#a40d26;box-shadow:0 0 0 2px rgba(200,16,46,.1)}
.dispatch-type-card:hover{border-color:#d77b8a;background:#fffafb}
.dispatch-type-icon,.dispatch-type-group-heading i,.dispatch-permission-note i,.dispatch-warning i,.dispatch-recipient-preview i,.dispatch-setting-icon,.dispatch-permission-summary>i,.dispatch-guide-types i{color:#c8102e}
.dispatch-setting-icon{background:#fff1f3}
.dispatch-selected-type{background:#fff1f3;color:#a40d26;border-left-color:#c8102e}
.dispatch-summary-strip strong,.dispatch-detail-stats strong{color:#a40d26}
.dispatch-type-pill{background:#fff1f3;color:#a40d26}
.dispatch-guide-section header>span{background:#fff1f3;color:#c8102e}
.dispatch-guide-section header>b{color:#c8102e}

@media (max-width: 767.98px){
    .dispatch-workspace{overflow-x:hidden}
    .dispatch-sidebar-nav{max-width:100%}
    .dispatch-sidebar-nav a.is-active{border-left:0;border-bottom-color:#c8102e}
    .dispatch-sidebar-nav a b{position:static;margin:0;align-self:center}
}
.dispatch-file-actions{display:flex;gap:.45rem;flex-wrap:wrap}

/* System update announcements */
.system-update-page{width:min(1500px,100%);margin:0 auto}.system-update-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem}.system-update-header>div>span{display:inline-block;color:#a30d26;background:#fdecef;border-radius:4px;padding:.25rem .5rem;font-size:.72rem;font-weight:700}.system-update-header h1{font-size:1.7rem;margin:.65rem 0 .25rem}.system-update-header p{color:#68727d;margin:0}.system-update-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(340px,.75fr);gap:1.25rem;align-items:start}.system-update-compose,.system-update-history{background:#fff;border:1px solid #dfe3e8;border-radius:7px;padding:1.25rem;box-shadow:0 4px 14px rgba(24,30,36,.05)}.system-update-history{position:sticky;top:1rem}.system-update-section-title{display:flex;align-items:flex-start;gap:.7rem;margin-bottom:1rem}.system-update-section-title>span{width:2rem;height:2rem;display:grid;place-items:center;border-radius:50%;background:#c8102e;color:#fff;font-weight:700;flex:0 0 auto}.system-update-section-title h2{font-size:1.05rem;margin:0}.system-update-section-title p{font-size:.8rem;color:#747e89;margin:.2rem 0 0}.system-update-upload{display:flex;min-height:7rem;flex-direction:column;align-items:center;justify-content:center;gap:.3rem;border:1px dashed #9ca5af;border-radius:6px;background:#f8f9fa;cursor:pointer;text-align:center;padding:1rem}.system-update-upload:hover{border-color:#c8102e;background:#fff7f8}.system-update-upload i{font-size:1.7rem;color:#c8102e}.system-update-upload span{color:#6f7781;font-size:.76rem;max-width:640px}.system-update-publish-note{display:flex;gap:.55rem;margin:1rem 0;padding:.8rem;background:#fff8e8;border:1px solid #f0ddb2;border-radius:5px;color:#74591d;font-size:.82rem}.system-update-records{display:grid;gap:.7rem;max-height:720px;overflow:auto}.system-update-records article{border:1px solid #dde2e7;border-left:4px solid #c8102e;border-radius:5px;padding:.85rem}.system-update-records article.is-expired{opacity:.62;border-left-color:#8b9299}.system-update-record-heading,.system-update-record-footer,.system-update-record-meta{display:flex;justify-content:space-between;gap:.5rem;flex-wrap:wrap}.system-update-record-heading span{color:#a30d26;font-size:.74rem;font-weight:700}.system-update-record-heading small,.system-update-record-meta,.system-update-record-footer{color:#737d87;font-size:.72rem}.system-update-records h3{font-size:.96rem;margin:.55rem 0 .3rem}.system-update-records p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-wrap;font-size:.8rem;margin:0 0 .55rem}.system-update-record-meta{justify-content:flex-start}.system-update-record-meta span{padding:.18rem .35rem;background:#f3f5f7;border-radius:3px}.system-update-record-footer{margin-top:.65rem;padding-top:.55rem;border-top:1px solid #edf0f2}.system-update-record-footer a{color:#a30d26;text-decoration:none;font-weight:700}.system-announcement-overlay{position:fixed;inset:0;z-index:1100;display:grid;place-items:center;padding:1rem;background:rgba(18,22,27,.58);pointer-events:auto}.system-announcement-popup{width:min(620px,100%);max-height:min(760px,calc(100vh - 2rem));overflow:auto;border:0;border-top:6px solid #c8102e;border-left:0;border-radius:8px;padding:1.25rem;box-shadow:0 1.5rem 4rem rgba(0,0,0,.35)}.system-announcement-popup>div:first-child>strong{font-size:1.18rem}.system-announcement-popup .notification-toast-content{font-size:.94rem;white-space:pre-wrap;max-height:300px;overflow:auto}.system-announcement-popup .notification-toast-meta{padding:.65rem;background:#f6f7f8;border-radius:5px}.system-announcement-popup .btn-close{font-size:.8rem}
@media (max-width:991.98px){.system-update-layout{grid-template-columns:1fr}.system-update-history{position:static}.system-update-records{max-height:none}}
@media (max-width:575.98px){.system-update-header{display:block}.system-update-header .btn{width:100%;margin-top:.8rem}.system-update-compose,.system-update-history{padding:.9rem}.system-announcement-overlay{padding:.55rem}.system-announcement-popup{max-height:calc(100vh - 1.1rem);padding:1rem}.system-announcement-popup .d-flex.justify-content-between.align-items-center.gap-2.mt-3{align-items:stretch!important;flex-direction:column}.system-announcement-popup .d-flex.justify-content-between.align-items-center.gap-2.mt-3>a{text-align:center}.system-announcement-popup .d-flex.gap-2{display:grid!important;grid-template-columns:1fr 1fr}.system-announcement-popup .btn{white-space:normal}}


/* Product feedback workspace */
.feedback-page {
    width: min(1480px, 100%);
    min-width: 0;
    max-width: 100%;
    margin: 0 auto;
    color: #20242a;
}

.feedback-page-header,
.feedback-detail-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.5rem;
    padding: 1.25rem 0 1.5rem;
    border-bottom: 1px solid #dfe3e8;
}

.feedback-page-header h1,
.feedback-detail-header h1 {
    margin: .2rem 0 .35rem;
    font-size: clamp(1.55rem, 2.4vw, 2.2rem);
    font-weight: 750;
}

.feedback-page-header p,
.feedback-detail-header p { margin: 0; color: #68707a; }
.feedback-eyebrow { color: #c8102e; font-size: .78rem; font-weight: 750; text-transform: uppercase; }
.feedback-form { background: #fff; border: 1px solid #dfe3e8; border-radius: 6px; margin: 1.5rem 0; }
.feedback-section { padding: 1.6rem; border-bottom: 1px solid #e6e9ed; }
.feedback-section:last-of-type { border-bottom: 0; }
.feedback-section[hidden] { display: none !important; }
.feedback-section-heading { display: flex; align-items: flex-start; gap: .85rem; margin-bottom: 1.2rem; }
.feedback-section-heading > span { display: grid; place-items: center; width: 2rem; height: 2rem; flex: 0 0 2rem; border-radius: 50%; background: #c8102e; color: #fff; font-weight: 750; }
.feedback-section-heading h2,
.feedback-detail-section h2,
.feedback-side-section h2 { margin: 0; font-size: 1rem; font-weight: 750; }
.feedback-section-heading p { margin: .25rem 0 0; color: #727a84; font-size: .88rem; }
.feedback-type-switch { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.feedback-type-option { position: relative; cursor: pointer; }
.feedback-type-option input { position: absolute; opacity: 0; pointer-events: none; }
.feedback-type-option > span { display: grid; grid-template-columns: auto 1fr; column-gap: .75rem; align-items: center; min-height: 5rem; padding: 1rem; border: 1px solid #cfd5dc; border-radius: 6px; background: #fafbfc; }
.feedback-type-option i { grid-row: 1 / 3; font-size: 1.6rem; color: #59616b; }
.feedback-type-option strong,
.feedback-type-option small { min-width: 0; overflow-wrap: anywhere; }
.feedback-type-option strong { font-size: 1rem; }
.feedback-type-option small { color: #737b85; }
.feedback-type-option input:checked + span { border-color: #c8102e; box-shadow: 0 0 0 2px rgba(200,16,46,.12); background: #fff7f8; }
.feedback-type-option input:checked + span i { color: #c8102e; }
.feedback-upload-zone { display: flex; min-height: 9rem; flex-direction: column; align-items: center; justify-content: center; gap: .3rem; border: 1px dashed #9ca5af; border-radius: 6px; background: #f8f9fa; cursor: pointer; text-align: center; }
.feedback-upload-zone:hover { border-color: #c8102e; background: #fff7f8; }
.feedback-upload-zone i { font-size: 2rem; color: #c8102e; }
.feedback-upload-zone span { color: #6f7781; font-size: .86rem; }
.feedback-file-list { margin-top: .8rem; }
.feedback-file-list > div { display: grid; grid-template-columns: auto 1fr auto; gap: .65rem; align-items: center; padding: .55rem .7rem; border-bottom: 1px solid #e9ecef; }
.feedback-file-list small { color: #6f7781; }
.feedback-form-actions { display: flex; justify-content: flex-end; gap: .75rem; padding: 1.25rem 1.6rem; background: #f7f8fa; }
.feedback-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid #dfe3e8; border-radius: 6px; margin: 1.25rem 0; background: #fff; }
.feedback-metrics > div { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.2rem; border-right: 1px solid #e3e6ea; }
.feedback-metrics > div:last-child { border-right: 0; }
.feedback-metrics span { color: #68707a; }
.feedback-metrics strong { font-size: 1.65rem; }
.feedback-filters { display: grid; grid-template-columns: minmax(180px, 1.6fr) repeat(4, minmax(130px, 1fr)) auto; gap: .65rem; margin: 1.25rem 0; }
.feedback-filters select:first-of-type:nth-last-of-type(2) { grid-column: auto; }
.feedback-table-wrap { width: 100%; max-width: 100%; min-width: 0; contain: inline-size layout paint; border: 1px solid #dfe3e8; border-radius: 6px; background: #fff; }
.feedback-table-wrap thead th { padding: .85rem 1rem; color: #59616b; background: #f4f6f8; border-bottom-width: 1px; white-space: nowrap; }
.feedback-table-wrap tbody td { padding: .9rem 1rem; }
.feedback-title-link { color: #20242a; font-weight: 700; text-decoration: none; }
.feedback-title-link:hover { color: #c8102e; }
.feedback-type-badge,
.feedback-status { display: inline-flex; align-items: center; min-height: 1.65rem; padding: .18rem .55rem; border-radius: 4px; font-size: .78rem; font-weight: 700; white-space: nowrap; }
.feedback-type-badge.is-bug { color: #a30d26; background: #fde9ed; }
.feedback-type-badge.is-feature { color: #125f76; background: #e3f3f7; }
.feedback-status { color: #3f4852; background: #e9edf1; }
.feedback-status.is-evaluating,
.feedback-status.is-planned { color: #72510a; background: #fff1c9; }
.feedback-status.is-in_progress { color: #0b5e7a; background: #dff3fa; }
.feedback-status.is-completed { color: #17683b; background: #dff4e8; }
.feedback-status.is-rejected { color: #6a4146; background: #f1e4e6; }
.feedback-back-link { color: #3e4650; text-decoration: none; font-weight: 650; }
.feedback-detail-header { display: block; }
.feedback-submitter { display: flex; min-width: 200px; flex-direction: column; padding: .75rem 1rem; border-left: 3px solid #c8102e; background: #f5f6f8; }
.feedback-submitter span,
.feedback-submitter small { color: #6b737d; font-size: .78rem; }
.feedback-detail-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 360px); gap: 1.5rem; margin: 1.5rem 0; align-items: start; }
.feedback-detail-section,
.feedback-side-section { padding: 1.2rem 0; border-bottom: 1px solid #e0e4e8; }
.feedback-detail-section:first-child,
.feedback-side-section:first-child { padding-top: 0; }
.feedback-detail-section h2,
.feedback-side-section h2 { margin-bottom: .65rem; color: #3c444e; }
.feedback-rich-text { white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.65; }
.feedback-side-section { padding: 1.1rem; border: 1px solid #dfe3e8; border-radius: 6px; margin-bottom: 1rem; background: #fff; }
.feedback-side-section dl { display: grid; grid-template-columns: 42% 58%; margin: 0; }
.feedback-side-section dt,
.feedback-side-section dd { padding: .45rem 0; border-bottom: 1px solid #edf0f2; overflow-wrap: anywhere; }
.feedback-side-section dt { color: #6d7580; font-weight: 600; }
.feedback-side-section dd { margin: 0; }
.feedback-attachment-list { display: grid; gap: .5rem; }
.feedback-attachment-item { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .7rem; padding: .75rem; border: 1px solid #dfe3e8; border-radius: 5px; color: #26313b; }
.feedback-attachment-item > i { color: #c8102e; font-size: 1.15rem; }
.feedback-attachment-item strong,
.feedback-attachment-item small { display: block; overflow-wrap: anywhere; }
.feedback-attachment-item small { color: #6f7781; }
.feedback-attachment-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .4rem; }
.feedback-attachment-actions a { padding: .36rem .55rem; border: 1px solid #d8dde2; border-radius: 4px; color: #34404b; text-decoration: none; white-space: nowrap; }
.feedback-attachment-actions a:hover { border-color: #c8102e; color: #c8102e; }
.feedback-update-upload { display: flex; align-items: center; justify-content: center; gap: .45rem; min-height: 3.2rem; border: 1px dashed #9ca5af; border-radius: 5px; background: #f8f9fa; color: #4e5964; cursor: pointer; }
.feedback-update-upload:hover { border-color: #c8102e; color: #c8102e; background: #fff7f8; }
.feedback-update-hint { display: block; margin-top: .45rem; color: #6f7781; line-height: 1.45; }
.feedback-timeline { display: grid; gap: .9rem; }
.feedback-timeline > div { position: relative; padding-left: 1.15rem; }
.feedback-timeline > div > span { position: absolute; left: 0; top: .32rem; width: .55rem; height: .55rem; border-radius: 50%; background: #c8102e; }
.feedback-timeline strong,
.feedback-timeline small { display: block; }
.feedback-timeline small { color: #747c86; margin-top: .12rem; }
.feedback-timeline p { margin: .35rem 0 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.feedback-timeline-files { display: grid; gap: .35rem; margin-top: .55rem; }
.feedback-timeline-files > div { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: .4rem; align-items: center; padding: .45rem .5rem; border: 1px solid #e2e6ea; border-radius: 4px; background: #f8f9fa; }
.feedback-timeline-files span { overflow-wrap: anywhere; font-size: .84rem; }
.feedback-timeline-files > div > div { display: flex; gap: .45rem; }
.feedback-timeline-files a { color: #a30d26; font-size: .8rem; text-decoration: none; white-space: nowrap; }

@media (max-width: 991.98px) {
    .feedback-detail-grid { grid-template-columns: 1fr; }
    .feedback-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .feedback-filters > input { grid-column: 1 / -1; }
    .feedback-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .feedback-metrics > div:nth-child(2) { border-right: 0; }
    .feedback-metrics > div:nth-child(-n+2) { border-bottom: 1px solid #e3e6ea; }
}

@media (max-width: 575.98px) {
    #ticketExportFilterModal .modal-header,
    #ticketExportFilterModal .ticket-export-modal-footer { flex-shrink: 0; }
    #ticketExportFilterModal .modal-body { min-height: 0; overflow-y: auto; }
    #ticketExportFilterModal .ticket-export-modal-footer {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        gap: .5rem;
        padding: .65rem;
    }
    #ticketExportFilterModal .ticket-export-modal-footer .btn {
        width: 100%;
        min-width: 0;
        margin: 0 !important;
    }
    #ticketExportFilterModal .ticket-export-modal-footer .btn:first-child { grid-column: 1 / -1; }
    .feedback-page-header { flex-direction: column; }
    .feedback-page-header .btn { width: 100%; }
    .feedback-type-switch,
    .feedback-filters,
    .feedback-metrics { grid-template-columns: 1fr; }
    .feedback-section { padding: 1.1rem .9rem; }
    .feedback-form-actions { padding: 1rem .9rem; flex-direction: column-reverse; }
    .feedback-form-actions .btn { width: 100%; }
    .feedback-metrics > div { border-right: 0; border-bottom: 1px solid #e3e6ea; }
    .feedback-metrics > div:last-child { border-bottom: 0; }
    .feedback-filters > * { grid-column: auto; }
    .feedback-submitter { width: 100%; }
    .feedback-attachment-item { grid-template-columns: auto minmax(0, 1fr); }
    .feedback-attachment-actions { grid-column: 1 / -1; justify-content: stretch; }
    .feedback-attachment-actions a { flex: 1; text-align: center; }
    .feedback-timeline-files > div { grid-template-columns: auto minmax(0, 1fr); }
    .feedback-timeline-files > div > div { grid-column: 1 / -1; justify-content: flex-end; }
}
