:root {
  --btn-transition-soft: background .15s ease, border-color .15s ease, color .15s ease, transform .15s ease, box-shadow .15s ease, opacity .15s ease;
  --btn-focus-ring: 0 0 0 3px rgba(17, 24, 39, .18);
  --btn-shadow-soft: 0 2px 6px rgba(0, 0, 0, .10);
  --btn-shadow-hover: 0 6px 16px rgba(0, 0, 0, .18);
}

.btn,
.btn-floating-soft,
.btn-admin,
.btn-status,
.btn-back,
.btn-danger,
.btn-inline,
.row-actions-btn,
.fact-link,
.factura-upload-mini,
.btn-home-soft,
.btn-dashboard,
.btn-export,
.btn-logout,
.btn-ghost,
.btn-primary,
.status-tab,
.collapsible-toggle,
.muted-rejected-toggle,
.xbtn {
  font-family: "Montserrat", Helvetica, Arial, sans-serif;
  transition: var(--btn-transition-soft);
}

.btn,
.btn-floating-soft,
.btn-admin,
.btn-status,
.btn-back,
.btn-danger,
.btn-inline,
.row-actions-btn,
.fact-link,
.btn-dashboard,
.btn-export,
.btn-logout,
.btn-ghost,
.btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  cursor: pointer;
  text-decoration: none;
}

.btn {
  padding: 8px 14px;
  border-radius: 999px;
  border: 1px solid transparent;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: .1px;
  box-shadow: var(--btn-shadow-soft);
}

.btn-floating-soft {
  background: #2c2c2c;
  color: #fff;
  border: none;
  border-radius: 999px;
  padding: 10px 16px;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: .2px;
  box-shadow: var(--btn-shadow-soft);
}

.btn-admin,
.btn-primary,
.btn-dashboard {
  background: #222;
  border-color: #222;
  color: #fff;
}

.btn-status {
  background: #004aad;
  border-color: #004aad;
  color: #fff;
}

.btn-back,
.btn-ghost {
  background: #fff;
  border-color: #d6d8e6;
  color: #111;
}

.btn-danger {
  background: #b42318;
  border-color: #b42318;
  color: #fff;
}

.btn-logout {
  background: #c0392b;
  border-color: #c0392b;
  color: #fff;
}

.btn-export {
  background: #00a32a;
  border-color: #00a32a;
  color: #fff;
}

.btn-inline,
.row-actions-btn,
.fact-link {
  background: #fff;
  border: 1px solid #d6d8e6;
  border-radius: 10px;
  color: #111;
  width: fit-content;
}

.btn-inline {
  padding: 8px 12px;
  font-weight: 700;
  font-size: 13px;
}

.row-actions-btn,
.fact-link {
  padding: 6px 10px;
  font-size: 12px;
  white-space: nowrap;
}

.fact-link {
  font-weight: 600;
}

.row-actions-btn {
  gap: 6px;
  font-weight: 700;
}

.factura-upload-mini {
  transition: var(--btn-transition-soft);
}

.fact-link .ico {
  display: inline-flex;
  font-size: 14px;
  line-height: 1;
  transition: transform .15s ease;
}

.btn:hover,
.btn-floating-soft:hover,
.btn-admin:hover,
.btn-status:hover,
.btn-back:hover,
.btn-danger:hover,
.btn-inline:hover,
.row-actions-btn:hover,
.fact-link:hover,
.factura-upload-mini:hover,
.btn-home-soft:hover,
.btn-dashboard:hover,
.btn-export:hover,
.btn-logout:hover,
.btn-ghost:hover,
.btn-primary:hover,
.status-tab:hover,
.collapsible-toggle:hover,
.muted-rejected-toggle:hover,
.xbtn:hover {
  transform: translateY(-1px);
  box-shadow: var(--btn-shadow-hover);
  text-decoration: none;
}

.btn-floating-soft:hover,
.btn-admin:hover,
.btn-primary:hover,
.btn-dashboard:hover {
  background: #1f1f1f;
  border-color: #1f1f1f;
  color: #fff;
}

.btn-status:hover {
  background: #003f93;
  border-color: #003f93;
  color: #fff;
}

.btn-back:hover,
.btn-ghost:hover,
.btn-inline:hover,
.row-actions-btn:hover,
.fact-link:hover,
.factura-upload-mini:hover,
.collapsible-toggle:hover,
.muted-rejected-toggle:hover,
.xbtn:hover {
  background: #f7f8fc;
  border-color: #cfd4e6;
  color: #111;
}

.btn-danger:hover,
.btn-logout:hover {
  background: #971f15;
  border-color: #971f15;
  color: #fff;
}

.btn-export:hover {
  background: #008a24;
  border-color: #008a24;
  color: #fff;
}

.btn:active,
.btn-floating-soft:active,
.btn-admin:active,
.btn-status:active,
.btn-back:active,
.btn-danger:active,
.btn-inline:active,
.row-actions-btn:active,
.fact-link:active,
.factura-upload-mini:active,
.btn-home-soft:active,
.btn-dashboard:active,
.btn-export:active,
.btn-logout:active,
.btn-ghost:active,
.btn-primary:active,
.status-tab:active,
.collapsible-toggle:active,
.muted-rejected-toggle:active,
.xbtn:active {
  transform: translateY(0);
  box-shadow: var(--btn-shadow-soft);
}

.btn:focus-visible,
.btn-floating-soft:focus-visible,
.btn-admin:focus-visible,
.btn-status:focus-visible,
.btn-back:focus-visible,
.btn-danger:focus-visible,
.btn-inline:focus-visible,
.row-actions-btn:focus-visible,
.fact-link:focus-visible,
.factura-upload-mini:focus-visible,
.btn-home-soft:focus-visible,
.btn-dashboard:focus-visible,
.btn-export:focus-visible,
.btn-logout:focus-visible,
.btn-ghost:focus-visible,
.btn-primary:focus-visible,
.status-tab:focus-visible,
.collapsible-toggle:focus-visible,
.muted-rejected-toggle:focus-visible,
.xbtn:focus-visible {
  outline: none;
  box-shadow: var(--btn-shadow-soft), var(--btn-focus-ring);
}

.btn span,
.btn-floating-soft span,
.btn-admin span,
.btn-status span,
.btn-back span,
.btn-danger span,
.btn-inline span,
.row-actions-btn span,
.btn-home-soft span,
.btn-dashboard span,
.btn-export span,
.btn-logout span,
.btn-ghost span,
.btn-primary span {
  display: inline-flex;
  line-height: 1;
  transition: transform .15s ease;
}

.btn:hover span,
.btn-floating-soft:hover span,
.btn-admin:hover span,
.btn-status:hover span,
.btn-back:hover span,
.btn-danger:hover span,
.btn-inline:hover span,
.row-actions-btn:hover span,
.btn-home-soft:hover span,
.btn-dashboard:hover span,
.btn-export:hover span,
.btn-logout:hover span,
.btn-ghost:hover span,
.btn-primary:hover span,
.fact-link:hover .ico {
  transform: scale(1.15);
}

.btn:disabled,
.btn[disabled],
.btn-floating-soft:disabled,
.btn-floating-soft[disabled],
.btn-admin:disabled,
.btn-admin[disabled],
.btn-status:disabled,
.btn-status[disabled],
.btn-back:disabled,
.btn-back[disabled],
.btn-danger:disabled,
.btn-danger[disabled],
.btn-inline:disabled,
.btn-inline[disabled],
.row-actions-btn:disabled,
.row-actions-btn[disabled],
.fact-link:disabled,
.fact-link[disabled],
.btn-home-soft:disabled,
.btn-home-soft[disabled],
.status-tab:disabled,
.status-tab[disabled],
.xbtn:disabled,
.xbtn[disabled] {
  opacity: .55;
  cursor: not-allowed;
  pointer-events: none;
  transform: none;
  box-shadow: none;
}

.pdf-viewer-frame {
  width: 100%;
  min-height: 72vh;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  overflow: hidden;
  background: #f8fafc;
}

.pdf-viewer-frame iframe {
  display: block;
  width: 100%;
  height: 72vh;
  border: 0;
}
