/* Shared list UI (filters + expand details) */

.list-filters{
  background-color: var(--bs-body-bg);
  border: 1px solid var(--bs-border-color-translucent);
  border-radius: .75rem;
  padding: .75rem;
}

.list-filters .form-control,
.list-filters .form-select { min-width: 0; }

.list-filters .form-label{
  font-size: .75rem;
  margin-bottom: .25rem;
}

.list-filters .btn { white-space: nowrap; }

.collapse-toggle{ width: 30px; height: 30px; padding: 0; line-height: 1; }
.collapse-toggle::before{ content: "▸"; }
.collapse-toggle:not(.collapsed)::before{ content: "▾"; }

tr.row-expanded > td{ background-color: var(--bs-tertiary-bg); }

/* When navigating to an accrual line anchor (#line-...), highlight the row */
tr[id^="line-"]:target > td{
  background-color: var(--bs-warning-bg-subtle);
}
tr[id^="line-"]:target{
  outline: 2px solid var(--bs-warning-border-subtle);
  outline-offset: -2px;
}

.list-details-card{ border-radius: .75rem; }
.list-details-card .meta{ color: var(--bs-secondary-color); }

.table thead a{ color: inherit; }
.table thead a:hover{ text-decoration: underline; }

.badge-soft{
  background-color: var(--bs-tertiary-bg);
  color: var(--bs-body-color);
  border: 1px solid var(--bs-border-color-translucent);
}

/* Mobile / responsive tweaks */

/* Prevent iOS zoom by keeping form font size >=16px on small screens */
@media (max-width: 575.98px){
  input.form-control,
  select.form-select,
  textarea.form-control,
  input.form-control-sm,
  select.form-select-sm,
  textarea.form-control-sm{
    font-size: 16px;
  }
}

@media (max-width: 991.98px){
  /* Slightly tighter page padding */
  .app-content .container-fluid{ padding-left: .75rem; padding-right: .75rem; }

  /* Make card headers/actions wrap nicely */
  .card-header .d-flex{ flex-wrap: wrap; }

  /* Tables: slightly smaller text and better button spacing */
  .table{ font-size: .9rem; }
  .table .btn.btn-sm{ padding: .25rem .5rem; }

  /* Filter bars: avoid overflow */
  .list-filters{ padding: .75rem; }
}

/* Handy utility: full width on mobile, auto on md+ */
.w-100-mobile{ width: 100%; }
@media (min-width: 768px){
  .w-100-mobile{ width: auto; }
}

/* Fix AdminLTE sidebar colors when using data-bs-theme="dark"
   (Mobile sidebar opened: some items were rendering with light/white backgrounds) */
.app-sidebar[data-bs-theme="dark"]{
  /* Make sure the sidebar itself stays in dark palette */
  background-color: var(--bs-dark-bg-subtle) !important;

  /* Override AdminLTE sidebar variables (AdminLTE defaults are tuned for light sidebar) */
  --lte-sidebar-color: rgba(255,255,255,.85);
  --lte-sidebar-hover-color: #fff;
  --lte-sidebar-active-color: #fff;

  --lte-sidebar-hover-bg: rgba(255,255,255,.08);
  --lte-sidebar-menu-active-bg: rgba(255,255,255,.12);
  --lte-sidebar-menu-active-color: #fff;

  --lte-sidebar-submenu-bg: transparent;
  --lte-sidebar-submenu-color: rgba(255,255,255,.75);
  --lte-sidebar-submenu-hover-color: #fff;
  --lte-sidebar-submenu-hover-bg: rgba(255,255,255,.08);
  --lte-sidebar-submenu-active-color: #fff;
  --lte-sidebar-submenu-active-bg: rgba(255,255,255,.12);

  --lte-sidebar-header-color: rgba(255,255,255,.55);
}

.app-sidebar[data-bs-theme="dark"] .sidebar-wrapper{ background-color: inherit; }

.app-sidebar[data-bs-theme="dark"] .sidebar-wrapper .sidebar-menu > .nav-item > .nav-link{
  background-color: transparent;
}

.app-sidebar[data-bs-theme="dark"] .sidebar-wrapper .sidebar-menu > .nav-item > .nav-link.active{
  background-color: var(--lte-sidebar-menu-active-bg);
}


/* Sidebar usability (mobile): allow scrolling to bottom, nicer spacing */
.app-sidebar{
  display: flex;
  flex-direction: column;
  height: 100dvh;
  height: 100vh;
}

.app-sidebar .sidebar-brand{ flex: 0 0 auto; }

.app-sidebar .sidebar-wrapper{
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.app-sidebar .sidebar-wrapper > nav{
  flex: 1 1 auto;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  padding-bottom: env(safe-area-inset-bottom);
}

/* Make menu items easier to tap on mobile */
.app-sidebar .sidebar-menu .nav-link{
  border-radius: .6rem;
  margin: .125rem .5rem;
  padding: .55rem .75rem;
  display: flex;
  align-items: center;
  gap: .5rem;
}

.app-sidebar .sidebar-menu .nav-link p{
  margin: 0;
  flex: 1 1 auto;
}

.app-sidebar .sidebar-menu .nav-icon{
  width: 1.5rem;
  text-align: center;
  display: inline-flex;
  justify-content: center;
}

.app-sidebar .sidebar-footer{
  background-color: inherit;
}


/* Polished page layout helpers */
.ay-page-header{
  display:flex;
  flex-direction:column;
  gap:1rem;
  margin-bottom:.8rem;
}
@media (min-width: 992px){
  .ay-page-header{
    flex-direction:row;
    align-items:flex-start;
    justify-content:space-between;
  }
}
.ay-page-intro{ min-width:0; }
.ay-page-kicker{
  color: var(--bs-secondary-color);
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .02em;
  text-transform: uppercase;
  margin-bottom: .25rem;
}
.ay-page-title{
  font-size: clamp(1.15rem, 1rem + .5vw, 1.55rem);
  font-weight: 700;
  line-height: 1.2;
  margin: 0;
}
.ay-page-subtitle{
  color: var(--bs-secondary-color);
  font-size: .92rem;
  margin-top: .25rem;
  max-width: 62rem;
}
.ay-page-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
}
.ay-page-actions .btn{
  border-radius: .8rem;
  min-height: 2.5rem;
}
.ay-surface-card{
  border-radius: 1rem;
  overflow:hidden;
  box-shadow: 0 .35rem 1.25rem rgba(0,0,0,.05);
}
.ay-surface-card .card-header{
  padding: 1rem 1.1rem;
}
.ay-summary-card{
  border-radius: 1rem;
  box-shadow: 0 .2rem .9rem rgba(0,0,0,.04);
}
.ay-summary-card .display-6,
.ay-summary-card .summary-value{
  letter-spacing: -.02em;
}
.ay-panel-toggle{
  position: relative;
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:1rem;
  width:100%;
  text-align:left;
  border:0;
  background:transparent;
  color:inherit;
  padding:0;
  cursor:pointer;
}
.card-header.ay-panel-toggle,
.card-header .ay-panel-toggle{
  transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.card-header.ay-panel-toggle:hover,
.card-header .ay-panel-toggle:hover{
  color: inherit;
}
.ay-panel-toggle > div:first-child > .small.text-muted,
.ay-panel-toggle > div:first-child > .text-muted.small,
.ay-panel-toggle > div:first-child > .list-help,
.ay-panel-toggle > div:first-child > .small.mt-1{
  display:none;
}
.ay-panel-toggle[aria-expanded='true'] > div:first-child > .small.text-muted,
.ay-panel-toggle[aria-expanded='true'] > div:first-child > .text-muted.small,
.ay-panel-toggle[aria-expanded='true'] > div:first-child > .list-help,
.ay-panel-toggle[aria-expanded='true'] > div:first-child > .small.mt-1{
  display:block;
}
.ay-panel-toggle .ay-panel-summary{
  transition: background-color .18s ease, border-color .18s ease, color .18s ease;
}
.ay-panel-toggle:hover .ay-panel-summary,
.ay-panel-toggle[aria-expanded='true'] .ay-panel-summary{
  background: var(--bs-primary-bg-subtle);
  border-color: var(--bs-primary-border-subtle);
  color: var(--bs-primary-text-emphasis);
}
.ay-panel-toggle::after{
  content:'›';
  font-size: 1.2rem;
  line-height: 1;
  color: var(--bs-secondary-color);
  transition: transform .2s ease;
  margin-top: .1rem;
}
.ay-panel-toggle[aria-expanded='true']::after{
  transform: rotate(90deg);
}
.ay-panel-heading{
  min-width:0;
}
.ay-panel-title{
  font-weight: 700;
}
.ay-panel-subtitle{
  color: var(--bs-secondary-color);
  font-size: .85rem;
  margin-top: .2rem;
}
.ay-panel-description{
  display:none;
}
.ay-panel-toggle[aria-expanded='true'] .ay-panel-description{
  display:block;
}
.ay-panel-kind{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:1.55rem;
  padding:.12rem .55rem;
  border-radius:999px;
  font-size:.7rem;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  border:1px solid transparent;
}
.ay-panel-kind-view{
  background:var(--bs-info-bg-subtle);
  border-color:var(--bs-info-border-subtle);
  color:var(--bs-info-text-emphasis);
}
.ay-panel-kind-filter{
  background:var(--bs-warning-bg-subtle);
  border-color:var(--bs-warning-border-subtle);
  color:var(--bs-warning-text-emphasis);
}
.ay-panel-kind-create{
  background:var(--bs-success-bg-subtle);
  border-color:var(--bs-success-border-subtle);
  color:var(--bs-success-text-emphasis);
}
.ay-panel-meta-inline{
  display:flex;
  align-items:center;
  gap:.55rem;
  flex-wrap:wrap;
}
.ay-panel-meta-inline .ay-panel-title{
  margin:0;
}
.ay-panel-status{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.5rem;
  justify-content:flex-end;
}
.ay-toolbar-card{
  border: 1px solid var(--bs-border-color-translucent);
  border-radius: 1rem;
  background: var(--bs-tertiary-bg);
  box-shadow: 0 .15rem .7rem rgba(0,0,0,.03);
}

.ay-detail-card{
  border:1px solid var(--bs-border-color-translucent);
  border-radius:1rem;
  box-shadow:0 .2rem .9rem rgba(0,0,0,.04);
}
.ay-detail-card .card-header{
  border:0;
  background:transparent;
  padding:1rem 1rem 0;
}
.ay-detail-card .card-body{
  padding:1rem;
}
.ay-detail-card-title{
  font-size:1rem;
  font-weight:700;
  letter-spacing:-.01em;
}
.ay-detail-meta-list{
  display:grid;
  grid-template-columns: 8rem 1fr;
  gap:.55rem .85rem;
  font-size:.92rem;
}
.ay-detail-meta-list dt{
  margin:0;
  color:var(--bs-secondary-color);
  font-weight:500;
}
.ay-detail-meta-list dd{
  margin:0;
}
.ay-detail-inline-note{
  color:var(--bs-secondary-color);
  font-size:.84rem;
}
.ay-data-table{
  margin-bottom:0;
}
.ay-data-table tbody td,
.ay-data-table tbody th{
  vertical-align:middle;
}
.ay-data-table thead th{
  font-size:.79rem;
  color:var(--bs-secondary-color);
  font-weight:600;
  letter-spacing:.02em;
  text-transform:uppercase;
}
.ay-data-table .badge{
  font-weight:600;
}
@media (max-width: 767.98px){
  .ay-detail-meta-list{
    grid-template-columns:1fr;
    gap:.35rem;
  }
}
.ay-empty-state{
  border: 1px dashed var(--bs-border-color);
  border-radius: 1rem;
  padding: 1rem;
  color: var(--bs-secondary-color);
  background: var(--bs-tertiary-bg);
}
.ay-inline-badges{
  display:flex;
  flex-wrap:wrap;
  gap:.45rem;
}
.ay-form-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  align-items:center;
}
@media (max-width: 767.98px){
  .ay-page-actions,
  .ay-form-actions{ width:100%; }
  .ay-page-actions .btn,
  .ay-form-actions .btn{ width:100%; }
}


/* Micro UX polish */
.ay-page-actions .btn,
.page-actions .btn{
  font-weight: 600;
  letter-spacing: -.01em;
}
.ay-page-actions .btn-outline-secondary,
.page-actions .btn-outline-secondary{
  border-color: color-mix(in srgb, var(--bs-border-color) 78%, transparent);
  background: var(--bs-body-bg);
}
.ay-page-actions .btn-outline-primary,
.page-actions .btn-outline-primary,
.btn-outline-primary.ay-soft-primary{
  background: var(--bs-primary-bg-subtle);
  border-color: var(--bs-primary-border-subtle);
  color: var(--bs-primary-text-emphasis);
}
.ay-page-actions .btn-outline-primary:hover,
.page-actions .btn-outline-primary:hover,
.btn-outline-primary.ay-soft-primary:hover{
  background: var(--bs-primary);
  border-color: var(--bs-primary);
  color: #fff;
}
.ay-page-actions .btn-outline-secondary:hover,
.page-actions .btn-outline-secondary:hover{
  background: var(--bs-tertiary-bg);
}
.ay-toolbar-card,
.list-toolbar{
  border-radius: 1rem;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.35);
}
.ay-panel-summary{
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .3rem .65rem;
  border-radius: 999px;
  background: var(--bs-tertiary-bg);
  color: var(--bs-secondary-color);
  font-size: .78rem;
  border: 1px solid var(--bs-border-color-translucent);
}
.ay-panel-summary strong{
  color: var(--bs-body-color);
}
.ay-panel-action-link{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  font-size:.8rem;
  font-weight:600;
  color:var(--bs-primary);
}
.ay-panel-action-link::before{
  content:'Göster';
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.28rem .6rem;
  border-radius:999px;
  border:1px solid var(--bs-primary-border-subtle);
  background:var(--bs-primary-bg-subtle);
  color:var(--bs-primary-text-emphasis);
}
.ay-panel-toggle[aria-expanded='true'] .ay-panel-action-link::before{
  content:'Gizle';
  background:var(--bs-tertiary-bg);
  border-color:var(--bs-border-color-translucent);
  color:var(--bs-body-color);
}
.ay-filter-chip,
.filter-chip{
  padding: .35rem .7rem;
  border-radius: 999px;
  background: var(--bs-tertiary-bg);
  border: 1px solid var(--bs-border-color-translucent);
}
.ay-data-table{
  --bs-table-bg: transparent;
}
.ay-data-table > :not(caption) > * > *{
  padding-top: .78rem;
  padding-bottom: .78rem;
  vertical-align: middle;
}
.ay-data-table thead th{
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .03em;
  color: var(--bs-secondary-color);
  font-weight: 700;
  white-space: nowrap;
}
.ay-data-table tbody tr:hover > *{
  background: color-mix(in srgb, var(--bs-primary-bg-subtle) 42%, transparent);
}
.ay-table-actions{
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  justify-content: flex-end;
}
.ay-table-actions .btn{
  border-radius: .75rem;
}
.badge.badge-soft{
  font-weight: 500;
}
.alert.alert-danger,
.alert.alert-warning,
.alert.alert-info{
  border-radius: 1rem;
}
.alert .fw-semibold{
  letter-spacing: -.01em;
}
.ay-empty-state{
  border: 1px dashed var(--bs-border-color);
  border-radius: 1rem;
  background: var(--bs-tertiary-bg);
  color: var(--bs-secondary-color);
  padding: 1rem 1.1rem;
}
.ay-form-actions{
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}
.ay-form-actions .btn{
  min-height: 2.35rem;
  border-radius: .8rem;
}
@media (max-width: 991.98px){
  .ay-page-actions,
  .page-actions{
    width: 100%;
  }
  .ay-page-actions .btn,
  .page-actions .btn{
    flex: 1 1 auto;
  }
}
@media (max-width: 767.98px){
  .ay-page-header{
    gap: .85rem;
    margin-bottom: .85rem;
  }
  .ay-page-title{
    font-size: 1.18rem;
  }
  .ay-page-subtitle{
    font-size: .88rem;
  }
  .ay-data-table > :not(caption) > * > *{
    padding-top: .65rem;
    padding-bottom: .65rem;
  }
  .ay-table-actions,
  .actions-inline{
    justify-content: stretch;
  }
  .ay-table-actions .btn,
  .actions-inline .btn,
  .ay-form-actions .btn{
    width: 100%;
  }
  .table-responsive-md{
    margin-left: -.25rem;
    margin-right: -.25rem;
  }
}


/* Fine-grained detail / modal helpers */
.ay-status-line{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.5rem;
}
.ay-meta-inline{
  display:flex;
  flex-wrap:wrap;
  gap:.45rem;
  color:var(--bs-secondary-color);
  font-size:.82rem;
}
.ay-meta-inline span + span::before{
  content:'·';
  margin-right:.45rem;
  color:var(--bs-border-color);
}
.ay-detail-section + .ay-detail-section{
  margin-top:1rem;
  padding-top:1rem;
  border-top:1px solid var(--bs-border-color-translucent);
}
.ay-detail-section-title{
  color:var(--bs-secondary-color);
  font-size:.8rem;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.04em;
  margin-bottom:.4rem;
}
.ay-detail-text{
  white-space:pre-wrap;
  line-height:1.5;
}
.ay-detail-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:.85rem 1rem;
}
.ay-detail-grid .meta-label{
  color:var(--bs-secondary-color);
  margin-bottom:.15rem;
}
.ay-detail-grid .meta-value{
  font-weight:600;
}
.ay-modal-stack{
  display:flex;
  flex-direction:column;
  gap:1rem;
}
.ay-modal-note{
  border:1px solid var(--bs-border-color-translucent);
  border-radius:.9rem;
  background:var(--bs-tertiary-bg);
  padding:.85rem 1rem;
  color:var(--bs-secondary-color);
  font-size:.88rem;
}
.ay-modal-actions{
  width:100%;
  justify-content:space-between;
}
@media (max-width: 767.98px){
  .ay-detail-grid{ grid-template-columns:1fr; }
  .ay-modal-actions{ flex-direction:column-reverse; }
  .ay-modal-actions .btn{ width:100%; }
}


.ay-detail-page-header{
  display:flex;
  flex-direction:column;
  gap:1rem;
  margin-bottom:1rem;
}
.ay-detail-page-header .eyebrow,
.ay-detail-page-header .ay-page-eyebrow{
  color:var(--bs-secondary-color);
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.ay-detail-page-meta{
  display:flex;
  flex-wrap:wrap;
  gap:.45rem;
  color:var(--bs-secondary-color);
  font-size:.88rem;
}
.ay-detail-page-meta > span + span::before{
  content:'·';
  margin-right:.45rem;
  color:var(--bs-border-color);
}
.ay-kpi-card{
  border:1px solid var(--bs-border-color-translucent);
  border-radius:1rem;
  background:var(--bs-body-bg);
  padding:1rem;
  height:100%;
  box-shadow:0 .2rem .9rem rgba(0,0,0,.04);
}
.ay-kpi-label{
  color:var(--bs-secondary-color);
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.04em;
  text-transform:uppercase;
  margin-bottom:.35rem;
}
.ay-kpi-value{
  font-size:1.1rem;
  font-weight:700;
  letter-spacing:-.02em;
}
.ay-kpi-note{
  color:var(--bs-secondary-color);
  font-size:.84rem;
  margin-top:.3rem;
}
.ay-empty-state{
  border:1px dashed var(--bs-border-color-translucent);
  border-radius:1rem;
  background:var(--bs-tertiary-bg);
  color:var(--bs-secondary-color);
  padding:1rem;
  font-size:.92rem;
}
@media (min-width: 992px){
  .ay-detail-page-header{
    flex-direction:row;
    justify-content:space-between;
    align-items:flex-start;
  }
}


/* Form / table consistency helpers */
.ay-form-label{
  font-size:.82rem;
  font-weight:600;
  margin-bottom:.35rem;
  color:var(--bs-body-color);
}
.ay-form-hint{
  color:var(--bs-secondary-color);
  font-size:.8rem;
  margin-top:.32rem;
  line-height:1.4;
}
.ay-form-note{
  border:1px solid var(--bs-border-color-translucent);
  border-radius:.9rem;
  background:var(--bs-tertiary-bg);
  padding:.85rem 1rem;
  color:var(--bs-secondary-color);
  font-size:.88rem;
}

.ay-form-intro{
  color:var(--bs-secondary-color);
  font-size:.86rem;
  margin-bottom:.85rem;
}
.ay-switch-list{
  display:grid;
  gap:.75rem;
}
.ay-switch-card{
  border:1px solid var(--bs-border-color-translucent);
  border-radius:1rem;
  background:var(--bs-tertiary-bg);
  padding:.85rem 1rem;
}
.ay-switch-card .form-check{
  margin-bottom:0;
}
.ay-switch-card .form-check-label{
  font-weight:600;
}
.ay-switch-card .ay-form-hint{
  margin-left:1.7rem;
}
.ay-form-section-title{
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--bs-secondary-color);
  margin-bottom:.5rem;
}
.ay-modal-note{
  color:var(--bs-secondary-color);
  font-size:.86rem;
  margin-top:.5rem;
}
@media (max-width: 767.98px){
  .ay-switch-card{
    padding:.75rem .85rem;
  }
  .ay-switch-card .ay-form-hint{
    margin-left:1.55rem;
  }
  .ay-form-intro{
    margin-bottom:.7rem;
  }
}
.ay-data-table .ay-col-date{ width: 9.5rem; }
.ay-data-table .ay-col-amount{ width: 10rem; }
.ay-data-table .ay-col-actions{ width: 1%; white-space: nowrap; }
.ay-data-table td.ay-col-actions,
.ay-data-table th.ay-col-actions{ text-align:right; }
.ay-table-actions{ min-width: 8rem; }
.modal-title{ font-weight:700; letter-spacing:-.01em; }
@media (max-width: 767.98px){
  .ay-data-table .ay-col-date,
  .ay-data-table .ay-col-amount,
  .ay-data-table .ay-col-actions{ width:auto; }
  .ay-table-actions{ min-width:0; }
}


/* Filter simplification + compact list rows */
.ay-filter-form .ay-filter-quick-row{
  row-gap: .75rem;
}
.ay-filter-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
}
.ay-advanced-filters{
  border-top: 1px solid var(--bs-border-color-translucent);
  padding-top: .75rem;
}
.ay-advanced-filters > summary{
  cursor:pointer;
  list-style:none;
  font-weight:600;
  color: var(--bs-secondary-color);
  display:flex;
  align-items:center;
  gap:.45rem;
}
.ay-advanced-filters > summary::-webkit-details-marker{ display:none; }
.ay-advanced-filters > summary::before{
  content: "+";
  display:inline-flex;
  width:1.2rem;
  height:1.2rem;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background: var(--bs-tertiary-bg);
  color: var(--bs-body-color);
  font-weight:700;
}
.ay-advanced-filters[open] > summary::before{ content: "−"; }
.ay-advanced-grid{ padding-top: .75rem; }
.ay-inline-checks{
  display:flex;
  flex-wrap:wrap;
  gap:.6rem 1rem;
  align-items:center;
}
.ay-data-table-compact > :not(caption) > * > *{
  padding-top: .55rem !important;
  padding-bottom: .55rem !important;
}
.ay-data-table-compact .expense-meta,
.ay-data-table-compact .amount-meta,
.ay-data-table-compact .small,
.ay-data-table-compact .text-muted.small{
  font-size: .76rem;
  line-height: 1.25;
}
.ay-data-table-compact .badge{ font-size: .7rem; }
.ay-data-table-compact .btn.btn-sm{
  padding: .22rem .48rem;
}
.ay-data-table-compact .ay-table-actions{
  gap:.35rem;
}
@media (max-width: 991.98px){
  .ay-filter-actions{
    justify-content:flex-start !important;
  }
  .ay-advanced-filters{
    padding-top: .65rem;
  }
}


.ay-row-title{ font-weight:600; line-height:1.25; }
.ay-row-meta{ font-size:.78rem; line-height:1.3; color: var(--bs-secondary-color); }
.ay-row-meta + .ay-row-meta{ margin-top:.15rem; }
.ay-row-note{ font-size:.74rem; color: var(--bs-secondary-color); }
.ay-action-split{ display:flex; justify-content:flex-end; gap:.35rem; align-items:center; }
.ay-action-split .dropdown-toggle{ padding-left:.45rem; padding-right:.45rem; }
.ay-inline-dot{ color: var(--bs-secondary-color); margin:0 .25rem; }
.ay-data-table-compact .amount-stack .amount-meta + .amount-meta{ margin-top:.1rem; }
@media (max-width: 767.98px){
  .ay-action-split{ justify-content:flex-start; }
}


/* Round 10: leaner list density and mobile-friendly rows */
@media (max-width: 767.98px) {
  .ay-data-table-compact > :not(caption) > * > * {
    padding-top: .55rem;
    padding-bottom: .55rem;
  }
  .ay-row-title { font-size: .95rem; }
  .ay-row-meta, .ay-row-note, .amount-meta { font-size: .77rem; }
  .ay-col-actions .btn { min-width: auto; }
}

@media (max-width: 991.98px) {
  .ay-col-date { width: 1%; white-space: nowrap; }
  .ay-col-actions { width: 1%; white-space: nowrap; }
}

.receipts-table .receipt-title,
.expenses-table .expense-title {
  font-weight: 600;
}

.ay-table-actions,
.ay-action-split {
  align-items: center;
}


/* Round 11: fewer secondary links + mobile detail cards */
.ay-detail-panel-card{
  border:1px solid var(--bs-border-color-translucent);
  border-radius:1rem;
  background:var(--bs-body-bg);
}
.ay-detail-meta-list{
  display:grid;
  gap:.45rem;
}
.ay-detail-meta-item{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  padding:.45rem .6rem;
  border-radius:.75rem;
  background:var(--bs-tertiary-bg);
}
.ay-detail-meta-item .label{
  color:var(--bs-secondary-color);
  font-size:.8rem;
}
.ay-detail-meta-item .value{
  text-align:right;
  font-weight:500;
}
.ay-detail-note{
  color:var(--bs-secondary-color);
  font-size:.8rem;
}
.ay-detail-description-block{
  padding:.85rem 1rem;
  border:1px solid var(--bs-border-color);
  border-radius:.95rem;
  background:var(--bs-body-bg);
}
.ay-detail-description-label{
  color:var(--bs-secondary-color);
  font-size:.78rem;
  margin-bottom:.35rem;
}
.ay-detail-description-text{
  font-size:.95rem;
  line-height:1.55;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
}
.ay-detail-fact-card{
  height:100%;
  padding:.7rem .85rem;
  border-radius:.85rem;
  background:var(--bs-body-bg);
  border:1px solid var(--bs-border-color);
}
.ay-detail-fact-label{
  color:var(--bs-secondary-color);
  font-size:.78rem;
  margin-bottom:.2rem;
}
.ay-detail-fact-value{
  font-weight:600;
  overflow-wrap:anywhere;
}
@media (max-width: 767.98px){
  .list-details-card{
    margin:.4rem .45rem .8rem;
    border:1px solid var(--bs-border-color-translucent);
    border-radius:1rem;
    box-shadow:none !important;
  }
  .list-details-card .card-body{
    padding:.85rem !important;
  }
  .list-details-card .detail-stat{
    padding:.65rem .75rem;
  }
  .list-details-card .ay-action-split,
  .list-details-card .detail-actions{
    width:100%;
    display:grid;
    grid-template-columns:1fr;
    gap:.5rem;
  }
  .list-details-card .ay-action-split > *,
  .list-details-card .detail-actions > *{
    width:100%;
  }
  .list-details-card .dropdown,
  .list-details-card .dropdown-toggle,
  .list-details-card .btn{
    width:100%;
  }
  .ay-detail-meta-item{
    flex-direction:column;
    gap:.2rem;
  }
  .ay-detail-meta-item .value{
    text-align:left;
  }
}


.ay-flash {
  border-width: 1px;
  border-radius: 1rem;
  box-shadow: 0 0.35rem 1rem rgba(15, 23, 42, 0.06);
}
.ay-flash-title {
  font-weight: 700;
  margin-bottom: .25rem;
}
.ay-flash-success {
  border-color: rgba(25, 135, 84, 0.18);
}
.ay-flash-danger {
  border-color: rgba(220, 53, 69, 0.18);
}
.ay-flash-meta {
  margin-top: .45rem;
  color: var(--bs-secondary-color);
  font-size: .88rem;
}
.ay-flash-list {
  margin-top: .55rem;
  padding-left: 1.1rem;
  color: var(--bs-body-color);
}
.ay-flash-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  align-items: flex-start;
  margin-top: .9rem;
}
.ay-flash-undo-note {
  color: var(--bs-secondary-color);
  font-size: .76rem;
  line-height: 1.35;
}
@media (max-width: 767.98px) {
  .ay-flash-actions {
    flex-direction: column;
    align-items: stretch;
  }
  .ay-flash-actions .btn,
  .ay-flash-actions form {
    width: 100%;
  }
}
.ay-empty-state {
  background: rgba(248, 249, 250, 0.9);
  border: 1px dashed rgba(108, 117, 125, 0.24);
  border-radius: 1rem;
  color: #5c6670;
}


/* Utility screens polish */
.ay-chip-list{ display:flex; flex-wrap:wrap; gap:.5rem; }
.ay-chip{
  display:inline-flex; align-items:center; gap:.4rem;
  padding:.4rem .65rem; border-radius:999px;
  background:rgba(0,0,0,.045); color:inherit; font-size:.82rem;
}
.ay-metric-card{ border-radius:1rem; box-shadow:0 .2rem .9rem rgba(0,0,0,.04); }
.ay-metric-card .card-body{ padding:1rem 1.05rem; }
.ay-metric-label{ color:var(--bs-secondary-color); font-size:.85rem; }
.ay-metric-value{ font-size:1.45rem; font-weight:700; line-height:1.15; letter-spacing:-.02em; }
.ay-metric-note{ color:var(--bs-secondary-color); font-size:.82rem; margin-top:.25rem; }
.ay-soft-panel{ border:1px solid rgba(0,0,0,.08); border-radius:1rem; padding:1rem 1.05rem; background:rgba(0,0,0,.01); }
.ay-meta-stack{ display:flex; flex-direction:column; gap:.2rem; }
.ay-status-pill{ display:inline-flex; align-items:center; border-radius:999px; padding:.25rem .55rem; font-size:.74rem; font-weight:600; background:rgba(0,0,0,.06); }
 .ay-status-pill.is-success{ background:rgba(25,135,84,.12); color:#146c43; }
 .ay-status-pill.is-danger{ background:rgba(220,53,69,.12); color:#b02a37; }
 .ay-status-pill.is-warning{ background:rgba(255,193,7,.18); color:#997404; }
 .ay-status-pill.is-primary{ background:rgba(13,110,253,.12); color:#0a58ca; }
 .ay-status-pill.is-secondary{ background:rgba(108,117,125,.14); color:#495057; }
 .ay-list-card{ border:1px solid rgba(0,0,0,.08); border-radius:1rem; padding:1rem 1.05rem; }
 .ay-list-card + .ay-list-card{ margin-top:.85rem; }
 .ay-table-note{ color:var(--bs-secondary-color); font-size:.8rem; }
@media (max-width: 767.98px){
  .ay-chip-list{ gap:.4rem; }
  .ay-metric-value{ font-size:1.25rem; }
  .ay-soft-panel,
  .ay-list-card{ padding:.9rem; }
}


/* Final utility-screen polish */
.ay-utility-subtitle{max-width:52rem;}
.ay-soft-panel{border-radius:1rem;padding:.9rem 1rem;background:rgba(13,110,253,.04);border:1px solid rgba(13,110,253,.08);color:var(--bs-body-color);}
.ay-utility-card .card-body{padding:1rem 1.05rem;}
.ay-utility-card .display-6{font-size:clamp(1.4rem,1.1rem + .8vw,1.95rem);line-height:1.1;}
.ay-compact-table td,.ay-compact-table th{padding-top:.55rem;padding-bottom:.55rem;}
.ay-inline-actions{display:flex;flex-wrap:wrap;gap:.5rem;}
.ay-inline-actions .btn{border-radius:.8rem;}
.ay-list-card{border-radius:1rem;}
.ay-kpi-stack{display:grid;gap:.9rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));}
@media (max-width: 767.98px){
  .ay-page-actions{width:100%;}
  .ay-page-actions .btn{flex:1 1 100%;}
  .ay-inline-actions{width:100%;}
  .ay-inline-actions .btn{flex:1 1 100%;}
  .ay-soft-panel{padding:.8rem .9rem;}
}


.ay-main-no-default-header .app-content{
  padding-top: 1.35rem;
}

.ay-workspace{
  display:flex;
  flex-direction:column;
  gap:.7rem;
  margin-bottom:1rem;
  padding:1rem 1rem .9rem;
  border:1px solid color-mix(in srgb, var(--bs-border-color) 80%, transparent);
  border-radius:1.1rem;
  background:linear-gradient(180deg, color-mix(in srgb, var(--bs-body-bg) 88%, var(--bs-tertiary-bg) 12%), var(--bs-body-bg));
  box-shadow:0 .35rem 1.2rem rgba(0,0,0,.04);
}
.ay-workspace-bar{
  display:flex;
  flex-wrap:wrap;
  gap:.65rem;
  align-items:center;
}
.ay-workspace-trigger{
  border:1px solid color-mix(in srgb, var(--bs-border-color) 82%, transparent);
  background:var(--bs-body-bg);
  color:var(--bs-body-color);
  border-radius:999px;
  min-height:2.65rem;
  padding:.55rem 1rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.55rem;
  font-weight:600;
  line-height:1;
  box-shadow:0 .12rem .45rem rgba(0,0,0,.03);
  transition:background-color .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.ay-workspace-trigger:hover{
  border-color:var(--bs-primary-border-subtle);
  background:var(--bs-primary-bg-subtle);
  color:var(--bs-primary-text-emphasis);
  transform:translateY(-1px);
}
.ay-workspace-trigger-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:1.45rem;
  height:1.45rem;
  border-radius:999px;
  background:rgba(var(--bs-primary-rgb), .08);
  color:var(--bs-primary-text-emphasis);
  font-size:.78rem;
  font-weight:700;
  flex-shrink:0;
}
.ay-workspace-trigger--views .ay-workspace-trigger-icon{
  background:rgba(var(--bs-info-rgb), .12);
  color:var(--bs-info-text-emphasis);
}
.ay-workspace-trigger--filter .ay-workspace-trigger-icon{
  background:rgba(var(--bs-primary-rgb), .10);
  color:var(--bs-primary-text-emphasis);
}
.ay-workspace-trigger--create .ay-workspace-trigger-icon{
  background:rgba(var(--bs-success-rgb), .12);
  color:var(--bs-success-text-emphasis);
}
.ay-workspace-trigger.is-active .ay-workspace-trigger-icon{
  background:rgba(255,255,255,.18);
  color:inherit;
}
.ay-workspace-trigger.is-active{
  background:linear-gradient(180deg, color-mix(in srgb, var(--bs-primary) 92%, white 8%), var(--bs-primary));
  border-color:var(--bs-primary);
  color:#fff;
  box-shadow:0 .45rem 1.15rem rgba(13,110,253,.18);
}
.ay-workspace-trigger .ay-count{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:1.55rem;
  min-height:1.55rem;
  padding:0 .45rem;
  border-radius:999px;
  background:rgba(255,255,255,.16);
  font-size:.75rem;
  font-weight:700;
}
.ay-workspace-trigger:not(.is-active) .ay-count{
  background:var(--bs-tertiary-bg);
  color:var(--bs-secondary-color);
}
.ay-workspace-help{
  color:var(--bs-secondary-color);
  font-size:.84rem;
  margin:0;
}
.ay-workspace-managed > .card-header,
.ay-workspace-managed > button.card-header,
.ay-workspace-managed > .ay-panel-toggle{
  display:none !important;
}
.ay-workspace-managed > .collapse{
  transition:none;
}
.ay-workspace-managed .card-body{
  padding:1rem 1rem 1.05rem;
}
.ay-workspace-managed .list-toolbar{
  margin-bottom:0;
}
.ay-toolpane-card{
  border-radius:1.05rem;
  overflow:hidden;
  box-shadow:0 .35rem 1.2rem rgba(0,0,0,.05);
}
.ay-toolpane-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:1rem;
  flex-wrap:wrap;
  margin-bottom:1rem;
}
.ay-toolpane-kicker{
  color:var(--bs-secondary-color);
  font-size:.78rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.02em;
  margin-bottom:.2rem;
}
.ay-toolpane-title{
  font-size:1.03rem;
  font-weight:700;
  letter-spacing:-.01em;
}
.ay-toolpane-subtitle{
  color:var(--bs-secondary-color);
  font-size:.88rem;
  margin-top:.2rem;
  max-width:52rem;
}
.ay-toolpane-meta{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:.35rem;
}
.ay-current-view-card{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:1rem;
  flex-wrap:wrap;
  padding:.9rem 1rem;
  border:1px solid color-mix(in srgb, var(--bs-border-color) 86%, transparent);
  border-radius:1rem;
  background:var(--bs-tertiary-bg);
}
.ay-current-view-state{
  display:flex;
  align-items:center;
}
.ay-inline-save-form{
  display:flex;
  gap:.75rem;
  align-items:flex-end;
  flex-wrap:wrap;
}
.ay-soft-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:1.8rem;
  padding:.25rem .7rem;
  border-radius:999px;
  background:var(--bs-tertiary-bg);
  color:var(--bs-secondary-color);
  font-size:.78rem;
  font-weight:600;
}
.ay-soft-badge.is-primary{
  background:var(--bs-primary-bg-subtle);
  color:var(--bs-primary-text-emphasis);
}
.ay-soft-chip{
  display:inline-flex;
  align-items:center;
  min-height:2rem;
  padding:.4rem .8rem;
  border-radius:999px;
  border:1px solid color-mix(in srgb, var(--bs-border-color) 85%, transparent);
  background:var(--bs-body-bg);
  color:var(--bs-body-color);
  text-decoration:none;
  font-size:.84rem;
}
.ay-soft-chip:hover{
  border-color:var(--bs-primary-border-subtle);
  background:var(--bs-primary-bg-subtle);
  color:var(--bs-primary-text-emphasis);
}
.ay-saved-view-item{
  padding:.9rem 1rem;
  border:1px solid color-mix(in srgb, var(--bs-border-color) 86%, transparent);
  border-radius:1rem;
  background:var(--bs-body-bg);
}
.ay-saved-view-item.is-active{
  background:var(--bs-primary-bg-subtle);
  border-color:var(--bs-primary-border-subtle);
}
.ay-inline-details summary{
  list-style:none;
}
.ay-inline-details summary::-webkit-details-marker{
  display:none;
}
.ay-workspace-panel-label{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  margin-bottom:.85rem;
}
.ay-workspace-panel-title{
  font-size:1rem;
  font-weight:700;
  letter-spacing:-.01em;
}
.ay-workspace-panel-note{
  color:var(--bs-secondary-color);
  font-size:.84rem;
}
@media (max-width: 767.98px){
  .ay-main-no-default-header .app-content{
    padding-top:1rem;
  }
  .ay-workspace{
    padding:.85rem .85rem .8rem;
  }
  .ay-workspace-bar{
    gap:.5rem;
  }
  .ay-workspace-trigger{
    flex:1 1 calc(50% - .5rem);
    justify-content:center;
  }
  .ay-toolpane-head,
  .ay-current-view-card,
  .ay-inline-save-form{
    flex-direction:column;
    align-items:stretch;
  }
  .ay-toolpane-meta{
    align-items:flex-start;
  }
}

/* List preferences and bulk action helpers */
.ay-column-grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
  gap:.75rem;
}
.ay-column-choice{
  border:1px solid var(--bs-border-color);
  border-radius:.9rem;
  padding:.7rem .85rem;
  background:var(--bs-body-bg);
}
.ay-column-choice .form-check-label{
  font-weight:600;
}
.ay-column-choice .ay-form-hint{
  margin-top:.2rem;
}
.ay-inline-summary-badge{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  padding:.18rem .55rem;
  border-radius:999px;
  font-size:.75rem;
  border:1px solid var(--bs-border-color);
  background:var(--bs-light-bg-subtle);
  color:var(--bs-secondary-color);
}
.ay-bulk-toolbar{
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
  align-items:flex-end;
}
.ay-bulk-toolbar .ay-bulk-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
}
.ay-selection-note{
  font-size:.85rem;
  color:var(--bs-secondary-color);
}
.ay-list-preferences-toolbar{
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
  align-items:end;
  justify-content:space-between;
}
.ay-list-preferences-toolbar .ay-list-preferences-main{
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
  align-items:end;
}
.ay-sort-choice{
  min-width:13rem;
}
.ay-sort-choice .form-label{
  margin-bottom:.35rem;
}
.ay-sort-inline-note{
  font-size:.85rem;
  color:var(--bs-secondary-color);
}

.ay-form-actions-sticky{
  position: sticky;
  bottom: .85rem;
  z-index: 20;
  padding: .8rem .9rem;
  border: 1px solid color-mix(in srgb, var(--bs-border-color) 82%, transparent);
  border-radius: 1rem;
  background: color-mix(in srgb, var(--bs-body-bg) 88%, transparent);
  backdrop-filter: blur(10px);
  box-shadow: 0 .45rem 1.6rem rgba(0,0,0,.08);
}
.ay-form-actions-sticky .btn{
  box-shadow: none;
}
.ay-dirty-indicator{
  margin-right: auto;
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  min-height: 2.35rem;
  padding: .35rem .75rem;
  border-radius: 999px;
  border: 1px solid var(--bs-border-color-translucent);
  background: var(--bs-tertiary-bg);
  color: var(--bs-secondary-color);
  font-size: .82rem;
  font-weight: 600;
}
.ay-dirty-indicator-dot{
  width: .6rem;
  height: .6rem;
  border-radius: 999px;
  background: var(--bs-success);
  box-shadow: 0 0 0 .15rem color-mix(in srgb, var(--bs-success) 18%, transparent);
}
.ay-dirty-indicator.is-dirty{
  border-color: var(--bs-warning-border-subtle);
  background: var(--bs-warning-bg-subtle);
  color: var(--bs-warning-text-emphasis);
}
.ay-dirty-indicator.is-dirty .ay-dirty-indicator-dot{
  background: var(--bs-warning-text-emphasis);
  box-shadow: 0 0 0 .15rem color-mix(in srgb, var(--bs-warning) 22%, transparent);
}
@media (max-width: 767.98px){
  .ay-form-actions-sticky{
    bottom: .5rem;
    padding: .75rem;
  }
  .ay-dirty-indicator{
    width: 100%;
    justify-content: center;
    margin-right: 0;
  }
}


.ay-validation-summary{
  display:none;
  border-radius:1rem;
  border-width:1px;
  box-shadow:0 .45rem 1.4rem rgba(0,0,0,.06);
}
.ay-validation-summary .validation-summary-errors ul,
.ay-validation-summary ul{
  margin:.65rem 0 0 1rem;
  padding:0;
}
.ay-validation-summary-title{
  font-weight:700;
  font-size:.98rem;
}
.ay-validation-summary-text{
  margin-top:.25rem;
  color:var(--bs-danger-text-emphasis);
  font-size:.88rem;
}
.ay-field-invalid-focus{
  outline:2px solid color-mix(in srgb, var(--bs-danger) 55%, transparent);
  outline-offset:2px;
  box-shadow:0 0 0 .2rem color-mix(in srgb, var(--bs-danger) 18%, transparent);
}
.ay-empty-state-card{
  display:flex;
  gap:1rem;
  align-items:flex-start;
  padding:1.15rem 1.2rem;
  border:1px dashed color-mix(in srgb, var(--bs-border-color) 82%, transparent);
  border-radius:1rem;
  background:color-mix(in srgb, var(--bs-body-bg) 94%, var(--bs-tertiary-bg));
}
.ay-empty-state-card--compact{
  padding:1rem;
}
.ay-empty-state-icon{
  width:2.35rem;
  height:2.35rem;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:var(--bs-tertiary-bg);
  color:var(--bs-secondary-color);
  flex:0 0 auto;
  font-size:1rem;
}
.ay-empty-state-content{
  min-width:0;
}
.ay-empty-state-title{
  font-weight:700;
  color:var(--bs-emphasis-color);
}
.ay-empty-state-text{
  margin-top:.2rem;
  color:var(--bs-secondary-color);
  font-size:.92rem;
}

.ay-filter-spotlight{
  border:1px solid color-mix(in srgb, var(--bs-primary) 16%, var(--bs-border-color));
  background:linear-gradient(180deg, color-mix(in srgb, var(--bs-primary-bg-subtle) 62%, white), white);
  border-radius:1rem;
  padding:.95rem 1rem;
  display:grid;
  gap:.75rem;
}
.ay-filter-spotlight-main{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
}
.ay-filter-spotlight-title{
  font-size:1rem;
  font-weight:700;
  letter-spacing:-.01em;
}
.ay-filter-spotlight-note{
  color:var(--bs-secondary-color);
  font-size:.9rem;
}
.ay-filter-spotlight-metrics{
  display:flex;
  flex-wrap:wrap;
  gap:.55rem;
}
.ay-filter-metric{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  border-radius:999px;
  padding:.4rem .72rem;
  background:var(--bs-body-bg);
  border:1px solid var(--bs-border-color-translucent);
  font-size:.82rem;
}
.ay-filter-metric strong{ color:var(--bs-body-color); }
.ay-focus-grid{
  display:grid;
  gap:.9rem;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
}
.ay-focus-card{
  display:grid;
  gap:.35rem;
  padding:1rem;
  border-radius:1rem;
  border:1px solid var(--bs-border-color-translucent);
  background:var(--bs-body-bg);
  text-decoration:none;
  color:inherit;
  min-height:100%;
}
.ay-focus-card:hover{
  border-color:color-mix(in srgb, var(--bs-primary) 28%, var(--bs-border-color));
  box-shadow:0 .45rem 1.2rem rgba(15, 23, 42, .08);
  color:inherit;
}
.ay-focus-card-label{
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:var(--bs-secondary-color);
  font-weight:700;
}
.ay-focus-card-value{
  font-size:1.5rem;
  font-weight:700;
  line-height:1;
}
.ay-focus-card-note{
  color:var(--bs-secondary-color);
  font-size:.84rem;
}
.ay-focus-card-link{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  font-size:.84rem;
  font-weight:600;
  color:var(--bs-primary);
}
.ay-focus-card-link::after{
  content:'→';
}
.ay-focus-card.is-accent{
  background:linear-gradient(180deg, color-mix(in srgb, var(--bs-primary-bg-subtle) 75%, white), white);
}
.ay-focus-card.is-danger .ay-focus-card-value,
.ay-focus-card.is-danger .ay-focus-card-link{ color:var(--bs-danger); }
.ay-focus-card.is-warning .ay-focus-card-value,
.ay-focus-card.is-warning .ay-focus-card-link{ color:var(--bs-warning-text-emphasis); }
.ay-focus-card.is-success .ay-focus-card-value,
.ay-focus-card.is-success .ay-focus-card-link{ color:var(--bs-success); }
@media (max-width: 767.98px){
  .ay-filter-spotlight-main{
    flex-direction:column;
    align-items:stretch;
  }
}

.ay-empty-state-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  margin-top:.85rem;
}
@media (max-width: 767.98px){
  .ay-empty-state-card{
    flex-direction:column;
    gap:.75rem;
  }
}


.ay-upload-dropzone {
  border: 1.5px dashed rgba(13, 110, 253, .35);
  border-radius: 1rem;
  background: linear-gradient(180deg, rgba(13,110,253,.04), rgba(13,110,253,.01));
  padding: 1rem 1.1rem;
  cursor: pointer;
  transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease;
}

.ay-upload-dropzone:hover,
.ay-upload-dropzone.is-dragging {
  border-color: rgba(13, 110, 253, .75);
  background: rgba(13,110,253,.06);
  box-shadow: 0 0 0 .2rem rgba(13,110,253,.08);
}

.ay-upload-dropzone-title {
  font-weight: 700;
  margin-bottom: .25rem;
}

.ay-upload-dropzone-meta {
  color: var(--bs-secondary-color);
  font-size: .925rem;
}

.ay-upload-preview {
  border: 1px solid var(--bs-border-color);
  border-radius: .9rem;
  background: var(--bs-tertiary-bg);
  padding: .75rem .9rem;
}

.ay-upload-preview-title {
  font-size: .875rem;
  font-weight: 700;
  margin-bottom: .35rem;
}

.ay-upload-preview-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: .35rem;
}

.ay-upload-preview-list li {
  display: flex;
  justify-content: space-between;
  gap: .75rem;
  font-size: .875rem;
}

.ay-upload-preview-name {
  font-weight: 500;
  overflow-wrap: anywhere;
}

.ay-upload-preview-size {
  color: var(--bs-secondary-color);
  white-space: nowrap;
}

.ay-bulk-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: .75rem;
  padding: .85rem 1rem;
  border-bottom: 1px solid var(--bs-border-color);
  background: rgba(108,117,125,.04);
}

.ay-bulk-toolbar[hidden] { display: none !important; }
.ay-bulk-actions { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.ay-bulk-select-cell { width: 3rem; white-space: nowrap; }


.ay-skip-link{
  position: absolute;
  left: 1rem;
  top: -3rem;
  z-index: 1100;
  padding: .65rem .9rem;
  border-radius: .75rem;
  background: var(--bs-primary);
  color: #fff;
  text-decoration: none;
  box-shadow: 0 .5rem 1rem rgba(0,0,0,.18);
}

.ay-skip-link:focus{
  top: 1rem;
}

:focus-visible{
  outline: 3px solid rgba(13,110,253,.45);
  outline-offset: 2px;
}

.ay-compare-slot{
  background: linear-gradient(180deg, rgba(13,110,253,.04), rgba(13,110,253,.01));
}

.ay-compare-slot .btn{
  white-space: nowrap;
}


/* Slightly tighter vertical rhythm on content stacks */
.app-main .row.g-3{
  --bs-gutter-y: .85rem;
}

.ay-surface-card--filter{
  border-top: 3px solid color-mix(in srgb, var(--bs-primary) 28%, transparent);
}
.ay-surface-card--list{
  border-top: 3px solid color-mix(in srgb, var(--bs-info) 24%, transparent);
}
.ay-surface-card--audit{
  border-top: 3px solid color-mix(in srgb, var(--bs-warning) 32%, transparent);
}

.ay-notification-item{
  position: relative;
  border-left: 4px solid transparent;
  transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.ay-notification-item.kind-info{
  border-left-color: color-mix(in srgb, var(--bs-info) 58%, white);
  background: linear-gradient(90deg, rgba(var(--bs-info-rgb), .06), transparent 18rem);
}
.ay-notification-item.kind-success{
  border-left-color: color-mix(in srgb, var(--bs-success) 56%, white);
  background: linear-gradient(90deg, rgba(var(--bs-success-rgb), .06), transparent 18rem);
}
.ay-notification-item.kind-warning{
  border-left-color: color-mix(in srgb, var(--bs-warning) 62%, white);
  background: linear-gradient(90deg, rgba(var(--bs-warning-rgb), .08), transparent 18rem);
}
.ay-notification-item.kind-danger{
  border-left-color: color-mix(in srgb, var(--bs-danger) 58%, white);
  background: linear-gradient(90deg, rgba(var(--bs-danger-rgb), .08), transparent 18rem);
}
.ay-notification-item.category-rule .ay-notification-meta{
  padding-bottom: .45rem;
  border-bottom: 1px dashed color-mix(in srgb, var(--bs-warning) 24%, var(--bs-border-color));
}
.ay-notification-item.category-event .ay-notification-meta{
  padding-bottom: .45rem;
  border-bottom: 1px dashed color-mix(in srgb, var(--bs-info) 20%, var(--bs-border-color));
}
.ay-notification-item.is-unread{
  box-shadow: inset 0 0 0 1px rgba(var(--bs-primary-rgb), .08);
}
.ay-notification-shell{
  align-items: stretch !important;
}
.ay-notification-content{
  display: grid;
  gap: .4rem;
}
.ay-notification-title{
  letter-spacing: -.01em;
}
.ay-notification-message{
  line-height: 1.45;
  max-width: 62rem;
}
.ay-notification-actions{
  align-content: flex-start;
}
@media (min-width: 992px){
  .ay-notification-actions{
    min-width: 10.5rem;
    padding-left: .9rem;
    border-left: 1px solid var(--bs-border-color-translucent);
  }
}
@media (max-width: 991.98px){
  .ay-notification-actions{
    padding-top: .75rem;
    margin-top: .15rem;
    border-top: 1px solid var(--bs-border-color-translucent);
  }
}

.ay-audit-parent-row > td{
  background: linear-gradient(180deg, color-mix(in srgb, var(--bs-warning-bg-subtle) 62%, white), transparent);
}
.ay-audit-related-preview{
  display: grid;
  gap: .4rem;
  padding: .6rem .7rem;
  border-radius: .85rem;
  background: color-mix(in srgb, var(--bs-warning-bg-subtle) 58%, white);
  border: 1px solid color-mix(in srgb, var(--bs-warning) 18%, var(--bs-border-color));
}
.ay-audit-related-title{
  font-size: .78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--bs-secondary-color);
}
.ay-audit-related-item,
.ay-audit-related-entry{
  display: grid;
  gap: .2rem;
}
.ay-audit-related-label{
  display: inline-flex;
  align-items: center;
  padding: .1rem .45rem;
  border-radius: 999px;
  background: var(--bs-body-bg);
  border: 1px solid var(--bs-border-color-translucent);
  font-size: .72rem;
  font-weight: 600;
}
.ay-audit-related-text{
  color: var(--bs-secondary-color);
  font-size: .82rem;
}
.ay-audit-related-time{
  color: var(--bs-secondary-color);
  font-size: .75rem;
  font-weight: 600;
}
.ay-audit-related-panel{
  height: 100%;
  padding: .95rem 1rem;
  border-radius: 1rem;
  background: linear-gradient(180deg, color-mix(in srgb, var(--bs-warning-bg-subtle) 65%, white), white);
  border: 1px solid color-mix(in srgb, var(--bs-warning) 18%, var(--bs-border-color));
}
.ay-audit-related-stack{
  display: grid;
  gap: .75rem;
}
.ay-audit-related-entry{
  padding-bottom: .75rem;
  border-bottom: 1px dashed var(--bs-border-color-translucent);
}
.ay-audit-related-entry:last-child{
  border-bottom: 0;
  padding-bottom: 0;
}
.ay-audit-related-entry-head{
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  align-items: center;
}
.ay-audit-related-entry-body{
  display: grid;
  gap: .15rem;
}


/* Shared index workspace surfaces (accruals / expenses / receipts) */
.page-actions{ display:flex; flex-wrap:wrap; gap:.5rem; }
.summary-card{ border:1px solid var(--bs-border-color); border-radius:.9rem; background:var(--bs-body-bg); height:100%; }
.summary-card .summary-label{ font-size:.8rem; color:var(--bs-secondary-color); }
.summary-card .summary-value{ font-size:1.2rem; font-weight:700; }
.list-toolbar{ border:1px solid var(--bs-border-color); border-radius:1rem; background:var(--bs-tertiary-bg); padding:1rem; }
.quick-filter-bar{ display:flex; flex-wrap:wrap; gap:.5rem; }
.quick-filter-bar .btn{ white-space:nowrap; }
.filter-chip{ display:inline-flex; align-items:center; padding:.35rem .6rem; border-radius:999px; background:var(--bs-light-bg-subtle); color:var(--bs-body-color); border:1px solid var(--bs-border-color); font-size:.8rem; }
.create-card-note{ border:1px dashed var(--bs-border-color); border-radius:.9rem; background:var(--bs-tertiary-bg); }
.list-help{ font-size:.85rem; color:var(--bs-secondary-color); }
.status-stack,
.amount-stack{ display:flex; flex-direction:column; gap:.2rem; }
.amount-primary{ font-weight:700; }
.amount-meta{ font-size:.78rem; color:var(--bs-secondary-color); }
.actions-inline{ display:flex; justify-content:flex-end; gap:.5rem; align-items:center; }
.detail-stat{ border:1px solid var(--bs-border-color); border-radius:.9rem; padding:.75rem .9rem; background:var(--bs-body-bg); height:100%; }
.detail-stat-label{ color:var(--bs-secondary-color); font-size:.78rem; margin-bottom:.2rem; }
.detail-stat-value{ font-size:1rem; font-weight:700; }
.detail-actions{ display:flex; gap:.5rem; flex-wrap:wrap; }
.panel-toggle{ border:0; background:transparent; width:100%; text-align:left; padding:0; color:inherit; }
.flag-badges{ display:flex; flex-wrap:wrap; gap:.35rem; }
.table-accruals > :not(caption) > * > *,
.expenses-table > :not(caption) > * > *,
.receipts-table > :not(caption) > * > *{ padding-top:.75rem; padding-bottom:.75rem; }
.accrual-title,
.expense-title,
.receipt-title{ font-weight:600; }
.accrual-meta,
.expense-meta,
.receipt-meta{ font-size:.82rem; color:var(--bs-secondary-color); }
.accrual-meta{ max-width:28rem; }
.accruals-table-responsive{ overflow-x:auto; overflow-y:visible; }
.accruals-table-responsive .dropdown-menu{ z-index:2000; }
@media (max-width: 767.98px){
  .actions-inline{ justify-content:flex-start; }
  .accrual-meta{ max-width:none; }
}

.ay-workspace + .row{
  --bs-gutter-y:.85rem;
}
.ay-index-list-card .card-body{
  padding-top:.85rem;
}
.ay-index-list-stack{
  --bs-gutter-y:.85rem;
}
