.metric-card h3,
.metric-card h4 { margin-bottom: .25rem; }
.metric-card,
.summary-card,
.quick-card,
.asset-kpi-card { border: 1px solid rgba(0,0,0,.08); box-shadow: 0 10px 26px rgba(15,23,42,.04); }
.asset-kpi-card { border-radius: 1rem; min-height: 100%; }
.asset-kpi-card .asset-kpi-value { font-size: 1.55rem; font-weight: 700; }
.quick-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.quick-metric { border: 1px solid rgba(0,0,0,.08); border-radius: .85rem; padding: .85rem; background: rgba(13,110,253,.03); }
.quick-metric .label { color: var(--bs-secondary-color); font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; margin-bottom: .25rem; }
.quick-metric .value { font-weight: 700; color: var(--bs-body-color); }
.expense-quick-panel { overflow: hidden; }
.asset-status-pill { display: inline-flex; align-items: center; gap: .35rem; border-radius: 999px; padding: .3rem .65rem; font-size: .76rem; font-weight: 700; letter-spacing: .01em; }
.asset-status-active { background: rgba(25,135,84,.12); color: #146c43; }
.asset-status-assigned { background: rgba(13,110,253,.12); color: #084298; }
.asset-status-maintenance { background: rgba(255,193,7,.18); color: #664d03; }
.asset-status-faulty { background: rgba(220,53,69,.12); color: #842029; }
.asset-status-terminal { background: rgba(33,37,41,.12); color: #343a40; }
.asset-status-soft { background: rgba(108,117,125,.12); color: #495057; }
.asset-table td, .asset-table th { vertical-align: middle; }
.expense-table-wrap .dataTables_wrapper .dataTables_paginate .paginate_button { border-radius: 999px !important; }
.expense-table-wrap .dataTables_wrapper .d-footer { align-items: center; row-gap: .75rem; margin-top: 1rem; }
.expense-table-wrap .dataTables_wrapper .dataTables_info { color: var(--bs-secondary-color); font-size: .84rem; padding-top: .35rem; }
.expense-table-wrap .dataTables_wrapper .dataTables_paginate { padding-top: 0; }
.expense-table-wrap table.dataTable thead th,
.expense-table-wrap table.dataTable tbody td,
.expense-table-wrap table thead th,
.expense-table-wrap table tbody td { border-color: rgba(0,0,0,.06); }
.asset-table-empty { text-align: center; padding: 2rem 1rem !important; color: var(--bs-secondary-color); }
.asset-table-section { margin-bottom: 1.5rem; }
.asset-table-section__head { display: flex; align-items: center; justify-content: space-between; gap: .75rem; flex-wrap: wrap; margin-bottom: .75rem; }
.asset-tabs-shell { border: 1px solid rgba(0,0,0,.08); border-radius: 1rem; padding: .55rem; background: rgba(13,110,253,.035); margin-bottom: 1rem; }
.asset-tabs { gap: .4rem; }
.asset-tabs .nav-link { border-radius: 999px; color: var(--bs-secondary-color); font-weight: 650; padding: .55rem .9rem; border: 1px solid transparent; }
.asset-tabs .nav-link:hover { border-color: rgba(13,110,253,.2); background: var(--bs-body-bg); color: var(--bs-primary); }
.asset-tabs .nav-link.active { background: var(--bs-primary); color: #fff; box-shadow: 0 8px 18px rgba(13,110,253,.18); }
.asset-tabs .badge { font-size: .68rem; vertical-align: middle; }
.asset-tabs .nav-link.active .badge { background: rgba(255,255,255,.22) !important; color: #fff !important; border-color: rgba(255,255,255,.28) !important; }
.asset-tab-content { border-top: 1px solid rgba(0,0,0,.06); padding-top: 1rem; }
.asset-action-bar { display: flex; align-items: center; justify-content: flex-end; gap: .5rem; flex-wrap: wrap; }
.asset-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.asset-detail-item { border: 1px solid rgba(0,0,0,.08); border-radius: .9rem; padding: .8rem .9rem; background: var(--bs-body-bg); }
.asset-detail-item .label { font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; color: var(--bs-secondary-color); margin-bottom: .25rem; }
.asset-detail-item .value { font-weight: 650; word-break: break-word; }
.asset-detail-grid .full-span { grid-column: 1 / -1; }
.asset-detail-summary { border: 1px solid rgba(0,0,0,.08); border-radius: 1rem; padding: 1rem; background: rgba(13,110,253,.025); }
.asset-detail-summary__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; }
.asset-detail-summary__item { border: 1px solid rgba(0,0,0,.08); border-radius: .85rem; padding: .75rem .85rem; background: var(--bs-body-bg); }
.asset-detail-summary__label { color: var(--bs-secondary-color); font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; margin-bottom: .25rem; }
.asset-detail-summary__value { font-weight: 700; word-break: break-word; }
.asset-timeline { list-style: none; margin: 0; padding: 0; }
.asset-timeline li { border-left: 2px solid rgba(13,110,253,.2); margin-left: .35rem; padding: 0 0 .85rem 1rem; position: relative; }
.asset-timeline li::before { content: ''; position: absolute; left: -.43rem; top: .2rem; width: .75rem; height: .75rem; border-radius: 50%; background: var(--bs-primary); }
.asset-history { display: grid; gap: .75rem; }
.asset-history-item { border: 1px solid rgba(0,0,0,.08); border-radius: .9rem; padding: .85rem; background: var(--bs-body-bg); position: relative; }
.asset-history-item::before { content: ''; position: absolute; left: -.1rem; top: 1rem; width: .2rem; height: calc(100% - 2rem); border-radius: 999px; background: rgba(13,110,253,.35); }
.asset-history-item__meta { color: var(--bs-secondary-color); font-size: .78rem; }
.asset-history-item__note { color: var(--bs-body-color); font-size: .88rem; }
.asset-dropzone { border: 1px dashed rgba(13,110,253,.45); border-radius: 1rem; padding: 1rem; background: rgba(13,110,253,.03); }
.asset-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem; }
.asset-form-grid .full-span { grid-column: 1 / -1; }
.asset-side-form { border: 1px solid rgba(0,0,0,.08); border-radius: 1rem; padding: 1rem; background: rgba(13,110,253,.025); }
.asset-toggle-filter { border: 1px solid rgba(0,0,0,.08); border-radius: .85rem; min-height: 58px; display: flex; align-items: center; gap: .6rem; padding: .75rem .9rem; background: var(--bs-body-bg); }
.asset-form-note { border: 1px dashed rgba(13,110,253,.28); border-radius: .85rem; padding: .75rem .9rem; background: rgba(13,110,253,.04); color: var(--bs-secondary-color); font-size: .86rem; }
.asset-lookup-hint { color: var(--bs-secondary-color); font-size: .78rem; }
.asset-action-groups { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; margin: 1rem 0; }
.asset-action-groups--compact { grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; }
.asset-action-group { border: 1px solid rgba(0,0,0,.08); border-radius: .9rem; padding: .85rem; background: var(--bs-body-bg); }
.asset-action-group__title { color: var(--bs-secondary-color); font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; font-weight: 700; margin-bottom: .65rem; }
.asset-action-group__buttons { display: flex; flex-wrap: wrap; gap: .5rem; }
.actions-cell { display: inline-flex; align-items: center; justify-content: flex-end; gap: .4rem; flex-wrap: wrap; }
.asset-page-status { min-height: 1.25rem; }
.asset-detail-tabs .nav-link { border-radius: 999px; }
@media (max-width: 767.98px) {
  .asset-detail-grid, .asset-form-grid, .asset-detail-summary__grid, .asset-action-groups, .asset-action-groups--compact, .quick-metrics { grid-template-columns: 1fr; }
  .asset-tabs-shell { overflow-x: auto; }
  .asset-tabs { flex-wrap: nowrap; min-width: max-content; }
  .asset-action-bar { justify-content: stretch; }
  .asset-action-bar .btn { width: 100%; }
}
@media (min-width: 768px) and (max-width: 1199.98px) {
  .asset-detail-summary__grid, .asset-action-groups { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.asset-help-panel { display: flex; align-items: center; justify-content: space-between; gap: .85rem; border: 1px solid rgba(13,110,253,.14); background: linear-gradient(135deg, rgba(13,110,253,.06), rgba(25,135,84,.04)); padding: .85rem 1rem; }
.asset-help-panel__content { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem .7rem; color: var(--bs-body-color); }
.asset-help-panel__content > span:last-child { color: var(--bs-secondary-color); font-size: .86rem; }
.asset-help-panel__eyebrow { color: var(--bs-primary); font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; font-weight: 800; }
.asset-help-panel__link { display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgba(13,110,253,.22); border-radius: 999px; padding: .35rem .75rem; text-decoration: none; font-size: .82rem; font-weight: 700; background: var(--bs-body-bg); white-space: nowrap; }
.asset-empty-state { display: flex; align-items: center; justify-content: center; gap: .9rem; padding: 1.15rem; color: var(--bs-body-color); }
.asset-empty-state__icon { width: 2.5rem; height: 2.5rem; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; background: rgba(13,110,253,.08); color: var(--bs-primary); font-weight: 800; font-size: 1.1rem; flex: 0 0 auto; }
.asset-empty-state__body { max-width: 620px; text-align: left; }
.asset-empty-state__title { font-weight: 800; margin-bottom: .2rem; }
.asset-empty-state__description { color: var(--bs-secondary-color); font-size: .88rem; }
.asset-empty-state__actions { margin-top: .7rem; }
.asset-toast-region { position: fixed; right: 1rem; bottom: 1rem; z-index: 1090; display: grid; gap: .65rem; width: min(360px, calc(100vw - 2rem)); }
.asset-toast { border: 1px solid rgba(0,0,0,.08); border-radius: .9rem; padding: .8rem .9rem; box-shadow: 0 18px 44px rgba(15,23,42,.16); background: var(--bs-body-bg); }
.asset-toast--success { border-left: .25rem solid var(--bs-success); }
.asset-toast--error { border-left: .25rem solid var(--bs-danger); }
.asset-toast__title { font-weight: 800; margin-bottom: .2rem; }
.asset-toast__message { color: var(--bs-secondary-color); font-size: .88rem; }
@media (max-width: 767.98px) {
  .asset-help-panel { align-items: stretch; flex-direction: column; }
  .asset-help-panel__link { width: 100%; }
  .asset-empty-state { flex-direction: column; text-align: center; }
  .asset-empty-state__body { text-align: center; }
}
.asset-onboarding-panel { border: 1px solid rgba(13,110,253,.16); background: linear-gradient(135deg, rgba(13,110,253,.07), rgba(255,193,7,.05)); padding: 1rem; }
.asset-onboarding-panel__head { display: flex; align-items: flex-start; justify-content: space-between; gap: .75rem; margin-bottom: .85rem; }
.asset-onboarding-panel__eyebrow { color: var(--bs-primary); font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; font-weight: 800; }
.asset-onboarding-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; }
.asset-onboarding-step { border: 1px solid rgba(0,0,0,.08); border-radius: .95rem; padding: .8rem; background: var(--bs-body-bg); color: var(--bs-body-color); text-decoration: none; text-align: left; display: grid; gap: .25rem; min-height: 100%; }
.asset-onboarding-step:hover { border-color: rgba(13,110,253,.24); color: var(--bs-primary); }
.asset-onboarding-step__index { width: 1.65rem; height: 1.65rem; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; background: rgba(13,110,253,.08); color: var(--bs-primary); font-weight: 800; }
.asset-onboarding-step small { color: var(--bs-secondary-color); line-height: 1.35; }
.asset-create-wizard { border: 1px solid rgba(13,110,253,.14); border-radius: 1rem; padding: .85rem; background: rgba(13,110,253,.035); }
.asset-create-wizard__steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .55rem; }
.asset-wizard-step { border: 1px solid rgba(0,0,0,.08); border-radius: .85rem; padding: .65rem .7rem; background: var(--bs-body-bg); color: var(--bs-body-color); text-align: left; display: grid; gap: .15rem; }
.asset-wizard-step span { width: 1.45rem; height: 1.45rem; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; background: rgba(108,117,125,.12); color: var(--bs-secondary-color); font-size: .78rem; font-weight: 800; }
.asset-wizard-step strong { font-size: .86rem; }
.asset-wizard-step small { color: var(--bs-secondary-color); font-size: .72rem; }
.asset-wizard-step.is-active { border-color: rgba(13,110,253,.32); box-shadow: 0 8px 24px rgba(13,110,253,.10); }
.asset-wizard-step.is-active span { background: var(--bs-primary); color: #fff; }
.asset-wizard-step.is-complete span { background: rgba(25,135,84,.13); color: var(--bs-success); }
.asset-create-wizard__progress { margin-top: .7rem; color: var(--bs-secondary-color); font-size: .82rem; font-weight: 700; }
@media (max-width: 991.98px) {
  .asset-onboarding-steps, .asset-create-wizard__steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575.98px) {
  .asset-onboarding-panel__head { flex-direction: column; }
  .asset-onboarding-panel__head .btn { width: 100%; }
  .asset-onboarding-steps, .asset-create-wizard__steps { grid-template-columns: 1fr; }
}
.asset-help-panel__actions { display: inline-flex; align-items: center; justify-content: flex-end; gap: .5rem; flex-wrap: wrap; }
.asset-help-panel__link { cursor: pointer; }
.asset-help-panel__link--subtle { color: var(--bs-secondary-color); border-color: rgba(108,117,125,.20); }
.asset-help-drawer[hidden] { display: none !important; }
.asset-help-drawer { position: fixed; inset: 0; z-index: 1100; display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, 440px); pointer-events: none; }
.asset-help-drawer.is-open { pointer-events: auto; }
.asset-help-drawer__backdrop { grid-column: 1 / -1; grid-row: 1; background: rgba(15,23,42,.36); }
.asset-help-drawer__panel { grid-column: 2; grid-row: 1; width: min(440px, 100vw); height: 100%; overflow-y: auto; background: var(--bs-body-bg); box-shadow: -18px 0 48px rgba(15,23,42,.18); padding: 1rem; outline: none; }
.asset-help-drawer__header { display: flex; align-items: flex-start; justify-content: space-between; gap: .85rem; border-bottom: 1px solid rgba(0,0,0,.08); padding-bottom: .9rem; margin-bottom: .9rem; }
.asset-help-drawer__eyebrow { color: var(--bs-primary); font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; font-weight: 800; }
.asset-help-drawer__body { display: grid; gap: .85rem; }
.asset-help-checklist { border: 1px solid rgba(0,0,0,.08); border-radius: .95rem; padding: .9rem; background: rgba(13,110,253,.025); }
.asset-help-checklist h6 { margin-bottom: .6rem; font-weight: 800; }
.asset-help-checklist ul { margin: 0; padding-left: 1.15rem; display: grid; gap: .35rem; color: var(--bs-secondary-color); font-size: .88rem; }
.asset-help-drawer__footer { margin-top: .9rem; border-top: 1px solid rgba(0,0,0,.08); padding-top: .8rem; color: var(--bs-secondary-color); font-size: .82rem; }
.asset-help-drawer-open { overflow: hidden; }
.asset-help-panel__link:focus-visible,
.asset-onboarding-step:focus-visible,
.asset-wizard-step:focus-visible,
.asset-help-drawer button:focus-visible,
.asset-help-drawer a:focus-visible { outline: 3px solid rgba(13,110,253,.35); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {
  .asset-toast,
  .asset-help-drawer__panel,
  .asset-onboarding-step,
  .asset-wizard-step { transition: none !important; }
}
@media (max-width: 575.98px) {
  .asset-help-panel__actions { width: 100%; }
  .asset-help-panel__actions .asset-help-panel__link { flex: 1 1 100%; }
  .asset-help-drawer { grid-template-columns: 1fr; }
  .asset-help-drawer__panel { grid-column: 1; width: 100vw; }
  .asset-help-drawer__header { flex-direction: column; }
  .asset-help-drawer__header .btn { width: 100%; }
}

/* Asset Phase 7 Part 4 - UX stabilization */
.asset-skip-link { position: fixed; top: .75rem; left: .75rem; z-index: 1200; transform: translateY(-160%); transition: transform .15s ease; background: var(--bs-body-bg); color: var(--bs-primary); border: 1px solid rgba(13,110,253,.25); border-radius: 999px; padding: .45rem .8rem; font-weight: 800; text-decoration: none; box-shadow: 0 10px 28px rgba(15,23,42,.12); }
.asset-skip-link:focus { transform: translateY(0); outline: 3px solid rgba(13,110,253,.35); outline-offset: 2px; }
.asset-network-status[hidden] { display: none !important; }
.asset-network-status { position: sticky; top: 0; z-index: 1090; padding: .55rem .85rem; text-align: center; background: rgba(255,193,7,.18); border-bottom: 1px solid rgba(255,193,7,.35); color: #664d03; font-size: .86rem; font-weight: 700; }
.asset-validation-summary { border: 1px solid rgba(220,53,69,.22); border-radius: .9rem; background: rgba(220,53,69,.055); padding: .75rem .85rem; }
.asset-validation-summary ul { margin: .4rem 0 0; padding-left: 1.1rem; display: grid; gap: .25rem; }
.asset-validation-summary a { color: var(--bs-danger); font-weight: 700; text-decoration: underline; text-underline-offset: .18rem; cursor: pointer; }
.asset-dirty-indicator { width: fit-content; margin-top: .35rem; }
form[data-asset-unsaved-guard][data-asset-dirty="true"] .form-control.is-invalid,
form[data-asset-unsaved-guard][data-asset-dirty="true"] .form-select.is-invalid { scroll-margin-top: 6rem; }
@media (prefers-reduced-motion: reduce) {
  .asset-skip-link { transition: none !important; }
}


/* Asset Phase 7 Part 5 - accessibility closure */
.asset-help-drawer[data-asset-focus-trap="active"] .asset-help-drawer__panel { scroll-behavior: smooth; }
.asset-help-drawer[data-asset-focus-trap="active"] .asset-help-drawer__panel:focus { outline: 3px solid rgba(13,110,253,.28); outline-offset: -3px; }
.asset-help-drawer__backdrop { cursor: pointer; }
.asset-help-panel__link[aria-keyshortcuts]::after { content: "F1"; display: inline-flex; align-items: center; justify-content: center; margin-left: .45rem; min-width: 1.45rem; min-height: 1.1rem; border-radius: .35rem; border: 1px solid rgba(13,110,253,.22); color: var(--bs-secondary-color); font-size: .68rem; font-weight: 800; line-height: 1; }
@media (forced-colors: active) {
  .asset-help-panel,
  .asset-help-drawer__panel,
  .asset-empty-state,
  .asset-validation-summary,
  .asset-skip-link { border: 1px solid CanvasText; box-shadow: none; }
  .asset-help-panel__link:focus-visible,
  .asset-onboarding-step:focus-visible,
  .asset-wizard-step:focus-visible,
  .asset-help-drawer button:focus-visible,
  .asset-help-drawer a:focus-visible,
  .asset-skip-link:focus { outline: 2px solid Highlight; }
}

/* Asset Phase 8 Part 1 - Bulk Import UX Foundation */
.asset-import-dropzone {
  display: flex;
  gap: 18px;
  align-items: center;
  padding: 22px;
  border: 1px dashed rgba(59, 130, 246, 0.45);
  border-radius: 22px;
  background: rgba(59, 130, 246, 0.04);
  transition: border-color .18s ease, background-color .18s ease, transform .18s ease;
}

.asset-import-dropzone.is-dragover {
  border-color: rgba(37, 99, 235, 0.95);
  background: rgba(37, 99, 235, 0.09);
  transform: translateY(-1px);
}

.asset-import-dropzone__icon {
  flex: 0 0 auto;
  width: 64px;
  height: 64px;
  border-radius: 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  letter-spacing: .05em;
  color: #1d4ed8;
  background: rgba(59, 130, 246, 0.12);
  border: 1px solid rgba(59, 130, 246, 0.24);
}

.asset-import-column-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
}

.asset-import-column-card {
  min-height: 132px;
  padding: 14px;
  border: 1px solid rgba(148, 163, 184, 0.28);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.72);
}

.asset-import-column-card code {
  display: inline-block;
  margin: 8px 0;
  padding: 3px 7px;
  border-radius: 9px;
  color: #334155;
  background: rgba(15, 23, 42, 0.06);
}

.asset-import-checklist {
  display: grid;
  gap: 10px;
}

.asset-import-check {
  display: flex;
  gap: 10px;
  align-items: center;
  padding: 10px 12px;
  border: 1px solid rgba(148, 163, 184, 0.25);
  border-radius: 14px;
  background: rgba(248, 250, 252, 0.75);
}

.asset-import-check span {
  width: 24px;
  height: 24px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  background: rgba(148, 163, 184, 0.18);
}

.asset-import-check.is-ok span {
  color: #047857;
  background: rgba(16, 185, 129, 0.14);
}

.asset-import-check.is-error span {
  color: #b91c1c;
  background: rgba(239, 68, 68, 0.14);
}

.asset-import-check.is-pending span {
  color: #64748b;
}

.asset-import-preview-table td {
  vertical-align: middle;
}

@media (max-width: 767.98px) {
  .asset-import-dropzone {
    align-items: flex-start;
    flex-direction: column;
  }

  .asset-import-dropzone__icon {
    width: 52px;
    height: 52px;
    border-radius: 16px;
  }
}
