/* EziBook 2.0 — Stage 2.
 * Bootstrap 5.3 handles grid, breakpoints, utilities, forms, badges and offcanvas.
 * These styles provide the original EziBook teal/yellow branding and density.
 */
:root {
  --eb-teal: #00758b;
  --eb-teal-dark: #075263;
  --eb-teal-deep: #083a48;
  --eb-yellow: #e8d322;
  --eb-gold-soft: #fff9d9;
  --eb-canvas: #f3f7f8;
  --eb-border: #dae7ea;
  --eb-ink: #203c48;
  --eb-muted: #657d85;
  --bs-primary: var(--eb-teal);
  --bs-primary-rgb: 0,117,139;
  --bs-body-color: var(--eb-ink);
  --bs-body-bg: var(--eb-canvas);
  --bs-border-color: var(--eb-border);
  --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}
body { min-width: 320px; }
.app-shell { display: flex; min-height: 100vh; }
.app-main { min-width: 0; }
a { color: var(--eb-teal); }
a:hover { color: var(--eb-teal-dark); }
.text-brand { color: var(--eb-teal) !important; }
.app-sidebar {
  background: linear-gradient(178deg, var(--eb-teal-deep) 0%, #07586a 65%, var(--eb-teal-dark) 100%);
  width: 258px;
  flex: 0 0 258px;
  min-height: 100vh;
  padding: 21px 15px 26px;
  color: #d6e8ea;
}
.brand-logo {
  display: flex;
  justify-content: center;
  align-items: center;
  background: var(--eb-teal);
  padding: 9px 10px;
  border-radius: 12px;
  margin: 0 10px 5px;
  text-decoration: none;
}
.brand-logo img { display: block; max-width: 100%; height: 76px; object-fit: contain; }
.brand-subtitle { font-weight: 700; font-size: 10px; color: #b6cfd5; letter-spacing: 1.5px; text-align: center; margin: 10px 0 31px; }
.nav-heading { margin: 16px 13px 9px; font-size: 10px; font-weight: 800; letter-spacing: 1.35px; color: #9ebec6; }
.app-sidebar .nav-link {
  display: flex;
  align-items: center;
  gap: 12px;
  color: #d1e1e4;
  font-weight: 570;
  font-size: 13px;
  padding: 11px 13px;
  margin: 2px 0;
  border-radius: 9px;
  border-left: 3px solid transparent;
}
.app-sidebar .nav-link > .bi:first-child { width: 22px; text-align: center; font-size: 18px; line-height: 1; }
.app-sidebar .nav-link:hover { background: #ffffff16; color: white; }
.app-sidebar .nav-link.active { background: #ffffff20; border-left-color: var(--eb-yellow); color: white; font-weight: 740; }
.nav-chevron { font-size: 10px; color: var(--eb-yellow); }
.sidebar-bottom { margin: 20px 6px 0; border-top: 1px solid #ffffff2c; padding: 19px 10px 0; line-height: 1.7; color: #c4d9de; }
.sidebar-bottom .bi { color: var(--eb-yellow); }
.sidebar-bottom p { font-size: 11px; }
.topbar { background: white; padding: 17px 35px; border-bottom: 1px solid var(--eb-border); min-height: 68px; }
.topbar-context { font-size: 13px; color: #4f6b75; font-weight: 600; }
.topbar-version { font-size: 12px; font-weight: 750; color: #4e6c76; }
.app-stage { font-size: 11px; background: #eef7f4; border: 1px solid #c7e3dc; color: #1b766c; padding: 9px 11px; font-weight: 700; }
.app-stage .bi { font-size: 7px; vertical-align: 1px; }
.page-content { max-width: 1690px; padding: 29px 36px 23px; }
.demo-banner { background: #fffaf0; border: 1px solid #f0dda6; color: #785a19; border-left: 4px solid #d7ac2b; border-radius: 10px; padding: 12px 17px; font-size: 12px; line-height: 1.6; }
.demo-banner strong { color: #5e481a; }
.page-heading .eyebrow { font-size: 10px; font-weight: 800; letter-spacing: 1.3px; color: #4d8593; }
.page-heading h1 { font-weight: 780; letter-spacing: -.8px; font-size: clamp(26px, 2.4vw, 32px); }
.page-heading p { font-size: 13px; }
.business-select { min-width: 285px; max-width: 435px; width: 100%; border: 1px solid var(--eb-border) !important; border-radius: 12px; }
.business-select .small { font-size: 9px; letter-spacing: .9px; }
.business-select .form-select { background-position: right .3rem center; padding-right: 1.3rem; box-shadow: none; cursor: pointer; font-size: 12px; color: var(--eb-ink); }
.business-icon { display: flex; justify-content: center; align-items: center; border-radius: 9px; background: #dceff3; color: var(--eb-teal); font-size: 19px; height: 38px; width: 38px; flex: none; }
.metric-card { border: 1px solid var(--eb-border); border-radius: 13px; box-shadow: 0 3px 16px #0a4a5908; position: relative; overflow: hidden; }
.metric-card:before { content: ""; position: absolute; left: 0; top: 18px; bottom: 18px; width: 3px; border-radius: 0 2px 2px 0; background: var(--tone); }
.metric-card .card-body { padding: 21px 23px 20px; }
.metric-top { display: flex; justify-content: space-between; align-items: start; margin-bottom: 14px; }
.metric-icon { display: grid; place-items: center; height: 44px; width: 44px; border-radius: 11px; font-size: 21px; color: var(--tone); background: var(--tone-bg); }
.metric-value { font-size: 34px; font-weight: 780; color: var(--eb-ink); line-height: 1.1; letter-spacing: -1px; }
.metric-title { margin-top: 6px; font-size: 13px; color: #344e58; font-weight: 740; }
.metric-hint { margin-top: 6px; font-size: 11px; color: var(--eb-muted); }
.tone-teal { --tone: #01849d; --tone-bg: #e1f3f6; }
.tone-amber { --tone: #b28b16; --tone-bg: #fff7d5; }
.tone-green { --tone: #21856a; --tone-bg: #e1f4ec; }
.tone-blue { --tone: #4078b2; --tone-bg: #eaf1fb; }
.data-card, .type-card { border: 1px solid var(--eb-border); border-radius: 13px; box-shadow: 0 3px 18px #0a4a5907; overflow: hidden; }
.panel-heading { background: white; border-bottom: 1px solid var(--eb-border); padding: 20px 22px; display: flex; justify-content: space-between; align-items: center; }
.panel-heading h2 { margin: 0 0 5px; font-size: 15px; font-weight: 770; }
.panel-heading h2 .bi { color: var(--eb-teal); font-size: 17px; }
.panel-heading p { margin: 0; color: var(--eb-muted); font-size: 11px; }
.count-label { color: #527780; background: #eff5f6; font-size: 11px; font-weight: 700; border-radius: 20px; padding: 8px 12px; }
.btn-primary { --bs-btn-bg: var(--eb-teal); --bs-btn-border-color: var(--eb-teal); --bs-btn-hover-bg: var(--eb-teal-dark); --bs-btn-hover-border-color: var(--eb-teal-dark); --bs-btn-active-bg: var(--eb-teal-deep); --bs-btn-active-border-color: var(--eb-teal-deep); }
.btn-outline-primary { --bs-btn-color: var(--eb-teal); --bs-btn-border-color: #a4cbd2; --bs-btn-hover-bg: var(--eb-teal); --bs-btn-hover-border-color: var(--eb-teal); }
.btn-outline-primary, .btn-primary { font-weight: 650; }
.data-table { color: var(--eb-ink); }
.data-table thead th { background: #f4f8f9; border-bottom: 1px solid var(--eb-border); color: #5c7781; text-transform: uppercase; font-size: 10px; letter-spacing: .55px; font-weight: 800; white-space: nowrap; padding: 14px 17px; }
.data-table tbody td { font-size: 12px; padding: 14px 17px; border-bottom-color: #edf1f2; }
.data-table tbody tr:last-child td { border-bottom: 0; }
.data-table tbody tr:hover td { background: #f8fbfb; }
.cell-secondary { color: #81949c; font-size: 11px; margin-top: 3px; }
.date-line { white-space: nowrap; }
.date-sep { padding: 0 6px; font-size: 10px; color: #97a5a9; }
.status-pill { display: inline-flex; gap: 6px; align-items: center; white-space: nowrap; border-radius: 20px; font-size: 10px; font-weight: 760; padding: 6px 10px; }
.status-dot { width: 6px; height: 6px; background: currentColor; border-radius: 50%; }
.status-success { background: #e5f4ed; color: #268264; }
.status-warning { background: #fff5d7; color: #9c761c; }
.status-danger { background: #fce8e7; color: #b14b45; }
.status-secondary { background: #eff3f4; color: #65818a; }
.quick-links a { display: flex; align-items: center; text-decoration: none; gap: 13px; padding: 11px 9px; color: var(--eb-ink); border-radius: 9px; }
.quick-links a:not(:last-child) { border-bottom: 1px solid #eaf0f1; }
.quick-links a:hover { background: #f3f9fa; }
.quick-links strong { font-size: 12px; display: block; }
.quick-links small { display: block; color: #82939b; font-size: 10px; margin-top: 3px; }
.quick-links a>.bi:last-child { font-size: 12px; color: #9cb1b9; }
.quick-icon, .row-icon { height: 37px; width: 37px; flex: none; display: grid; place-items: center; border-radius: 10px; font-size: 18px; }
.icon-teal { color: #01849d; background: #e0f2f4; }
.icon-gold { color: #9b7e16 !important; background: #fff5d5 !important; }
.icon-blue { color: #397fa8 !important; background: #e5f0f7 !important; }
.row-icon { background: #ebf5f6; color: var(--eb-teal); }
.description-cell { max-width: 330px; }
.info-card { background: #ecf6f7; color: #296e77; border: 1px solid #c6e3e9; border-radius: 12px; }
.info-card .card-body { padding: 20px; }
.info-card p { color: #527e86; font-size: 12px; line-height: 1.7; }
.gentle-alert { background: #eaf5f8; border: 1px solid #c9e6ef; color: #406f80; font-size: 12px; border-radius: 10px; padding: 15px 17px; }
.filter-bar { background: white; padding: 20px 23px; border-bottom: 1px solid var(--eb-border); }
.filter-bar .form-label { color: #587780; text-transform: uppercase; letter-spacing: .5px; font-size: 10px; font-weight: 800; margin-bottom: 7px; }
.filter-bar .form-select, .filter-bar .form-control, .filter-bar .input-group-text { font-size: 12px; min-height: 38px; border-color: #d6e3e6; }
.filter-bar .input-group-text { background: #f2f7f8; color: #68828a; }
.filter-bar .btn { font-size: 12px; min-height: 38px; }
.btn-reset { border: 1px solid #dae5e7; }
.type-card .card-body { padding: 23px; }
.category-icon { display: grid; place-items: center; background: #e3f3f5; color: var(--eb-teal); height: 44px; width: 44px; font-size: 22px; border-radius: 11px; }
.description-block { min-height: 38px; line-height: 1.6; }
.category-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.category-stats span { display: block; font-size: 10px; color: #789099; margin-bottom: 3px; }
.category-stats strong { font-size: 13px; }
.type-footer { display: flex; justify-content: space-between; font-size: 11px; color: #64838c; }
.empty-state { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 45px 24px; color: #8a9ca2; }
.empty-state>.bi { font-size: 33px; margin-bottom: 12px; }
.empty-state strong { color: #3c5a64; font-size: 14px; margin-bottom: 4px; }
.empty-state span { font-size: 12px; }
.footer-line { border-top: 1px solid #d8e5e8; color: #7d949d; font-size: 11px; }
.mobile-nav-link { color: var(--eb-ink); padding: 12px; border-radius: 8px; font-size: 14px; }
.mobile-nav-link.active { background: #e4f1f3; color: var(--eb-teal); font-weight: 750; }
.mobile-nav-link:hover { color: var(--eb-teal); }
@media(max-width: 1200px) { .page-content { padding: 26px 26px; } .topbar { padding: 17px 26px; } }
@media(max-width: 991.98px) { .app-shell { display: block; } }
@media(max-width: 575.98px) { .page-content { padding: 21px 15px; } .topbar { padding: 13px 15px; } .business-select { max-width: none; } .page-heading { gap: 16px !important; } .metric-card .card-body { padding: 17px; } .data-table tbody td { padding: 12px 13px; } .panel-heading { padding: 17px 15px; } .demo-banner { font-size: 11px; } }
